Skip to content

Conversation

steveiliop56
Copy link
Owner

@steveiliop56 steveiliop56 commented Jul 18, 2025

Summary by CodeRabbit

  • New Features

    • Added OAuth auto-redirect messaging, domain-mismatch warnings, and new redirect controls (Redirect manually, Untrusted redirect, Ignore, Go to correct domain) in many locales.
  • Bug Fixes

    • Removed legacy/overlapping redirect strings and consolidated redirect UX into explicit manual/untrusted/domain-warning flows.
    • Updated and refined translations across multiple languages (with some partial English fallbacks remaining).

Copy link
Contributor

coderabbitai bot commented Jul 18, 2025

Walkthrough

Added and reorganized authentication/redirect i18n keys across many locales: introduced OAuth auto-redirect keys, manual/untrusted redirect and domain-warning keys, removed legacy redirect keys, and updated assorted existing translations.

Changes

Cohort / File(s) Change Summary
All modified i18n locale JSONs
frontend/src/lib/i18n/locales/*.json — e.g. frontend/src/lib/i18n/locales/fr-FR.json, .../ru-RU.json, .../zh-CN.json, .../uk-UA.json, .../cs-CZ.json, .../sv-SE.json, .../de-DE.json, .../af-ZA.json, .../ar-SA.json, .../ca-ES.json, .../da-DK.json, .../el-GR.json, .../en-US.json, .../es-ES.json, .../fi-FI.json, .../he-IL.json, .../hu-HU.json, .../it-IT.json, .../ja-JP.json, .../ko-KR.json, .../nl-NL.json, .../no-NO.json, .../pl-PL.json, .../pt-BR.json, .../pt-PT.json, .../ro-RO.json, .../sr-SP.json, .../tr-TR.json, .../vi-VN.json, .../zh-TW.json
Removed legacy redirect keys (continueInvalidRedirect*, legacy untrustedRedirect*, often continueTitle/continueSubtitle), added OAuth auto-redirect keys (loginOauthAutoRedirect*), added manual/untrusted redirect flows (continueRedirectManually, continueUntrustedRedirectTitle, continueUntrustedRedirectSubtitle), and added domain-warning/action keys (domainWarningTitle, domainWarningSubtitle, ignoreTitle, goToCorrectDomainTitle). Also updated many existing translation strings (e.g., fieldRequired, invalidInput, various login* strings).

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Frontend
  participant Router
  participant DomainCheck
  participant OAuthProvider

  User->>Frontend: Open app with return/redirect URL
  Frontend->>Router: Resolve redirect target
  Router->>DomainCheck: Validate target against configured domain
  alt domains match
    DomainCheck-->>Frontend: OK
    Frontend-->>User: Show continueRedirecting UI / auto-redirect
  else domain mismatch
    DomainCheck-->>Frontend: Flag domainWarning/untrusted
    Frontend-->>User: Show domainWarning UI (Ignore / Go to correct domain / Redirect manually)
    par User choices
      User->>Frontend: Ignore
      Frontend-->>Router: Proceed with redirect (may be insecure)
    and
      User->>Frontend: Go to correct domain
      Frontend->>Router: Redirect to configured appUrl
    and
      User->>Frontend: Redirect manually
      Frontend-->>User: Provide manual redirect link/action
    end
  end
  opt OAuth flow
    Frontend->>OAuthProvider: Initiate OAuth (auto or manual)
    OAuthProvider-->>Frontend: Callback → complete auth, then Router redirect
  end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

I'm a rabbit in a JSON glen,
I hop through keys again and again.
I stitch new prompts for OAuth and domain,
Tuck legacy strings down the drain.
🥕🐇

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title Check ❓ Inconclusive The title “New Crowdin updates” is too generic and does not clearly describe the primary change, which involves adding and reorganizing OAuth auto-redirect, manual and untrusted redirect flows, and domain-warning keys across multiple locale files. Although it indicates a localization update, it fails to specify the nature of those updates or highlight the significant changes to the authentication and redirect messaging. This lack of specificity makes it difficult for reviewers to understand the main intent at a glance. Please update the PR title to directly reference the key changes, such as “Add OAuth auto-redirect and domain-warning keys to i18n locales,” so that the purpose and scope of the localization updates are immediately clear.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch l10n_main

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 207a1c4 and fa3b9f1.

📒 Files selected for processing (1)
  • frontend/src/lib/i18n/locales/ru-RU.json (2 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

codecov bot commented Jul 18, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 25.43%. Comparing base (4dacb46) to head (fa3b9f1).
⚠️ Report is 56 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #278      +/-   ##
==========================================
+ Coverage   20.14%   25.43%   +5.29%     
==========================================
  Files          24       36      +12     
  Lines        2214     2587     +373     
==========================================
+ Hits          446      658     +212     
- Misses       1733     1893     +160     
- Partials       35       36       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
frontend/src/lib/i18n/locales/de-DE.json (2)

54-54: Use Markdown code formatting and more idiomatic German phrasing

Since this string is rendered via a Markdown component, use backticks for code and the hyphenated compound. Reads more natural in German.

-    "forgotPasswordMessage": "Das Passwort kann durch Änderung der 'USERS' Variable zurückgesetzt werden.",
+    "forgotPasswordMessage": "Das Passwort kann durch Ändern der `USERS`-Variable zurückgesetzt werden.",

55-55: Prefer “erforderlich” over “notwendig” for validation copy

“Erforderlich” is the common UI term in German form validation.

-    "fieldRequired": "Dieses Feld ist notwendig",
+    "fieldRequired": "Dieses Feld ist erforderlich",
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 911f7c3 and 37b9727.

📒 Files selected for processing (1)
  • frontend/src/lib/i18n/locales/de-DE.json (1 hunks)
🔇 Additional comments (1)
frontend/src/lib/i18n/locales/de-DE.json (1)

56-56: LGTM: Clear and standard validation message

“Ungültige Eingabe” is correct and widely used.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

♻️ Duplicate comments (42)
frontend/src/lib/i18n/locales/es-ES.json (4)

17-20: Translate OAuth auto‑redirect strings to Spanish

These are left in English in the es-ES locale.

Apply this diff:

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "Redirección automática de OAuth",
+    "loginOauthAutoRedirectSubtitle": "Será redirigido automáticamente a su proveedor de OAuth para autenticarse.",
+    "loginOauthAutoRedirectButton": "Redirigir ahora",

23-23: Localize “Redirect me manually”

Button copy should be in Spanish.

Apply this diff:

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Redirigirme manualmente",

26-27: Localize untrusted‑redirect title and subtitle

Keep placeholder {{cookieDomain}} intact.

Apply this diff:

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Redirección no confiable",
+    "continueUntrustedRedirectSubtitle": "Está intentando redirigir a un dominio que no coincide con su dominio configurado (<code>{{cookieDomain}}</code>). ¿Está seguro de que desea continuar?",

Please confirm that the runtime expects cookieDomain (not rootDomain) for this message.


57-61: Translate domain‑warning and validation strings

These remain in English; align with the rest of the locale.

Apply this diff:

-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Entrada no válida",
+    "domainWarningTitle": "Dominio no válido",
+    "domainWarningSubtitle": "Esta instancia está configurada para acceder desde <code>{{appUrl}}</code>, pero se está usando <code>{{currentUrl}}</code>. Si continúa, podría tener problemas de autenticación.",
+    "ignoreTitle": "Ignorar",
+    "goToCorrectDomainTitle": "Ir al dominio correcto"
frontend/src/lib/i18n/locales/zh-TW.json (2)

57-61: Localize domain-warning block.

These should be zh‑TW and keep placeholders/HTML.

-"invalidInput": "Invalid input",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"invalidInput": "輸入無效",
+"domainWarningTitle": "無效的網域",
+"domainWarningSubtitle": "此執行個體設定為從 <code>{{appUrl}}</code> 存取,但目前使用的是 <code>{{currentUrl}}</code>。若繼續,可能會發生驗證問題。",
+"ignoreTitle": "忽略",
+"goToCorrectDomainTitle": "前往正確網域"

23-23: Translate and fix placeholder: use {{rootDomain}} (not {{cookieDomain}}).

Current EN strings + wrong placeholder will break interpolation.

-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "手動重新導向",
-"continueUntrustedRedirectTitle": "Untrusted redirect",
+"continueUntrustedRedirectTitle": "不受信任的重新導向",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectSubtitle": "您正嘗試重新導向至與已設定之網域(<code>{{rootDomain}}</code>)不相符的網域。確定要繼續嗎?",

Also applies to: 26-27

frontend/src/lib/i18n/locales/cs-CZ.json (2)

10-10: Fix typo: “Přiliš” → “Příliš”.

-"loginFailRateLimit": "Přiliš mnoho neúspěšných pokusů přihlášení. Zkuste to prosím později",
+"loginFailRateLimit": "Příliš mnoho neúspěšných pokusů přihlášení. Zkuste to prosím později",

17-19: Czech translations + placeholder fix to {{rootDomain}}.

Localize new keys and align placeholder.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
+"loginOauthAutoRedirectTitle": "Automatické přesměrování OAuth",
+"loginOauthAutoRedirectSubtitle": "Budete automaticky přesměrováni k poskytovateli OAuth kvůli ověření.",
+"loginOauthAutoRedirectButton": "Přesměrovat nyní",
-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "Přesměrovat mě ručně",
-"continueUntrustedRedirectTitle": "Untrusted redirect",
+"continueUntrustedRedirectTitle": "Nedůvěryhodné přesměrování",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectSubtitle": "Pokoušíte se přesměrovat na doménu, která neodpovídá vaší nakonfigurované doméně (<code>{{rootDomain}}</code>). Opravdu chcete pokračovat?",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"domainWarningTitle": "Neplatná doména",
+"domainWarningSubtitle": "Tato instance je nastavena pro přístup z <code>{{appUrl}}</code>, ale používá se <code>{{currentUrl}}</code>. Pokud budete pokračovat, mohou nastat problémy s ověřením.",
+"ignoreTitle": "Ignorovat",
+"goToCorrectDomainTitle": "Přejít na správnou doménu"

Also applies to: 23-23, 26-27, 58-61

frontend/src/lib/i18n/locales/pl-PL.json (1)

17-19: Polish translations + placeholder fix to {{rootDomain}}.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
+"loginOauthAutoRedirectTitle": "Automatyczne przekierowanie OAuth",
+"loginOauthAutoRedirectSubtitle": "Zostaniesz automatycznie przekierowany do swojego dostawcy OAuth w celu uwierzytelnienia.",
+"loginOauthAutoRedirectButton": "Przekieruj teraz",
-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "Przekieruj mnie ręcznie",
-"continueUntrustedRedirectTitle": "Untrusted redirect",
+"continueUntrustedRedirectTitle": "Niezaufane przekierowanie",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectSubtitle": "Próbujesz przekierować do domeny, która nie odpowiada skonfigurowanej domenie (<code>{{rootDomain}}</code>). Czy na pewno chcesz kontynuować?",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"domainWarningTitle": "Nieprawidłowa domena",
+"domainWarningSubtitle": "Ta instancja jest skonfigurowana do dostępu z <code>{{appUrl}}</code>, ale używany jest adres <code>{{currentUrl}}</code>. Jeśli będziesz kontynuować, możesz napotkać problemy z uwierzytelnianiem.",
+"ignoreTitle": "Ignoruj",
+"goToCorrectDomainTitle": "Przejdź do właściwej domeny"

Also applies to: 23-23, 26-27, 57-61

frontend/src/lib/i18n/locales/tr-TR.json (2)

17-19: Turkish translations + placeholder fix to {{rootDomain}}.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
+"loginOauthAutoRedirectTitle": "OAuth Otomatik Yönlendirme",
+"loginOauthAutoRedirectSubtitle": "Kimlik doğrulamak için OAuth sağlayıcınıza otomatik olarak yönlendirileceksiniz.",
+"loginOauthAutoRedirectButton": "Şimdi yönlendir",
-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "Beni manuel olarak yönlendir",
-"continueUntrustedRedirectTitle": "Untrusted redirect",
+"continueUntrustedRedirectTitle": "Güvenilmeyen yönlendirme",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectSubtitle": "Yapılandırılmış alan adınızla (<code>{{rootDomain}}</code>) eşleşmeyen bir alana yönlendirmeye çalışıyorsunuz. Devam etmek istiyor musunuz?",

Also applies to: 23-23, 26-27


57-61: Restore/localize domain-warning set (“invalidInput” regressed).

-"invalidInput": "Invalid input",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"invalidInput": "Geçersiz giriş",
+"domainWarningTitle": "Geçersiz alan adı",
+"domainWarningSubtitle": "Bu örneğe <code>{{appUrl}}</code> üzerinden erişilecek şekilde yapılandırıldı, ancak şu anda <code>{{currentUrl}}</code> kullanılıyor. Devam ederseniz kimlik doğrulamada sorunlar yaşayabilirsiniz.",
+"ignoreTitle": "Yoksay",
+"goToCorrectDomainTitle": "Doğru alan adına git"
frontend/src/lib/i18n/locales/no-NO.json (1)

26-27: Placeholder mismatch: use {{rootDomain}}. Also localize title.

-"continueUntrustedRedirectTitle": "Untrusted redirect",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectTitle": "Ikke klarert viderekobling",
+"continueUntrustedRedirectSubtitle": "Du prøver å viderekoble til et domene som ikke samsvarer med det konfigurerte domenet ditt (<code>{{rootDomain}}</code>). Er du sikker på at du vil fortsette?",
frontend/src/lib/i18n/locales/pt-PT.json (2)

26-27: Fix placeholder mismatch: cookieDomain → rootDomain.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",

57-61: Translate domain-warning block and confirm escaping.

Keys: invalidInput, domainWarningTitle, domainWarningSubtitle, ignoreTitle, goToCorrectDomainTitle. Keep placeholders unchanged; ensure safe interpolation.

frontend/src/lib/i18n/locales/sr-SP.json (4)

22-22: Fix Serbian grammar in redirecting subtitle.

-    "continueRedirectingSubtitle": "Требали би сте ускоро да будете преусмерени на апликацију",
+    "continueRedirectingSubtitle": "Ускоро ћете бити преусмерени на апликацију",

23-23: Translate manual-redirect button to Serbian.

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Преусмери ме ручно",

56-61: Localize validation/domain-warning strings and keep placeholders intact.

Keys: fieldRequired, invalidInput, domainWarningTitle, domainWarningSubtitle, ignoreTitle, goToCorrectDomainTitle.


26-27: Placeholder mismatch and untranslated copy.

  • Use {{rootDomain}} instead of {{cookieDomain}}.
  • Localize title/subtitle to Serbian.
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Непоуздано преусмеравање",
+    "continueUntrustedRedirectSubtitle": "Покушавате да преусмерите на домен који се не поклапа са подешеним доменом (<code>{{rootDomain}}</code>). Да ли сигурно желите да наставите?",
frontend/src/lib/i18n/locales/el-GR.json (2)

58-61: Translate domain-warning strings and verify safe HTML interpolation.

Translate domainWarningTitle/domainWarningSubtitle/ignoreTitle/goToCorrectDomainTitle; keep placeholders and ensure escaping when rendering.


26-27: Placeholder mismatch and untranslated copy.

Switch to {{rootDomain}} and translate to Greek.

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code}). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Μη έμπιστη ανακατεύθυνση",
+    "continueUntrustedRedirectSubtitle": "Προσπαθείτε να ανακατευθύνετε σε domain που δεν ταιριάζει με το ρυθμισμένο domain σας (<code>{{rootDomain}}</code>). Θέλετε σίγουρα να συνεχίσετε;",
frontend/src/lib/i18n/locales/vi-VN.json (3)

26-27: Fix placeholder mismatch: cookieDomain → rootDomain.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",

17-19: Localize new redirect strings to Vietnamese.

Translate: continueTitle, continueRedirectManually, continueUntrustedRedirectTitle/Subtitle, and OAuth auto-redirect keys.

Also applies to: 20-20, 23-23, 26-27


57-61: Translate domain-warning block and invalidInput; keep placeholders.

frontend/src/lib/i18n/locales/sv-SE.json (1)

17-19: Translate new strings to Swedish and fix placeholder.

Several keys remain in English; also switch {{cookieDomain}} → {{rootDomain}}.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "Automatisk OAuth‑omdirigering",
+    "loginOauthAutoRedirectSubtitle": "Du kommer automatiskt att omdirigeras till din OAuth‑leverantör för att autentisera.",
+    "loginOauthAutoRedirectButton": "Omdirigera nu",
-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Omdirigera mig manuellt",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Obetrodd omdirigering",
+    "continueUntrustedRedirectSubtitle": "Du försöker omdirigera till en domän som inte matchar din konfigurerade domän (<code>{{rootDomain}}</code>). Är du säker på att du vill fortsätta?",
-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Ogiltig inmatning",
+    "domainWarningTitle": "Ogiltig domän",
+    "domainWarningSubtitle": "Den här instansen är konfigurerad att nås från <code>{{appUrl}}</code>, men <code>{{currentUrl}}</code> används. Om du fortsätter kan autentiseringsproblem uppstå.",
+    "ignoreTitle": "Ignorera",
+    "goToCorrectDomainTitle": "Gå till rätt domän"

Also applies to: 23-23, 26-27, 57-61

frontend/src/lib/i18n/locales/uk-UA.json (1)

17-19: Localize new keys to Ukrainian and fix placeholder.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
-    "continueTitle": "Continue",
+    "loginOauthAutoRedirectTitle": "Автоматичне перенаправлення OAuth",
+    "loginOauthAutoRedirectSubtitle": "Вас буде автоматично перенаправлено до провайдера OAuth для автентифікації.",
+    "loginOauthAutoRedirectButton": "Перенаправити зараз",
+    "continueTitle": "Продовжити",
-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Перенаправити мене вручну",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Недовірене перенаправлення",
+    "continueUntrustedRedirectSubtitle": "Ви намагаєтесь перенаправити на домен, який не відповідає налаштованому домену (<code>{{rootDomain}}</code>). Продовжити?",
-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Некоректне введення",
+    "domainWarningTitle": "Недійсний домен",
+    "domainWarningSubtitle": "Цей екземпляр налаштовано для доступу з <code>{{appUrl}}</code>, але використовується <code>{{currentUrl}}</code>. Якщо продовжите, можливі проблеми з автентифікацією.",
+    "ignoreTitle": "Ігнорувати",
+    "goToCorrectDomainTitle": "Перейти на правильний домен"

Also applies to: 20-20, 23-23, 26-27, 57-61

frontend/src/lib/i18n/locales/da-DK.json (1)

26-27: Replace cookieDomain with rootDomain and localize title.

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Ubetroet omdirigering",
+    "continueUntrustedRedirectSubtitle": "Du forsøger at omdirigere til et domæne, der ikke matcher dit konfigurerede domæne (<code>{{rootDomain}}</code>). Er du sikker på, at du vil fortsætte?",
frontend/src/lib/i18n/locales/pt-BR.json (2)

17-19: Localize OAuth/redirect strings and fix placeholder.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "Redirecionamento automático do OAuth",
+    "loginOauthAutoRedirectSubtitle": "Você será redirecionado automaticamente para o seu provedor OAuth para autenticar.",
+    "loginOauthAutoRedirectButton": "Redirecionar agora",
-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Redirecionar manualmente",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Redirecionamento não confiável",
+    "continueUntrustedRedirectSubtitle": "Você está tentando redirecionar para um domínio que não corresponde ao domínio configurado (<code>{{rootDomain}}</code>). Tem certeza de que deseja continuar?",

Also applies to: 23-23, 26-27


57-61: Translate domain-warning block to pt-BR.

-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Entrada inválida",
+    "domainWarningTitle": "Domínio inválido",
+    "domainWarningSubtitle": "Esta instância foi configurada para ser acessada em <code>{{appUrl}}</code>, mas <code>{{currentUrl}}</code> está sendo usado. Se você prosseguir, poderá enfrentar problemas de autenticação.",
+    "ignoreTitle": "Ignorar",
+    "goToCorrectDomainTitle": "Ir para o domínio correto"
frontend/src/lib/i18n/locales/ko-KR.json (2)

17-19: Translate new keys to Korean and fix placeholder.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
-    "continueTitle": "Continue",
+    "loginOauthAutoRedirectTitle": "OAuth 자동 리디렉션",
+    "loginOauthAutoRedirectSubtitle": "인증을 위해 OAuth 제공자로 자동 리디렉션됩니다.",
+    "loginOauthAutoRedirectButton": "지금 리디렉션",
+    "continueTitle": "계속",
-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "수동으로 리디렉션",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "신뢰할 수 없는 리디렉션",
+    "continueUntrustedRedirectSubtitle": "구성된 도메인(<code>{{rootDomain}}</code>)과(와) 일치하지 않는 도메인으로 리디렉션하려고 합니다. 계속하시겠습니까?",

Also applies to: 20-20, 23-23, 26-27


57-61: Translate validation and domain-warning block.

-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "잘못된 입력",
+    "domainWarningTitle": "잘못된 도메인",
+    "domainWarningSubtitle": "이 인스턴스는 <code>{{appUrl}}</code>에서 접근하도록 구성되었지만 현재 <code>{{currentUrl}}</code>이(가) 사용되고 있습니다. 계속하면 인증에 문제가 발생할 수 있습니다.",
+    "ignoreTitle": "무시",
+    "goToCorrectDomainTitle": "올바른 도메인으로 이동"
frontend/src/lib/i18n/locales/zh-CN.json (4)

17-19: Localize OAuth/redirect strings and fix placeholder.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "OAuth 自动重定向",
+    "loginOauthAutoRedirectSubtitle": "您将被自动重定向到 OAuth 提供商以完成认证。",
+    "loginOauthAutoRedirectButton": "立即重定向",
-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "手动重定向",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "不受信任的重定向",
+    "continueUntrustedRedirectSubtitle": "您正在尝试重定向到与已配置的域名(<code>{{rootDomain}}</code>)不匹配的域名。确定要继续吗?",

Also applies to: 23-23, 26-27


48-48: Fix subject: “您的 IP 地址 …” (not 用户).

-    "unauthorizedIpSubtitle": "用户 <code>{{ip}}</code> 无权访问资源 <code>{{resource}}</code>。",
+    "unauthorizedIpSubtitle": "您的 IP 地址 <code>{{ip}}</code> 无权访问资源 <code>{{resource}}</code>。",

55-57: Typos/wording: remove extra space and standardize terms.

-    "forgotPasswordMessage": "您可以通过更改 `USERS ` 环境变量重置您的密码。",
-    "fieldRequired": "必添字段",
-    "invalidInput": "无效的输入",
+    "forgotPasswordMessage": "您可以通过更改 `USERS` 环境变量重置您的密码。",
+    "fieldRequired": "必填字段",
+    "invalidInput": "输入无效",

58-61: Translate domain-warning block.

-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "domainWarningTitle": "无效的域名",
+    "domainWarningSubtitle": "此实例被配置为从 <code>{{appUrl}}</code> 访问,但当前使用的是 <code>{{currentUrl}}</code>。如果继续,可能会遇到身份验证问题。",
+    "ignoreTitle": "忽略",
+    "goToCorrectDomainTitle": "前往正确的域名"
frontend/src/lib/i18n/locales/it-IT.json (1)

26-27: Placeholder mismatch: use {{rootDomain}}

Align with component props to avoid raw placeholder rendering.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "Stai tentando di reindirizzare a un dominio che non corrisponde al dominio configurato (<code>{{rootDomain}}</code>). Sei sicuro di voler continuare?",
frontend/src/lib/i18n/locales/ru-RU.json (2)

23-23: English string in RU locale. Translate.

Button label remains in English.

-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "Перенаправить меня вручную",

58-61: Translate domain‑warning block to Russian.

These keys must not ship in English.

-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"domainWarningTitle": "Неверный домен",
+"domainWarningSubtitle": "Этот экземпляр настроен для доступа по адресу <code>{{appUrl}}</code>, но используется <code>{{currentUrl}}</code>. Если вы продолжите, могут возникнуть проблемы с аутентификацией.",
+"ignoreTitle": "Игнорировать",
+"goToCorrectDomainTitle": "Перейти на правильный домен"
frontend/src/lib/i18n/locales/fr-FR.json (2)

58-61: Traduire le bloc d’avertissement de domaine.

Ces clés restent en anglais.

-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"domainWarningTitle": "Domaine invalide",
+"domainWarningSubtitle": "Cette instance est configurée pour être accessible depuis <code>{{appUrl}}</code>, mais <code>{{currentUrl}}</code> est utilisé. Si vous continuez, vous pourriez rencontrer des problèmes d’authentification.",
+"ignoreTitle": "Ignorer",
+"goToCorrectDomainTitle": "Aller au bon domaine"

26-27: Traduire et corriger le placeholder (rootDomain).

Remplacer {{cookieDomain}} par {{rootDomain}} et traduire.

-"continueUntrustedRedirectTitle": "Untrusted redirect",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectTitle": "Redirection non approuvée",
+"continueUntrustedRedirectSubtitle": "Vous tentez de rediriger vers un domaine qui ne correspond pas à votre domaine configuré (<code>{{rootDomain}}</code>). Êtes-vous sûr de vouloir continuer ?",
frontend/src/lib/i18n/locales/he-IL.json (3)

23-23: Translate manual redirect button (RTL).

-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "הפנה אותי ידנית",

57-61: Localize validation + domain‑warning block (RTL).

-"invalidInput": "Invalid input",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"invalidInput": "קלט לא תקין",
+"domainWarningTitle": "דומיין לא תקין",
+"domainWarningSubtitle": "מופע זה מוגדר לגישה מ־<code>{{appUrl}}</code>, אך נעשה שימוש ב־<code>{{currentUrl}}</code>. אם תמשיך, ייתכנו בעיות באימות.",
+"ignoreTitle": "התעלם",
+"goToCorrectDomainTitle": "עבור לדומיין הנכון"

17-20: Localize OAuth auto‑redirect + continue title (RTL).

Translate to Hebrew; keep HTML/placeholders.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
-"continueTitle": "Continue",
+"loginOauthAutoRedirectTitle": "הפניה אוטומטית ל‑OAuth",
+"loginOauthAutoRedirectSubtitle": "תופנה אוטומטית לספק ה‑OAuth שלך לצורך אימות.",
+"loginOauthAutoRedirectButton": "הפנה עכשיו",
+"continueTitle": "המשך",
🧹 Nitpick comments (16)
frontend/src/lib/i18n/locales/zh-TW.json (1)

17-19: Localize OAuth auto-redirect strings.

Provide Traditional Chinese for new keys.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
+"loginOauthAutoRedirectTitle": "OAuth 自動重新導向",
+"loginOauthAutoRedirectSubtitle": "系統將自動將您重新導向至 OAuth 供應商以完成驗證。",
+"loginOauthAutoRedirectButton": "立即重新導向",
frontend/src/lib/i18n/locales/ja-JP.json (1)

57-61: Localize domain-warning set.

-"invalidInput": "Invalid input",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"invalidInput": "無効な入力",
+"domainWarningTitle": "無効なドメイン",
+"domainWarningSubtitle": "このインスタンスは <code>{{appUrl}}</code> からのアクセス用に構成されていますが、現在は <code>{{currentUrl}}</code> が使用されています。続行すると認証で問題が発生する可能性があります。",
+"ignoreTitle": "無視する",
+"goToCorrectDomainTitle": "正しいドメインに移動"
frontend/src/lib/i18n/locales/no-NO.json (1)

17-19: Norwegian translations for new keys.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
+"loginOauthAutoRedirectTitle": "Automatisk OAuth-viderekobling",
+"loginOauthAutoRedirectSubtitle": "Du blir automatisk viderekoblet til din OAuth-leverandør for autentisering.",
+"loginOauthAutoRedirectButton": "Viderekoble nå",
-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "Viderekoble manuelt",
-"invalidInput": "Invalid input",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"invalidInput": "Ugyldig inndata",
+"domainWarningTitle": "Ugyldig domene",
+"domainWarningSubtitle": "Denne instansen er konfigurert for tilgang fra <code>{{appUrl}}</code>, men <code>{{currentUrl}}</code> brukes. Hvis du fortsetter, kan det oppstå problemer med autentisering.",
+"ignoreTitle": "Ignorer",
+"goToCorrectDomainTitle": "Gå til riktig domene"

Also applies to: 23-23, 57-61

frontend/src/lib/i18n/locales/af-ZA.json (1)

17-19: Afrikaans translations + placeholder fix to {{rootDomain}}.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
+"loginOauthAutoRedirectTitle": "OAuth Outomatiese Herleiding",
+"loginOauthAutoRedirectSubtitle": "Jy sal outomaties na jou OAuth-verskaffer herlei word om te verifieer.",
+"loginOauthAutoRedirectButton": "Herlei nou",
-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "Herlei my handmatig",
-"continueUntrustedRedirectTitle": "Untrusted redirect",
+"continueUntrustedRedirectTitle": "Nie-vertroude herleiding",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectSubtitle": "Jy probeer herlei na ’n domein wat nie ooreenstem met jou gekonfigureerde domein nie (<code>{{rootDomain}}</code>). Is jy seker jy wil voortgaan?",
-"invalidInput": "Invalid input",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"invalidInput": "Ongeldige invoer",
+"domainWarningTitle": "Ongeldige domein",
+"domainWarningSubtitle": "Hierdie instansie is gekonfigureer om vanaf <code>{{appUrl}}</code> gebruik te word, maar <code>{{currentUrl}}</code> word tans gebruik. As jy voortgaan, kan daar probleme met verifikasie wees.",
+"ignoreTitle": "Ignoreer",
+"goToCorrectDomainTitle": "Gaan na korrekte domein"

Also applies to: 23-23, 26-27, 57-61

frontend/src/lib/i18n/locales/ar-SA.json (1)

57-61: Localize domain-warning set.

-"invalidInput": "Invalid input",
-"domainWarningTitle": "Invalid Domain",
-"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-"ignoreTitle": "Ignore",
-"goToCorrectDomainTitle": "Go to correct domain"
+"invalidInput": "إدخال غير صالح",
+"domainWarningTitle": "نطاق غير صالح",
+"domainWarningSubtitle": "تم إعداد هذا المثيل للوصول من <code>{{appUrl}}</code>، لكن يتم استخدام <code>{{currentUrl}}</code>. إذا تابعت، قد تواجه مشكلات في المصادقة.",
+"ignoreTitle": "تجاهل",
+"goToCorrectDomainTitle": "الانتقال إلى النطاق الصحيح"
frontend/src/lib/i18n/locales/nl-NL.json (1)

17-19: Localize newly added strings to Dutch.

These remain English in the nl-NL locale (OAuth auto-redirect + manual redirect).

Keys: loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle, loginOauthAutoRedirectButton, continueRedirectManually.

Also applies to: 23-23

frontend/src/lib/i18n/locales/pt-PT.json (1)

17-19: Localize OAuth auto-redirect and manual-redirect labels to pt-PT.

Keys: loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle, loginOauthAutoRedirectButton, continueRedirectManually.

Also applies to: 23-23

frontend/src/lib/i18n/locales/sr-SP.json (1)

17-19: Localize OAuth auto-redirect strings to Serbian.

frontend/src/lib/i18n/locales/el-GR.json (1)

17-19: Localize newly added redirect strings (currently English).

Keys: loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle, loginOauthAutoRedirectButton, continueRedirectManually.

Also applies to: 23-23

frontend/src/lib/i18n/locales/hu-HU.json (1)

17-19: Localize newly added keys to Hungarian.

These values are still English in hu-HU.

Keys include: loginOauthAutoRedirect*, continueTitle, continueRedirectManually, continueUntrustedRedirectTitle, invalidInput, domainWarning*, ignoreTitle, goToCorrectDomainTitle.

Also applies to: 20-20, 23-23, 26-26, 57-61

frontend/src/lib/i18n/locales/ca-ES.json (1)

17-19: Localize new keys to Catalan.

Values are English in ca-ES; translate OAuth auto-redirect, continue*, invalidInput, and domain-warning strings.

Also applies to: 20-20, 23-23, 26-26, 57-61

frontend/src/lib/i18n/locales/ro-RO.json (1)

17-19: Localize new strings to Romanian.

These keys remain English in ro-RO.

Also applies to: 20-20, 23-23, 26-26, 57-61

frontend/src/lib/i18n/locales/it-IT.json (1)

17-19: Localize new keys to Italian (currently in English).

Provide Italian copy for OAuth auto-redirect, continue, and domain-warning blocks.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
-    "continueTitle": "Continue",
+    "loginOauthAutoRedirectTitle": "Reindirizzamento OAuth automatico",
+    "loginOauthAutoRedirectSubtitle": "Verrai reindirizzato automaticamente al tuo provider OAuth per autenticarti.",
+    "loginOauthAutoRedirectButton": "Reindirizza ora",
+    "continueTitle": "Continua",
-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Reindirizzami manualmente",
-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Input non valido",
+    "domainWarningTitle": "Dominio non valido",
+    "domainWarningSubtitle": "Questa istanza è configurata per essere raggiunta da <code>{{appUrl}}</code>, ma è in uso <code>{{currentUrl}}</code>. Se procedi, potresti riscontrare problemi di autenticazione.",
+    "ignoreTitle": "Ignora",
+    "goToCorrectDomainTitle": "Vai al dominio corretto"

Also applies to: 20-20, 23-23, 57-61

frontend/src/lib/i18n/locales/da-DK.json (1)

23-23: Translate remaining English strings in da-DK.

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Omdiriger mig manuelt",
-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Ugyldigt input",
+    "domainWarningTitle": "Ugyldigt domæne",
+    "domainWarningSubtitle": "Denne instans er konfigureret til adgang fra <code>{{appUrl}}</code>, men <code>{{currentUrl}}</code> bruges. Hvis du fortsætter, kan der opstå problemer med godkendelse.",
+    "ignoreTitle": "Ignorer",
+    "goToCorrectDomainTitle": "Gå til korrekt domæne"

Also applies to: 57-61

frontend/src/lib/i18n/locales/ru-RU.json (1)

3-3: Comma missing in “loginTitleSimple”.

Prefer: "С возвращением, пожалуйста, войдите".

Apply:

-"loginTitleSimple": "С возвращением, пожалуйста войдите",
+"loginTitleSimple": "С возвращением, пожалуйста, войдите",
frontend/src/lib/i18n/locales/fr-FR.json (1)

23-23: Libellé plus naturel pour un bouton.

Optionnel: utiliser l’impératif.

-"continueRedirectManually": "Redirection manuelle",
+"continueRedirectManually": "Me rediriger manuellement",
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 81944e7 and 4e9342f.

📒 Files selected for processing (30)
  • frontend/src/lib/i18n/locales/af-ZA.json (2 hunks)
  • frontend/src/lib/i18n/locales/ar-SA.json (2 hunks)
  • frontend/src/lib/i18n/locales/ca-ES.json (2 hunks)
  • frontend/src/lib/i18n/locales/cs-CZ.json (1 hunks)
  • frontend/src/lib/i18n/locales/da-DK.json (2 hunks)
  • frontend/src/lib/i18n/locales/de-DE.json (3 hunks)
  • frontend/src/lib/i18n/locales/el-GR.json (2 hunks)
  • frontend/src/lib/i18n/locales/en-US.json (2 hunks)
  • frontend/src/lib/i18n/locales/es-ES.json (2 hunks)
  • frontend/src/lib/i18n/locales/fi-FI.json (2 hunks)
  • frontend/src/lib/i18n/locales/fr-FR.json (2 hunks)
  • frontend/src/lib/i18n/locales/he-IL.json (2 hunks)
  • frontend/src/lib/i18n/locales/hu-HU.json (2 hunks)
  • frontend/src/lib/i18n/locales/it-IT.json (2 hunks)
  • frontend/src/lib/i18n/locales/ja-JP.json (2 hunks)
  • frontend/src/lib/i18n/locales/ko-KR.json (2 hunks)
  • frontend/src/lib/i18n/locales/nl-NL.json (2 hunks)
  • frontend/src/lib/i18n/locales/no-NO.json (2 hunks)
  • frontend/src/lib/i18n/locales/pl-PL.json (2 hunks)
  • frontend/src/lib/i18n/locales/pt-BR.json (2 hunks)
  • frontend/src/lib/i18n/locales/pt-PT.json (2 hunks)
  • frontend/src/lib/i18n/locales/ro-RO.json (2 hunks)
  • frontend/src/lib/i18n/locales/ru-RU.json (2 hunks)
  • frontend/src/lib/i18n/locales/sr-SP.json (2 hunks)
  • frontend/src/lib/i18n/locales/sv-SE.json (2 hunks)
  • frontend/src/lib/i18n/locales/tr-TR.json (2 hunks)
  • frontend/src/lib/i18n/locales/uk-UA.json (3 hunks)
  • frontend/src/lib/i18n/locales/vi-VN.json (2 hunks)
  • frontend/src/lib/i18n/locales/zh-CN.json (3 hunks)
  • frontend/src/lib/i18n/locales/zh-TW.json (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • frontend/src/lib/i18n/locales/de-DE.json
  • frontend/src/lib/i18n/locales/fi-FI.json
🔇 Additional comments (5)
frontend/src/lib/i18n/locales/hu-HU.json (1)

59-59: Ensure safe HTML interpolation for appUrl/currentUrl.

Confirm escaping if using innerHTML/Svelte {@html}/dangerouslySetInnerHTML when rendering domainWarningSubtitle.

frontend/src/lib/i18n/locales/nl-NL.json (1)

57-61: Translate domain-warning strings and ensure appUrl/currentUrl are HTML-escaped before insertion

frontend/src/lib/i18n/locales/nl-NL.json — lines 57–61

  • Translate keys: invalidInput, domainWarningTitle, domainWarningSubtitle, ignoreTitle, goToCorrectDomainTitle.
  • domainWarningSubtitle contains {{appUrl}} and {{currentUrl}}; confirm the renderer does NOT use raw HTML insertion (React dangerouslySetInnerHTML, Svelte {@html}, etc.) and ensure appUrl/currentUrl are HTML-escaped or encoded before being inserted into the elements.
frontend/src/lib/i18n/locales/en-US.json (1)

20-20: Action: verify and align continueTitle across locales

  • Observed: continueTitle is present in these locale files — af-ZA.json, ar-SA.json, ca-ES.json, cs-CZ.json, da-DK.json, de-DE.json, el-GR.json, en-US.json, en.json, es-ES.json, fi-FI.json, fr-FR.json, he-IL.json, hu-HU.json, it-IT.json, ja-JP.json, ko-KR.json, nl-NL.json, no-NO.json, pl-PL.json, pt-BR.json, pt-PT.json, ro-RO.json, ru-RU.json, sr-SP.json, sv-SE.json, tr-TR.json, uk-UA.json, vi-VN.json, zh-CN.json, zh-TW.json.

  • The legacy-key audit errored; re-run this corrected audit and check code usage, then add or remove continueTitle consistently across locales:

#!/bin/bash
set -euo pipefail
LOC_DIR="frontend/src/lib/i18n/locales"

echo ">> Locales that define continueTitle"
rg -l -g "${LOC_DIR}/*.json" '"continueTitle"' | xargs -r -n1 basename | sort

echo ">> Legacy keys present (if any)"
rg -n -g "${LOC_DIR}/*.json" '"continueInvalidRedirectTitle"|"continueInvalidRedirectSubtitle"|"untrustedRedirectTitle"|"untrustedRedirectSubtitle"' || true

echo ">> Code usage of continueTitle"
rg -n --hidden --no-ignore '\bcontinueTitle\b' || true
frontend/src/lib/i18n/locales/ru-RU.json (1)

26-27: Replace {{cookieDomain}} with {{rootDomain}} and translate RU string

File: frontend/src/lib/i18n/locales/ru-RU.json (lines ~26-27) — update to Russian and use {{rootDomain}}:

-"continueUntrustedRedirectTitle": "Untrusted redirect",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectTitle": "Недоверенное перенаправление",
+"continueUntrustedRedirectSubtitle": "Вы пытаетесь перейти на домен, который не совпадает с настроенным доменом (<code>{{rootDomain}}</code>). Продолжить?",

Confirm the UI component expects {{rootDomain}} before changing other locales (rg didn't search .tsx; many locale files still contain {{cookieDomain}}).

frontend/src/lib/i18n/locales/he-IL.json (1)

26-27: Keep placeholders consistent — don’t change he-IL to {{rootDomain}} alone.

All locales in frontend/src/lib/i18n/locales currently use {{cookieDomain}}; changing only he-IL would be inconsistent. Verify which placeholder the app actually supplies to the translation and either:

  • Revert frontend/src/lib/i18n/locales/he-IL.json to use {{cookieDomain}}; or
  • Update the code that provides the value and replace {{cookieDomain}} → {{rootDomain}} across all locale files.

Comment on lines +17 to +19
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Arabic translations + placeholder fix to {{rootDomain}}.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
+"loginOauthAutoRedirectTitle": "إعادة التوجيه التلقائي لـ OAuth",
+"loginOauthAutoRedirectSubtitle": "سيتم إعادة توجيهك تلقائيًا إلى موفر OAuth للمصادقة.",
+"loginOauthAutoRedirectButton": "إعادة التوجيه الآن",
-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "إعادة توجيهي يدويًا",
-"continueUntrustedRedirectTitle": "Untrusted redirect",
+"continueUntrustedRedirectTitle": "إعادة توجيه غير موثوقة",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectSubtitle": "أنت تحاول إعادة التوجيه إلى نطاق لا يطابق النطاق المُكوَّن لديك (<code>{{rootDomain}}</code>). هل تريد المتابعة؟",

Also applies to: 23-23, 26-27

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/ar-SA.json around lines 17-19 (and also apply
same changes at lines 23 and 26-27), the entries are still English and the
domain placeholder is incorrect; replace the English text with the correct
Arabic translations and update any hardcoded domain text to use the
Handlebars-style placeholder {{rootDomain}} where required so the strings read
in Arabic and interpolate rootDomain at runtime.

Comment on lines +26 to +27
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix placeholder mismatch: cookieDomain → rootDomain.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/ca-ES.json around lines 26 to 27, the
placeholder name is incorrect: change the placeholder inside the string from
{{cookieDomain}} to {{rootDomain}} (preserving the surrounding <code>...</code>
tags and string formatting) so the translation key uses the correct variable.

Comment on lines +17 to +19
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Repo-wide check for placeholders/untranslated keys.

Run to catch {{cookieDomain}} and EN fallbacks across locales.


🏁 Script executed:

#!/bin/bash
set -euo pipefail
LOCALES_DIR="frontend/src/lib/i18n/locales"
echo "== Bad placeholder check =="
rg -n '{{cookieDomain}}' "$LOCALES_DIR"/*.json || true
echo
echo "== EN fallback check on critical keys =="
keys=(continueRedirectManually continueUntrustedRedirectTitle continueUntrustedRedirectSubtitle domainWarningTitle domainWarningSubtitle ignoreTitle goToCorrectDomainTitle loginOauthAutoRedirectTitle loginOauthAutoRedirectSubtitle loginOauthAutoRedirectButton invalidInput)
for f in "$LOCALES_DIR"/*.json; do
  [[ "$f" == *"en-US.json" ]] && continue
  out=""
  for k in "${keys[@]}"; do
    v=$(jq -r --arg k "$k" '.[$k] // empty' "$f")
    en=$(jq -r --arg k "$k" '.[$k] // empty' "$LOCALES_DIR/en-US.json")
    [[ -n "$v" && "$v" == "$en" ]] && out+="  $k matches en-US\n"
  done
  [[ -n "$out" ]] && { echo "-- $f"; printf "%b" "$out"; }
done

Length of output: 14110


Fix untranslated locale keys & re-run placeholder check

rg failed for '{{cookieDomain}}' (unescaped braces). Re-run with:
rg -n --fixed-strings '{{cookieDomain}}' frontend/src/lib/i18n/locales/*.json

Multiple locale JSONs under frontend/src/lib/i18n/locales contain critical keys identical to en-US — keys affected include: continueRedirectManually, continueUntrustedRedirectTitle, continueUntrustedRedirectSubtitle, domainWarningTitle, domainWarningSubtitle, ignoreTitle, goToCorrectDomainTitle, loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle, loginOauthAutoRedirectButton, invalidInput. Example: frontend/src/lib/i18n/locales/cs-CZ.json contains the loginOauthAutoRedirect* entries in English. Translate these keys or confirm intentional English fallback and re-run the placeholder check.

Comment on lines +26 to +27
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix placeholder: cookieDomain → rootDomain

continue-page.tsx provides {rootDomain}; this string won’t interpolate. Replace the placeholder.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/en-US.json around lines 26 to 27, the
translation uses the placeholder {{cookieDomain}} but continue-page.tsx supplies
{rootDomain}; update the placeholder to {{rootDomain}} (keeping the existing
<code> tags and surrounding text) so the string interpolates correctly at
runtime.

Comment on lines +17 to +19
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Japanese translations + placeholder fix to {{rootDomain}}.

-"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-"loginOauthAutoRedirectButton": "Redirect now",
+"loginOauthAutoRedirectTitle": "OAuth 自動リダイレクト",
+"loginOauthAutoRedirectSubtitle": "認証のため、OAuth プロバイダーへ自動的にリダイレクトされます。",
+"loginOauthAutoRedirectButton": "今すぐリダイレクト",
-"continueRedirectManually": "Redirect me manually",
+"continueRedirectManually": "手動でリダイレクト",
-"continueUntrustedRedirectTitle": "Untrusted redirect",
+"continueUntrustedRedirectTitle": "信頼できないリダイレクト",
-"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+"continueUntrustedRedirectSubtitle": "設定されたドメイン(<code>{{rootDomain}}</code>)と一致しないドメインへリダイレクトしようとしています。続行してもよろしいですか?",

Also applies to: 23-23, 26-27

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/ja-JP.json around lines 17-19 (and also adjust
lines 23, 26-27), the entries are still English and placeholders are incorrect;
replace the English strings with proper Japanese translations and ensure any
domain placeholder uses the template key {{rootDomain}} (not a hardcoded value).
Update the keys: loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle,
loginOauthAutoRedirectButton (and the other referenced lines) with concise
Japanese text and swap any domain placeholders to {{rootDomain}} so translations
read naturally and variables render correctly.

Comment on lines +17 to +27
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
"continueTitle": "Ga verder",
"continueRedirectingTitle": "Omleiden...",
"continueRedirectingSubtitle": "Je wordt naar de app doorgestuurd",
"continueInvalidRedirectTitle": "Ongeldige omleiding",
"continueInvalidRedirectSubtitle": "De omleidings-URL is ongeldig",
"continueRedirectManually": "Redirect me manually",
"continueInsecureRedirectTitle": "Onveilige doorverwijzing",
"continueInsecureRedirectSubtitle": "You are trying to redirect from <code>https</code> to <code>http</code> which is not secure. Are you sure you want to continue?",
"continueTitle": "Ga verder",
"continueSubtitle": "Klik op de knop om door te gaan naar de app.",
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Repo-wide check: replace any remaining {{cookieDomain}} and enforce key parity.

Guard against mixed usage across locales.

Also applies to: 57-61


🏁 Script executed:

#!/bin/bash
# 1) Find locales using {{cookieDomain}} in the untrusted-redirect subtitle.
rg -nP '\bcontinueUntrustedRedirectSubtitle\b.*cookieDomain' frontend/src/lib/i18n/locales -C0

# 2) Confirm UI passes rootDomain for the continue-page.
rg -nP 'continueUntrustedRedirectSubtitle|rootDomain' -n -S frontend -g '!**/dist/**' -C2

# 3) Ensure all locales contain the new keys.
REF="frontend/src/lib/i18n/locales/en-US.json"
for f in frontend/src/lib/i18n/locales/*.json; do
  echo "== $f"
  comm -23 <(jq -r 'keys[]' "$REF"|sort) <(jq -r 'keys[]' "$f"|sort) | sed 's/^/  missing: /'
done

Length of output: 9864


Replace remaining {{cookieDomain}} placeholders in locales and enforce key parity

  • Found continueUntrustedRedirectSubtitle still using {{cookieDomain}} (line 27) in:
    frontend/src/lib/i18n/locales/zh-TW.json, frontend/src/lib/i18n/locales/zh-CN.json, frontend/src/lib/i18n/locales/vi-VN.json, frontend/src/lib/i18n/locales/uk-UA.json, frontend/src/lib/i18n/locales/tr-TR.json, frontend/src/lib/i18n/locales/sv-SE.json, frontend/src/lib/i18n/locales/sr-SP.json, frontend/src/lib/i18n/locales/ro-RO.json, frontend/src/lib/i18n/locales/ru-RU.json, frontend/src/lib/i18n/locales/pt-BR.json, frontend/src/lib/i18n/locales/no-NO.json, frontend/src/lib/i18n/locales/pt-PT.json, frontend/src/lib/i18n/locales/pl-PL.json, frontend/src/lib/i18n/locales/ko-KR.json, frontend/src/lib/i18n/locales/ja-JP.json, frontend/src/lib/i18n/locales/it-IT.json, frontend/src/lib/i18n/locales/hu-HU.json, frontend/src/lib/i18n/locales/he-IL.json, frontend/src/lib/i18n/locales/nl-NL.json, frontend/src/lib/i18n/locales/fr-FR.json, frontend/src/lib/i18n/locales/fi-FI.json, frontend/src/lib/i18n/locales/es-ES.json, frontend/src/lib/i18n/locales/de-DE.json, frontend/src/lib/i18n/locales/da-DK.json, frontend/src/lib/i18n/locales/el-GR.json, frontend/src/lib/i18n/locales/ca-ES.json, frontend/src/lib/i18n/locales/af-ZA.json, frontend/src/lib/i18n/locales/ar-SA.json, frontend/src/lib/i18n/locales/en-US.json, frontend/src/lib/i18n/locales/cs-CZ.json.

  • Action: replace the placeholder with the consistent variable the UI provides (or make the UI pass the expected variable), and ensure all locale files include the same keys as en-US.json.

  • Parity check note: the sandbox run failed to produce a missing-keys report (process-substitution/comm error). Locally run:
    REF=frontend/src/lib/i18n/locales/en-US.json; for f in frontend/src/lib/i18n/locales/*.json; do echo "== $f"; jq -r 'keys[]' "$REF" | sort > /tmp/ref && jq -r 'keys[]' "$f" | sort > /tmp/f && comm -23 /tmp/ref /tmp/f | sed 's/^/ missing: /'; done

  • Also verify other occurrences (e.g., the other referenced lines 57–61).

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/nl-NL.json around lines 17 to 27,
continueUntrustedRedirectSubtitle still uses the placeholder {{cookieDomain};
replace that placeholder with the exact variable name used in en-US.json (open
frontend/src/lib/i18n/locales/en-US.json to confirm the canonical placeholder),
update the same key in all listed locale files to match that placeholder, and
run the provided parity check command to ensure all locale files contain the
same keys as en-US.json; if the UI does not provide the canonical variable,
update the UI to pass it or change the placeholder consistently across all
locales.

Comment on lines +26 to +27
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix placeholder mismatch: use {{rootDomain}} (prevents broken interpolation).

UI passes rootDomain; cookieDomain will render unsubstituted.

Apply:

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/nl-NL.json around lines 26 to 27, the
translation uses the placeholder {{cookieDomain}} but the UI provides
rootDomain, causing interpolation to fail; update the string to use
{{rootDomain}} instead (replace {{cookieDomain}} with {{rootDomain}}) so the
passed variable renders correctly in the subtitle.

Comment on lines +26 to +27
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix placeholder mismatch: use {{rootDomain}}.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/ro-RO.json around lines 26 to 27, the subtitle
uses the wrong placeholder {{cookieDomain}}; replace it with {{rootDomain}} so
the translation matches the code expectation and renders the correct domain
variable in the message.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 12

♻️ Duplicate comments (32)
frontend/src/lib/i18n/locales/it-IT.json (1)

26-27: Fix placeholder: cookieDomain → rootDomain

The component supplies { rootDomain }. Update the placeholder to avoid missing interpolation.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
frontend/src/lib/i18n/locales/he-IL.json (5)

17-19: Localize OAuth auto‑redirect strings to Hebrew (RTL).

Translate while preserving placeholders and HTML; keep "OAuth" in Latin.

Apply:

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "הפניה אוטומטית ל‑OAuth",
+    "loginOauthAutoRedirectSubtitle": "תועבר אוטומטית לספק ה‑OAuth שלך לצורך אימות.",
+    "loginOauthAutoRedirectButton": "הפנה כעת",

20-20: Translate “Continue” to Hebrew.

RTL-friendly, succinct.

-    "continueTitle": "Continue",
+    "continueTitle": "המשך",

23-23: Translate manual redirect CTA to Hebrew.

Keep semantics; no placeholders to preserve.

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "הפנה אותי ידנית",

57-61: Localize validation and domain‑warning block to Hebrew; preserve placeholders.

Maintain , {{appUrl}}, {{currentUrl}}; use Hebrew maqaf (U+05BE) before prefixed words.

-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "קלט לא תקין",
+    "domainWarningTitle": "דומיין לא תקין",
+    "domainWarningSubtitle": "מופע זה מוגדר לגישה מ־<code>{{appUrl}}</code>, אך נעשה שימוש ב־<code>{{currentUrl}}</code>. אם תמשיך, ייתכנו בעיות באימות.",
+    "ignoreTitle": "התעלם",
+    "goToCorrectDomainTitle": "עבור לדומיין הנכון"

26-27: Fix placeholder mismatch and localize untrusted‑redirect strings.

Component expects {{rootDomain}}; {{cookieDomain}} won’t render. Translate to Hebrew and keep and placeholder intact.

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "הפניה לא מהימנה",
+    "continueUntrustedRedirectSubtitle": "אתה מנסה להפנות לדומיין שאינו תואם את הדומיין שהוגדר (<code>{{rootDomain}}</code>). להמשיך?",
frontend/src/lib/i18n/locales/fi-FI.json (1)

26-27: Critical: placeholder name mismatch (cookieDomain vs rootDomain).

UI provides rootDomain; using cookieDomain will render the raw mustache. Replace to match runtime interpolation.

Apply:

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
frontend/src/lib/i18n/locales/cs-CZ.json (1)

10-10: Fix typo: “Přiliš” → “Příliš”.
Correct the missing accent.

-    "loginFailRateLimit": "Přiliš mnoho neúspěšných pokusů přihlášení. Zkuste to prosím později",
+    "loginFailRateLimit": "Příliš mnoho neúspěšných pokusů přihlášení. Zkuste to prosím později",
frontend/src/lib/i18n/locales/zh-TW.json (2)

23-23: Localize new redirect strings (currently English).

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "手動重新導向",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "不受信任的重新導向",
+    "continueUntrustedRedirectSubtitle": "您正嘗試重新導向到與已設定之網域(<code>{{rootDomain}}</code>)不相符的網域。確定要繼續嗎?",

Also applies to: 26-27


57-61: Localize validation and domain-warning strings.

-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "輸入無效",
+    "domainWarningTitle": "無效的網域",
+    "domainWarningSubtitle": "此執行個體設定為從 <code>{{appUrl}}</code> 存取,但目前使用的是 <code>{{currentUrl}}</code>。若繼續,可能會發生驗證問題。",
+    "ignoreTitle": "忽略",
+    "goToCorrectDomainTitle": "前往正確網域"
frontend/src/lib/i18n/locales/sv-SE.json (1)

23-23: Localize remaining English redirect/domain strings in sv-SE.

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Omdirigera mig manuellt",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Obetrodd omdirigering",
+    "continueUntrustedRedirectSubtitle": "Du försöker omdirigera till en domän som inte matchar din konfigurerade domän (<code>{{rootDomain}}</code>). Är du säker på att du vill fortsätta?",
-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Ogiltig inmatning",
+    "domainWarningTitle": "Ogiltig domän",
+    "domainWarningSubtitle": "Den här instansen är konfigurerad att nås från <code>{{appUrl}}</code>, men <code>{{currentUrl}}</code> används. Om du fortsätter kan autentiseringsproblem uppstå.",
+    "ignoreTitle": "Ignorera",
+    "goToCorrectDomainTitle": "Gå till rätt domän"

Also applies to: 26-27, 57-61

frontend/src/lib/i18n/locales/no-NO.json (1)

27-27: Critical: placeholder name mismatch. Switch to {{rootDomain}} if required by UI.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
frontend/src/lib/i18n/locales/el-GR.json (2)

23-23: Localize new untrusted-redirect strings.

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Χειροκίνητη ανακατεύθυνση",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Μη έμπιστη ανακατεύθυνση",
+    "continueUntrustedRedirectSubtitle": "Προσπαθείτε να ανακατευθύνετε σε τομέα που δεν ταιριάζει με τον ρυθμισμένο τομέα σας (<code>{{rootDomain}}</code>). Θέλετε σίγουρα να συνεχίσετε;",

Also applies to: 26-27


58-61: Localize domain-warning strings.

-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "domainWarningTitle": "Μη έγκυρο domain",
+    "domainWarningSubtitle": "Αυτή η εγκατάσταση έχει ρυθμιστεί για πρόσβαση από <code>{{appUrl}}</code>, αλλά χρησιμοποιείται το <code>{{currentUrl}}</code>. Αν συνεχίσετε, ενδέχεται να παρουσιαστούν προβλήματα με τον έλεγχο ταυτότητας.",
+    "ignoreTitle": "Παράβλεψη",
+    "goToCorrectDomainTitle": "Μετάβαση στο σωστό domain"
frontend/src/lib/i18n/locales/da-DK.json (1)

26-27: Placeholder mismatch already flagged previously — align to {{rootDomain}}.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
frontend/src/lib/i18n/locales/pt-PT.json (2)

26-27: Placeholder mismatch check (cookieDomain vs rootDomain)

Confirm what the UI passes and align placeholder accordingly.

- (<code>{{cookieDomain}}</code>)
+ (<code>{{rootDomain}}</code>)

57-61: Domain-warning block remains in English

Translate domainWarningTitle/domainWarningSubtitle/ignoreTitle/goToCorrectDomainTitle to pt-PT; preserve placeholders and tags.

Ensure safe escaping when rendering URLs inside HTML.

frontend/src/lib/i18n/locales/zh-CN.json (5)

23-23: Translate “Redirect me manually”

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "手动重定向",

26-27: Translate untrusted-redirect and fix placeholder if needed

If UI uses rootDomain, also switch the placeholder.

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "不受信任的重定向",
+    "continueUntrustedRedirectSubtitle": "您正在尝试重定向到与已配置的域名(<code>{{rootDomain}}</code>)不匹配的域名。确定要继续吗?",

Run:

#!/bin/bash
rg -nP --type ts --type tsx -C2 'continueUntrustedRedirectSubtitle|rootDomain|cookieDomain' frontend | sed 's/^/  /'

48-48: Wrong subject (“用户 {{ip}} …”)

Use “您的 IP 地址 …”:

-    "unauthorizedIpSubtitle": "用户 <code>{{ip}}</code> 无权访问资源 <code>{{resource}}</code>。",
+    "unauthorizedIpSubtitle": "您的 IP 地址 <code>{{ip}}</code> 无权访问资源 <code>{{resource}}</code>。",

55-57: Typos/wording in validation/help texts

-    "forgotPasswordMessage": "您可以通过更改 `USERS ` 环境变量重置您的密码。",
-    "fieldRequired": "必添字段",
-    "invalidInput": "无效的输入",
+    "forgotPasswordMessage": "您可以通过更改 `USERS` 环境变量重置您的密码。",
+    "fieldRequired": "必填字段",
+    "invalidInput": "输入无效",

58-61: Translate domain-warning block

-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "domainWarningTitle": "无效的域名",
+    "domainWarningSubtitle": "此实例被配置为从 <code>{{appUrl}}</code> 访问,但当前使用的是 <code>{{currentUrl}}</code>。如果继续,可能会遇到身份验证问题。",
+    "ignoreTitle": "忽略",
+    "goToCorrectDomainTitle": "前往正确的域名"

Ensure appUrl/currentUrl are escaped when rendered inside to avoid XSS.

frontend/src/lib/i18n/locales/ru-RU.json (2)

17-19: English strings in ru-RU — translate and align placeholders

Provide Russian translations and, if needed, switch cookieDomain → rootDomain to match the UI.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
-    "continueRedirectManually": "Redirect me manually",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "loginOauthAutoRedirectTitle": "Автоперенаправление OAuth",
+    "loginOauthAutoRedirectSubtitle": "Вы будете автоматически перенаправлены к вашему провайдеру OAuth для аутентификации.",
+    "loginOauthAutoRedirectButton": "Перейти сейчас",
+    "continueRedirectManually": "Перенаправить меня вручную",
+    "continueUntrustedRedirectTitle": "Недоверенное перенаправление",
+    "continueUntrustedRedirectSubtitle": "Вы пытаетесь перейти на домен, который не совпадает с настроенным доменом (<code>{{rootDomain}}</code>). Продолжить?",

Also applies to: 23-23, 26-27


58-61: Translate domain-warning block to Russian

-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "domainWarningTitle": "Неверный домен",
+    "domainWarningSubtitle": "Этот экземпляр настроен для доступа по адресу <code>{{appUrl}}</code>, но используется <code>{{currentUrl}}</code>. Если продолжите, возможны проблемы с аутентификацией.",
+    "ignoreTitle": "Игнорировать",
+    "goToCorrectDomainTitle": "Перейти на правильный домен"
frontend/src/lib/i18n/locales/fr-FR.json (2)

26-27: Translate untrusted-redirect strings to French

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Redirection non approuvée",
+    "continueUntrustedRedirectSubtitle": "Vous tentez de rediriger vers un domaine qui ne correspond pas à votre domaine configuré (<code>{{rootDomain}}</code>). Êtes‑vous sûr de vouloir continuer ?",

If the UI provides rootDomain, update the placeholder as shown.


58-61: Translate domain-warning block to French

-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "domainWarningTitle": "Domaine invalide",
+    "domainWarningSubtitle": "Cette instance est configurée pour être accessible depuis <code>{{appUrl}}</code>, mais <code>{{currentUrl}}</code> est utilisé. Si vous continuez, vous pourriez rencontrer des problèmes d’authentification.",
+    "ignoreTitle": "Ignorer",
+    "goToCorrectDomainTitle": "Aller au bon domaine"

Escape injected values when rendering inside .

frontend/src/lib/i18n/locales/ko-KR.json (1)

57-61: Translate validation + domain warning block.

-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "잘못된 입력",
+    "domainWarningTitle": "잘못된 도메인",
+    "domainWarningSubtitle": "이 인스턴스는 <code>{{appUrl}}</code>에서 접근하도록 구성되었지만 현재 <code>{{currentUrl}}</code>이(가) 사용되고 있습니다. 계속하면 인증에 문제가 발생할 수 있습니다.",
+    "ignoreTitle": "무시",
+    "goToCorrectDomainTitle": "올바른 도메인으로 이동"
frontend/src/lib/i18n/locales/es-ES.json (1)

57-61: Traducir bloque de validación/aviso de dominio.

-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Entrada no válida",
+    "domainWarningTitle": "Dominio no válido",
+    "domainWarningSubtitle": "Esta instancia está configurada para accederse desde <code>{{appUrl}}</code>, pero se está usando <code>{{currentUrl}}</code>. Si continúas, podrías tener problemas de autenticación.",
+    "ignoreTitle": "Ignorar",
+    "goToCorrectDomainTitle": "Ir al dominio correcto"
frontend/src/lib/i18n/locales/vi-VN.json (4)

20-20: Dịch continueTitle.

-    "continueTitle": "Continue",
+    "continueTitle": "Tiếp tục",

23-23: Dịch CTA chuyển hướng thủ công.

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Chuyển hướng thủ công",

26-27: Dịch cảnh báo chuyển hướng không đáng tin cậy.

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Chuyển hướng không đáng tin cậy",
+    "continueUntrustedRedirectSubtitle": "Bạn đang cố chuyển hướng đến miền không khớp với miền đã cấu hình (<code>{{cookieDomain}}</code>). Bạn có chắc muốn tiếp tục không?",

57-61: Dịch khối cảnh báo miền và xác thực.

-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Dữ liệu không hợp lệ",
+    "domainWarningTitle": "Miền không hợp lệ",
+    "domainWarningSubtitle": "Phiên bản này được cấu hình để truy cập từ <code>{{appUrl}}</code>, nhưng <code>{{currentUrl}}</code> đang được sử dụng. Nếu tiếp tục, bạn có thể gặp sự cố xác thực.",
+    "ignoreTitle": "Bỏ qua",
+    "goToCorrectDomainTitle": "Đi đến miền đúng"
🧹 Nitpick comments (17)
frontend/src/lib/i18n/locales/cs-CZ.json (1)

17-19: Localize remaining English strings to Czech (placeholders unchanged).
Provide consistent Czech copy.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "Automatické přesměrování OAuth",
+    "loginOauthAutoRedirectSubtitle": "Budete automaticky přesměrováni k vašemu poskytovateli OAuth k ověření.",
+    "loginOauthAutoRedirectButton": "Přesměrovat nyní",
-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Přesměrovat mě ručně",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Nedůvěryhodné přesměrování",
+    "continueUntrustedRedirectSubtitle": "Pokoušíte se přesměrovat na doménu, která neodpovídá vaší nakonfigurované doméně (<code>{{rootDomain}}</code>). Opravdu chcete pokračovat?",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "domainWarningTitle": "Neplatná doména",
+    "domainWarningSubtitle": "Tato instance je určena k přístupu z <code>{{appUrl}}</code>, ale používá se <code>{{currentUrl}}</code>. Pokud budete pokračovat, mohou nastat problémy s ověřením.",
+    "ignoreTitle": "Ignorovat",
+    "goToCorrectDomainTitle": "Přejít na správnou doménu"

Also applies to: 23-23, 26-27, 58-61

frontend/src/lib/i18n/locales/zh-TW.json (2)

17-19: Translate OAuth auto-redirect strings to Traditional Chinese.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "OAuth 自動重新導向",
+    "loginOauthAutoRedirectSubtitle": "系統將自動將您重新導向至 OAuth 供應商以進行驗證。",
+    "loginOauthAutoRedirectButton": "立即重新導向",

55-56: Localize remaining English copy.

-    "forgotPasswordMessage": "You can reset your password by changing the `USERS` environment variable.",
-    "fieldRequired": "This field is required",
+    "forgotPasswordMessage": "您可以透過修改 `USERS` 環境變數來重設密碼。",
+    "fieldRequired": "此欄位為必填",
frontend/src/lib/i18n/locales/af-ZA.json (1)

27-27: Placeholder mismatch risk: use {{rootDomain}} if that’s what the UI passes.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
frontend/src/lib/i18n/locales/sv-SE.json (1)

17-19: Translate OAuth auto-redirect strings to Swedish.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "Automatisk OAuth‑omdirigering",
+    "loginOauthAutoRedirectSubtitle": "Du kommer automatiskt att omdirigeras till din OAuth‑leverantör för att autentisera.",
+    "loginOauthAutoRedirectButton": "Omdirigera nu",
frontend/src/lib/i18n/locales/el-GR.json (1)

17-19: Translate OAuth auto-redirect strings to Greek.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "Αυτόματη ανακατεύθυνση OAuth",
+    "loginOauthAutoRedirectSubtitle": "Θα ανακατευθυνθείτε αυτόματα στον πάροχο OAuth για πιστοποίηση.",
+    "loginOauthAutoRedirectButton": "Ανακατεύθυνση τώρα",
frontend/src/lib/i18n/locales/da-DK.json (1)

17-19: Translate remaining English strings to Danish; keep placeholders intact.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "OAuth automatisk omdirigering",
+    "loginOauthAutoRedirectSubtitle": "Du bliver automatisk omdirigeret til din OAuth‑udbyder for at godkende.",
+    "loginOauthAutoRedirectButton": "Omdiriger nu",
-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Omdiriger mig manuelt",
-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Ikke‑betroet omdirigering",
+    "continueUntrustedRedirectSubtitle": "Du forsøger at omdirigere til et domæne, der ikke matcher dit konfigurerede domæne (<code>{{rootDomain}}</code>). Er du sikker på, at du vil fortsætte?",
-    "invalidInput": "Invalid input",
-    "domainWarningTitle": "Invalid Domain",
-    "domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "invalidInput": "Ugyldigt input",
+    "domainWarningTitle": "Ugyldigt domæne",
+    "domainWarningSubtitle": "Denne instans er konfigureret til at blive tilgået fra <code>{{appUrl}}</code>, men <code>{{currentUrl}}</code> bruges. Hvis du fortsætter, kan der opstå problemer med godkendelse.",
+    "ignoreTitle": "Ignorér",
+    "goToCorrectDomainTitle": "Gå til korrekt domæne"

Also applies to: 23-23, 26-27, 57-61

frontend/src/lib/i18n/locales/ro-RO.json (1)

27-27: Standardize placeholder to {{rootDomain}} if used by UI.

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
frontend/src/lib/i18n/locales/ko-KR.json (4)

17-19: Translate OAuth auto-redirect strings to Korean.

These remain English in the Korean locale.

Apply:

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "OAuth 자동 리디렉션",
+    "loginOauthAutoRedirectSubtitle": "인증을 위해 OAuth 제공업체로 자동으로 이동합니다.",
+    "loginOauthAutoRedirectButton": "지금 이동",

20-20: Localize continueTitle.

-    "continueTitle": "Continue",
+    "continueTitle": "계속",

23-23: Localize manual redirect CTA.

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "수동으로 이동하기",

26-27: Translate untrusted redirect title/subtitle.

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "신뢰할 수 없는 리디렉션",
+    "continueUntrustedRedirectSubtitle": "구성된 도메인(<code>{{cookieDomain}}</code>)과 일치하지 않는 도메인으로 리디렉션하려고 합니다. 계속하시겠습니까?",
frontend/src/lib/i18n/locales/en-US.json (1)

17-19: Copy polish: prefer sentence case + clearer CTAs (optional).

Align with sentence-style casing and explicit actions.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
+    "loginOauthAutoRedirectTitle": "OAuth auto-redirect",
-    "domainWarningTitle": "Invalid Domain",
+    "domainWarningTitle": "Invalid domain",
-    "ignoreTitle": "Ignore",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "ignoreTitle": "Ignore and continue",
+    "goToCorrectDomainTitle": "Go to the correct domain"

Also applies to: 58-61

frontend/src/lib/i18n/locales/es-ES.json (3)

17-19: Traducir cadenas de auto-redirección OAuth.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "Redirección automática de OAuth",
+    "loginOauthAutoRedirectSubtitle": "Se te redirigirá automáticamente a tu proveedor de OAuth para autenticarte.",
+    "loginOauthAutoRedirectButton": "Redirigir ahora",

23-23: Traducir CTA de redirección manual.

-    "continueRedirectManually": "Redirect me manually",
+    "continueRedirectManually": "Redirigirme manualmente",

26-27: Traducir aviso de redirección no confiable.

-    "continueUntrustedRedirectTitle": "Untrusted redirect",
-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectTitle": "Redirección no confiable",
+    "continueUntrustedRedirectSubtitle": "Estás intentando redirigir a un dominio que no coincide con tu dominio configurado (<code>{{cookieDomain}}</code>). ¿Seguro que quieres continuar?",
frontend/src/lib/i18n/locales/vi-VN.json (1)

17-19: Dịch các chuỗi tự động chuyển hướng OAuth.

-    "loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
-    "loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
-    "loginOauthAutoRedirectButton": "Redirect now",
+    "loginOauthAutoRedirectTitle": "Tự động chuyển hướng OAuth",
+    "loginOauthAutoRedirectSubtitle": "Bạn sẽ được tự động chuyển hướng đến nhà cung cấp OAuth để xác thực.",
+    "loginOauthAutoRedirectButton": "Chuyển hướng ngay",
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 81944e770e73674247fb8a955b497f53edd686b6 and 4e9342fa8b3939c2ced6afb27c414bcee4dfec25.

📒 Files selected for processing (30)
  • frontend/src/lib/i18n/locales/af-ZA.json (2 hunks)
  • frontend/src/lib/i18n/locales/ar-SA.json (2 hunks)
  • frontend/src/lib/i18n/locales/ca-ES.json (2 hunks)
  • frontend/src/lib/i18n/locales/cs-CZ.json (1 hunks)
  • frontend/src/lib/i18n/locales/da-DK.json (2 hunks)
  • frontend/src/lib/i18n/locales/de-DE.json (3 hunks)
  • frontend/src/lib/i18n/locales/el-GR.json (2 hunks)
  • frontend/src/lib/i18n/locales/en-US.json (2 hunks)
  • frontend/src/lib/i18n/locales/es-ES.json (2 hunks)
  • frontend/src/lib/i18n/locales/fi-FI.json (2 hunks)
  • frontend/src/lib/i18n/locales/fr-FR.json (2 hunks)
  • frontend/src/lib/i18n/locales/he-IL.json (2 hunks)
  • frontend/src/lib/i18n/locales/hu-HU.json (2 hunks)
  • frontend/src/lib/i18n/locales/it-IT.json (2 hunks)
  • frontend/src/lib/i18n/locales/ja-JP.json (2 hunks)
  • frontend/src/lib/i18n/locales/ko-KR.json (2 hunks)
  • frontend/src/lib/i18n/locales/nl-NL.json (2 hunks)
  • frontend/src/lib/i18n/locales/no-NO.json (2 hunks)
  • frontend/src/lib/i18n/locales/pl-PL.json (2 hunks)
  • frontend/src/lib/i18n/locales/pt-BR.json (2 hunks)
  • frontend/src/lib/i18n/locales/pt-PT.json (2 hunks)
  • frontend/src/lib/i18n/locales/ro-RO.json (2 hunks)
  • frontend/src/lib/i18n/locales/ru-RU.json (2 hunks)
  • frontend/src/lib/i18n/locales/sr-SP.json (2 hunks)
  • frontend/src/lib/i18n/locales/sv-SE.json (2 hunks)
  • frontend/src/lib/i18n/locales/tr-TR.json (2 hunks)
  • frontend/src/lib/i18n/locales/uk-UA.json (3 hunks)
  • frontend/src/lib/i18n/locales/vi-VN.json (2 hunks)
  • frontend/src/lib/i18n/locales/zh-CN.json (3 hunks)
  • frontend/src/lib/i18n/locales/zh-TW.json (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (7)
  • frontend/src/lib/i18n/locales/ca-ES.json
  • frontend/src/lib/i18n/locales/tr-TR.json
  • frontend/src/lib/i18n/locales/pl-PL.json
  • frontend/src/lib/i18n/locales/pt-BR.json
  • frontend/src/lib/i18n/locales/uk-UA.json
  • frontend/src/lib/i18n/locales/sr-SP.json
  • frontend/src/lib/i18n/locales/de-DE.json
🔇 Additional comments (23)
frontend/src/lib/i18n/locales/it-IT.json (2)

17-20: OAuth auto‑redirect keys added — LGTM

Strings look consistent with existing style. No functional concerns.


23-23: Manual redirect label — LGTM

Key naming and copy align with the new flow.

frontend/src/lib/i18n/locales/fi-FI.json (5)

17-19: LGTM: OAuth auto‑redirect strings added coherently.

Keys and copy are clear and consistent with neighboring OAuth texts.


23-23: LGTM: added manual redirect CTA.

Matches the new flow; key name is intuitive.


57-57: LGTM: invalid input copy.

No issues; consistent with other locales.


20-20: Confirm whether continueTitle is still used

Automated search failed (ripgrep returned "No files were searched" / unrecognized file type); cannot confirm usage. Location: frontend/src/lib/i18n/locales/fi-FI.json — line 20: "continueTitle": "Continue",. Run locally: git grep -n 'continueTitle' || grep -R --exclude-dir=node_modules --exclude-dir=dist -n 'continueTitle' .; remove the key if unused.


58-61: Minor: copy polish + verify placeholders (frontend/src/lib/i18n/locales/fi-FI.json — lines 58–61)

File contains appUrl/currentUrl placeholders — confirm the UI passes these exact keys and that interpolation is HTML‑escaped or rendered safely (ripgrep did not locate usage).

-    "domainWarningTitle": "Invalid Domain",
+    "domainWarningTitle": "Invalid domain",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "goToCorrectDomainTitle": "Go to the correct domain"
frontend/src/lib/i18n/locales/af-ZA.json (1)

17-19: af-ZA values are English — confirm intent.
If af-ZA is meant to be Afrikaans, please localize; otherwise consider using en-ZA.

Also applies to: 23-23, 26-27, 57-61

frontend/src/lib/i18n/locales/no-NO.json (1)

17-19: no-NO content is English — confirm if this is intended fallback.

Also applies to: 23-23, 57-61

frontend/src/lib/i18n/locales/ro-RO.json (1)

17-19: ro-RO content is English — confirm fallback vs. pending localization.

Also applies to: 23-23, 57-61

frontend/src/lib/i18n/locales/zh-TW.json (1)

27-27: Confirm which placeholder the component expects: {{cookieDomain}} or {{rootDomain}}.

  • All locale files (frontend/src/lib/i18n/locales/*.json — e.g. zh-TW.json:27, en-US.json:27) use {{cookieDomain}} for continueUntrustedRedirectSubtitle.
  • No code was found that passes cookieDomain or rootDomain into the translation, so runtime expectation is unverified.
  • Action: if the component expects {{rootDomain}} update all locale strings; otherwise ensure the component passes cookieDomain when rendering this translation.
frontend/src/lib/i18n/locales/el-GR.json (1)

27-27: Placeholder check: cookieDomain vs rootDomain.

All locale files under frontend/src/lib/i18n/locales use {{cookieDomain}} (e.g., frontend/src/lib/i18n/locales/el-GR.json line 27). Search found no occurrences of cookieDomain or rootDomain in the codebase, so I cannot confirm which interpolation key the renderer provides at runtime — verify whether the code/server passes rootDomain or cookieDomain and either (A) update the locales to {{rootDomain}} or (B) change the renderer to pass cookieDomain for consistency.

frontend/src/lib/i18n/locales/da-DK.json (1)

26-27: Verify which placeholder the component expects.
All locale files use {{cookieDomain}} for continueUntrustedRedirectSubtitle (e.g. frontend/src/lib/i18n/locales/da-DK.json:26-27). Search found no usages of the translation key or any code passing cookieDomain/rootDomain — confirm which variable the component supplies and align the locales or the component accordingly.

frontend/src/lib/i18n/locales/sv-SE.json (1)

27-27: Confirm placeholder alignment (cookieDomain vs rootDomain).
All locale files use {{cookieDomain}} for continueUntrustedRedirectSubtitle (e.g. frontend/src/lib/i18n/locales/sv-SE.json:27). No code reference was found that injects either cookieDomain or rootDomain into this key — only the locale files reference it. Verify which variable the UI supplies and update the translation placeholder or the rendering call accordingly.

frontend/src/lib/i18n/locales/ar-SA.json (1)

27-27: Placeholder consistency: cookieDomain vs rootDomain

frontend/src/lib/i18n/locales/ar-SA.json (line 27) uses {{cookieDomain}} — confirm which placeholder the UI supplies. If the UI provides rootDomain, update the JSON as shown:

-    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
+    "continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{rootDomain}}</code>). Are you sure you want to continue?",
frontend/src/lib/i18n/locales/hu-HU.json (1)

26-27: Confirm interpolation key: cookieDomain vs rootDomain

Locale strings use {{cookieDomain}} for continueUntrustedRedirectSubtitle (frontend/src/lib/i18n/locales/*.json); repo search found no references to cookieDomain or rootDomain in code. Actions:

  • Verify which variable the UI supplies. If the UI supplies rootDomain, replace {{cookieDomain}} → {{rootDomain}} in continueUntrustedRedirectSubtitle across frontend/src/lib/i18n/locales/*.json.
  • If the UI supplies cookieDomain, no locale change required.
  • If this string is rendered as HTML, ensure the interpolated value is HTML-escaped to prevent XSS.
frontend/src/lib/i18n/locales/ja-JP.json (1)

27-27: Confirm placeholder name

All locale files use {{cookieDomain}} for continueUntrustedRedirectSubtitle (frontend/src/lib/i18n/locales/* — line 27). I could not find any code passing either cookieDomain or rootDomain to the translator; if the UI actually supplies rootDomain, replace {{cookieDomain}} → {{rootDomain}} across the locale files, otherwise keep {{cookieDomain}}.

frontend/src/lib/i18n/locales/nl-NL.json (1)

27-27: Do not change to {{rootDomain}} — the component passes domain, so use {{domain}}

ContinuePage (frontend/src/pages/continue-page.tsx) calls Trans with i18nKey="untrustedRedirectSubtitle" and values={{ domain }}; update nl-NL.json to replace {{cookieDomain}} with {{domain}}:

- (<code>{{cookieDomain}}</code>)
+ (<code>{{domain}}</code>)

Likely an incorrect or invalid review comment.

frontend/src/lib/i18n/locales/en-US.json (3)

17-27: Placeholders look consistent.

cookieDomain for untrusted redirect; appUrl/currentUrl for domain warning. No changes requested.

If the app actually passes rootDomain, adjust subtitle accordingly.

Also applies to: 58-59


20-20: PR summary incorrect — continueTitle still present and referenced.

Key remains: frontend/src/lib/i18n/locales/en-US.json:20.
References: frontend/src/pages/continue-page.tsx:77,110,123,131; frontend/src/pages/totp-page.tsx:70.
Either remove the key and all t("continueTitle") usages, or update the PR summary to stop claiming it was removed.


1-62: Locale key parity — sync locales with en-US and remove deprecated keys

All locale files under frontend/src/lib/i18n/locales/ must include these new keys (from en-US): loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle, loginOauthAutoRedirectButton, continueRedirectManually, continueUntrustedRedirectTitle, continueUntrustedRedirectSubtitle, domainWarningTitle, domainWarningSubtitle, ignoreTitle, goToCorrectDomainTitle. Remove these deprecated keys if present: continueInvalidRedirectTitle, continueInvalidRedirectSubtitle, untrustedRedirectTitle, untrustedRedirectSubtitle, continueSubtitle. Automated scan returned no output — manual verification required; re-run the jq/fd parity check from the original comment.

frontend/src/lib/i18n/locales/ko-KR.json (1)

26-27: Verify translation interpolation keys are passed when rendering these messages

Locales include {{cookieDomain}} (continueUntrustedRedirectSubtitle — frontend/src/lib/i18n/locales/ko-KR.json:26–27) and {{appUrl}}/{{currentUrl}} (domainWarningSubtitle — line 59); repository search returned only locale files and no call sites. Ensure i18n calls supply the interpolation object, e.g. t('continueUntrustedRedirectSubtitle', { cookieDomain }) and t('domainWarningSubtitle', { appUrl, currentUrl }).

frontend/src/lib/i18n/locales/vi-VN.json (1)

26-27: Confirm which domain placeholder the component supplies (cookieDomain vs rootDomain).
Translations use {{cookieDomain}} in frontend/src/lib/i18n/locales/* (continueUntrustedRedirectSubtitle). If the component passes rootDomain instead of cookieDomain, update the translations to {{rootDomain}} or change the component to pass cookieDomain.

Comment on lines +17 to +20
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
"continueTitle": "متابعة",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Untranslated English strings in ar-SA

These entries remain in English: OAuth auto-redirect block (17–19), continueTitle (20), manual/untrusted redirect (23, 26–27). Please translate to Arabic for consistency.

Also applies to: 23-23, 26-27

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/ar-SA.json around lines 17 to 20 (and also
update lines 23, 26–27), several strings are still in English: the OAuth
auto-redirect block (loginOauthAutoRedirectTitle,
loginOauthAutoRedirectSubtitle, loginOauthAutoRedirectButton), continueTitle,
and the manual/untrusted redirect entries at the noted lines; replace each
English value with an accurate Arabic translation (keeping JSON string quoting
and escaping intact) so all keys have Arabic text consistent with locale, and
verify punctuation/diacritics match project style.

Comment on lines 57 to 61
"invalidInput": "Invalid input",
"domainWarningTitle": "Invalid Domain",
"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
"ignoreTitle": "Ignore",
"goToCorrectDomainTitle": "Go to correct domain"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Domain-warning block still in English

Translate domainWarningTitle/domainWarningSubtitle/ignoreTitle/goToCorrectDomainTitle to Arabic. Keep placeholders ({{appUrl}}, {{currentUrl}}) intact.

Ensure any values injected into code tags are safely escaped on render.

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/ar-SA.json around lines 57 to 61 the domain
warning strings are still in English; translate domainWarningTitle,
domainWarningSubtitle, ignoreTitle, and goToCorrectDomainTitle into Arabic while
keeping the placeholders <code>{{appUrl}}</code> and <code>{{currentUrl}}</code>
exactly as-is; update the JSON values with the Arabic translations and ensure
the frontend rendering escapes any injected values placed inside the <code> tags
to prevent HTML injection.

"continueInsecureRedirectTitle": "Nezabezpečené přesměrování",
"continueInsecureRedirectSubtitle": "Pokoušíte se přesměrovat z <code>https</code> na <code>http</code>, které není bezpečné. Opravdu chcete pokračovat?",
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

🧩 Analysis chain

Verify placeholder name: cookieDomain vs rootDomain.
Component code often expects {{rootDomain}}; ensure this matches runtime props.


🏁 Script executed:

#!/bin/bash
# Check which placeholder the continue page uses
rg -nP -C2 --type tsx '(continueUntrustedRedirectSubtitle|untrustedRedirectSubtitle|rootDomain|cookieDomain)'

Length of output: 27


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Searching for translation keys and related component names..."
rg -n -C3 'continueUntrustedRedirectSubtitle|untrustedRedirectSubtitle|continueUntrustedRedirect|UntrustedRedirect' || true

echo
echo "2) Searching for cookieDomain/rootDomain identifiers in code..."
rg -n -C3 '\bcookieDomain\b|\brootDomain\b' || true

echo
echo "3) Searching for direct i18n usages of the key (t(...), i18n.t(...), <Trans id=...>)..."
rg -n -C3 "t\\(\\s*['\"]continueUntrustedRedirectSubtitle['\"]" || true
rg -n -C3 "i18n\\.t\\(\\s*['\"]continueUntrustedRedirectSubtitle['\"]" || true
rg -n -C3 "<Trans[^>]*id=.?['\"]continueUntrustedRedirectSubtitle['\"]" || true

echo
echo "4) Show frontend/src/lib/i18n/locales/cs-CZ.json (first 240 lines) if present..."
if [ -f frontend/src/lib/i18n/locales/cs-CZ.json ]; then
  sed -n '1,240p' frontend/src/lib/i18n/locales/cs-CZ.json
else
  echo "frontend/src/lib/i18n/locales/cs-CZ.json not found"
fi

Length of output: 64188


🏁 Script executed:

#!/bin/bash
set -euo pipefail
echo "=== continue-page.tsx (first 240 lines) ==="
if [ -f frontend/src/pages/continue-page.tsx ]; then
  sed -n '1,240p' frontend/src/pages/continue-page.tsx
else
  echo "File not found: frontend/src/pages/continue-page.tsx"
fi

Length of output: 3824


Align translation key & placeholder ('domain' vs 'cookieDomain')

  • frontend/src/pages/continue-page.tsx (lines 62–65) calls Trans i18nKey="untrustedRedirectSubtitle" with values={{ domain }}.
  • Many locale files (e.g. frontend/src/lib/i18n/locales/cs-CZ.json line 27) define continueUntrustedRedirectSubtitle and use {{cookieDomain}} — key and placeholder names are inconsistent.
  • Fix: make keys and placeholders consistent — either update all locale entries to use {{domain}} and the same key ("untrustedRedirectSubtitle"), or change the component to pass values={{ cookieDomain: domain }} and/or use "continueUntrustedRedirectSubtitle" consistently across locales.
🤖 Prompt for AI Agents
frontend/src/lib/i18n/locales/cs-CZ.json around line 27: the locale defines
"continueUntrustedRedirectSubtitle" and uses placeholder {{cookieDomain}} but
the component expects key "untrustedRedirectSubtitle" and placeholder
{{domain}}; rename the JSON key to "untrustedRedirectSubtitle" and update the
placeholder from {{cookieDomain}} to {{domain}} so the i18n key and value names
match what frontend/src/pages/continue-page.tsx passes.

Comment on lines +17 to +27
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
"continueTitle": "Continue",
"continueRedirectingTitle": "Redirecting...",
"continueRedirectingSubtitle": "You should be redirected to the app soon",
"continueInvalidRedirectTitle": "Invalid redirect",
"continueInvalidRedirectSubtitle": "The redirect URL is invalid",
"continueRedirectManually": "Redirect me manually",
"continueInsecureRedirectTitle": "Insecure redirect",
"continueInsecureRedirectSubtitle": "You are trying to redirect from <code>https</code> to <code>http</code> which is not secure. Are you sure you want to continue?",
"continueTitle": "Continue",
"continueSubtitle": "Click the button to continue to your app.",
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Quick verification: JSON validity + placeholder consistency sweep.

Run to validate JSON and ensure no lingering {{cookieDomain}} in locales; also surface untranslated English in he-IL for the touched keys.

Also applies to: 57-61


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) JSON validity
jq . frontend/src/lib/i18n/locales/he-IL.json >/dev/null || { echo "Invalid JSON in he-IL.json"; exit 1; }

# 2) Placeholder mismatch across locales (should be rootDomain)
rg -n "cookieDomain" frontend/src/lib/i18n/locales || true

# 3) Check he-IL for English leftovers for changed keys
rg -n -C0 -e '"loginOauthAutoRedirectTitle":\s*"[^"]*[A-Za-z]' \
            -e '"loginOauthAutoRedirectSubtitle":\s*"[^"]*[A-Za-z]' \
            -e '"loginOauthAutoRedirectButton":\s*"[^"]*[A-Za-z]' \
            -e '"continueTitle":\s*"[^"]*[A-Za-z]' \
            -e '"continueRedirectManually":\s*"[^"]*[A-Za-z]' \
            -e '"continueUntrustedRedirectTitle":\s*"[^"]*[A-Za-z]' \
            -e '"continueUntrustedRedirectSubtitle":\s*"[^"]*[A-Za-z]' \
            -e '"invalidInput":\s*"[^"]*[A-Za-z]' \
            -e '"domainWarningTitle":\s*"[^"]*[A-Za-z]' \
            -e '"domainWarningSubtitle":\s*"[^"]*[A-Za-z]' \
            -e '"ignoreTitle":\s*"[^"]*[A-Za-z]' \
            -e '"goToCorrectDomainTitle":\s*"[^"]*[A-Za-z]' \
            frontend/src/lib/i18n/locales/he-IL.json || true

Length of output: 8123


Action required — translate he-IL keys & normalize {{cookieDomain}} placeholder across locales

  • JSON valid.
  • Translate the English entries in frontend/src/lib/i18n/locales/he-IL.json: loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle, loginOauthAutoRedirectButton, continueTitle, continueRedirectManually, continueUntrustedRedirectTitle, continueUntrustedRedirectSubtitle, invalidInput, domainWarningTitle, domainWarningSubtitle, ignoreTitle, goToCorrectDomainTitle.
  • Normalize placeholder usage: {{cookieDomain}} is present across many locale files (frontend/src/lib/i18n/locales/*.json — e.g., en-US.json, zh-TW.json, zh-CN.json, vi-VN.json, etc.). Replace with the canonical token expected by the app (if that is {{rootDomain}}) or make all locales use the same placeholder.
  • Verify domainWarningSubtitle placeholders ({{appUrl}}, {{currentUrl}}) are correct and consistent.
🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/he-IL.json around lines 17-27, several English
strings must be translated to Hebrew and placeholders normalized: translate the
keys loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle,
loginOauthAutoRedirectButton, continueTitle, continueRedirectManually,
continueUntrustedRedirectTitle, continueUntrustedRedirectSubtitle and also add
translations for invalidInput, domainWarningTitle, domainWarningSubtitle,
ignoreTitle, goToCorrectDomainTitle; ensure the file remains valid JSON (proper
commas/quoting); normalize the domain placeholder across all locale files to the
canonical token {{rootDomain}} (replace any {{cookieDomain}} occurrences), and
verify domainWarningSubtitle uses the consistent placeholders {{appUrl}} and
{{currentUrl}} (adjust if any locale deviates).

Comment on lines +17 to +19
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

English strings in Hungarian locale — translate before release

These user-facing entries remain in English and will look inconsistent in hu-HU:

  • loginOauthAutoRedirect* (Lines 17–19)
  • continueRedirectManually (Line 23)
  • domainWarning* and actions (Lines 58–61)

Please provide Hungarian translations or explicitly confirm that English fallbacks are acceptable for this release.

Run this to list untranslated English values across locales for the newly added keys:

Also applies to: 23-23, 58-61


🏁 Script executed:

#!/bin/bash
set -euo pipefail
cd frontend/src/lib/i18n/locales
keys='loginOauthAutoRedirectTitle loginOauthAutoRedirectSubtitle loginOauthAutoRedirectButton continueRedirectManually continueUntrustedRedirectTitle continueUntrustedRedirectSubtitle domainWarningTitle domainWarningSubtitle ignoreTitle goToCorrectDomainTitle'
for f in *.json; do
  echo "-- $f"
  for k in $keys; do
    v=$(jq -r --arg k "$k" '.[$k] // empty' "$f")
    [[ -n "$v" ]] && grep -qP '^[\x00-\x7F]+$' <<<"$v" && echo "  untranslated: $k => $v"
  done
done

Length of output: 29500


Translate newly added OAuth/domain strings in all locales

  • The following user-facing keys are still English across many locale files (fix at least frontend/src/lib/i18n/locales/hu-HU.json): loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle, loginOauthAutoRedirectButton, continueRedirectManually, continueUntrustedRedirectTitle, continueUntrustedRedirectSubtitle, domainWarningTitle, domainWarningSubtitle, ignoreTitle, goToCorrectDomainTitle.
  • Action: add Hungarian translations in hu-HU.json and corresponding translations for other locales, or explicitly confirm English fallbacks are acceptable for this release.
🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/hu-HU.json around lines 17–19, several newly
added OAuth/domain keys are still in English; add Hungarian translations for
loginOauthAutoRedirectTitle, loginOauthAutoRedirectSubtitle,
loginOauthAutoRedirectButton, continueRedirectManually,
continueUntrustedRedirectTitle, continueUntrustedRedirectSubtitle,
domainWarningTitle, domainWarningSubtitle, ignoreTitle, and
goToCorrectDomainTitle in this file (preserve JSON quoting/commas and UTF-8
encoding); then either update the same keys across other locale files with
appropriate translations or add a comment/PR note confirming that English
fallbacks are acceptable for this release and run any i18n lint/tests to ensure
no malformed JSON or missing keys remain.

Comment on lines +57 to +61
"invalidInput": "Invalid input",
"domainWarningTitle": "Invalid Domain",
"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
"ignoreTitle": "Ignore",
"goToCorrectDomainTitle": "Go to correct domain"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Domain-warning block remains English

Translate domainWarning* and action labels. Ensure {{appUrl}}/{{currentUrl}} are escaped if rendered as HTML.

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/ja-JP.json around lines 57 to 61, the domain
warning entries (domainWarningTitle, domainWarningSubtitle, ignoreTitle,
goToCorrectDomainTitle) are still in English; replace their values with
appropriate Japanese translations and keep the same keys, and ensure the
template placeholders {{appUrl}} and {{currentUrl}} are treated as escaped text
when rendered as HTML (i.e., render them safely or escape/encode them in the
view layer rather than injecting raw HTML).

Comment on lines +17 to +20
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
"continueTitle": "Ga verder",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

English strings left in Dutch locale

OAuth auto-redirect (17–19), continueTitle (20), manual/untrusted redirect (23, 26–27) are English. Please translate to NL or confirm fallback policy.

Also applies to: 23-23, 26-27

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/nl-NL.json around lines 17–20 (and also check
lines 23 and 26–27), several values are still in English (OAuth auto-redirect
titles/subtitle/button, continueTitle, and the manual/untrusted redirect
strings); replace these English strings with proper Dutch translations (or if
your app relies on fallback behavior, explicitly confirm that fallback is
acceptable and document that decision), then run a quick grep/scan of the NL
locale file to ensure no other English strings remain and update any
corresponding keys in the app if wording/length changes affect UI.

Comment on lines +57 to +61
"invalidInput": "Invalid input",
"domainWarningTitle": "Invalid Domain",
"domainWarningSubtitle": "This instance is configured to be accessed from <code>{{appUrl}}</code>, but <code>{{currentUrl}}</code> is being used. If you proceed, you may encounter issues with authentication.",
"ignoreTitle": "Ignore",
"goToCorrectDomainTitle": "Go to correct domain"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Translate domain-warning block to Dutch

Provide Dutch translations; keep placeholders and tags unchanged.

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/nl-NL.json around lines 57 to 61, the
domain-warning block is still in English; translate the following keys to Dutch
while leaving the {{appUrl}} and {{currentUrl}} placeholders and the <code> tags
exactly as they are: "invalidInput", "domainWarningTitle",
"domainWarningSubtitle", "ignoreTitle", and "goToCorrectDomainTitle". Replace
the English strings with appropriate Dutch equivalents that preserve punctuation
and placeholders (e.g., "Invalid input" -> "Ongeldige invoer", "Invalid Domain"
-> "Ongeldig domein", and a Dutch sentence for the subtitle that keeps
<code>{{appUrl}}</code> and <code>{{currentUrl}}</code> intact, plus
translations for "Ignore" and "Go to correct domain").

Comment on lines +17 to +20
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
"continueTitle": "Continue",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Untranslated English strings in pt-PT

Translate OAuth auto-redirect (17–19), continueTitle (20), manual/untrusted redirect (23, 26–27).

Also applies to: 23-23, 26-27

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/pt-PT.json around lines 17–20 and also update
lines 23 and 26–27, several values remain in English; replace the English values
for "loginOauthAutoRedirectTitle", "loginOauthAutoRedirectSubtitle",
"loginOauthAutoRedirectButton", "continueTitle" and the manual/untrusted
redirect keys at the referenced lines with proper European Portuguese
translations, preserving the JSON keys and punctuation/escaping, ensuring the
file remains valid JSON (use double quotes and commas as needed).

Comment on lines +17 to +27
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
"continueTitle": "Continue",
"continueRedirectingTitle": "Redirecting...",
"continueRedirectingSubtitle": "You should be redirected to the app soon",
"continueInvalidRedirectTitle": "Invalid redirect",
"continueInvalidRedirectSubtitle": "The redirect URL is invalid",
"continueRedirectManually": "Redirect me manually",
"continueInsecureRedirectTitle": "Insecure redirect",
"continueInsecureRedirectSubtitle": "You are trying to redirect from <code>https</code> to <code>http</code> which is not secure. Are you sure you want to continue?",
"continueTitle": "Continue",
"continueSubtitle": "Click the button to continue to your app.",
"continueUntrustedRedirectTitle": "Untrusted redirect",
"continueUntrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{cookieDomain}}</code>). Are you sure you want to continue?",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

🧩 Analysis chain

Check code references for renamed keys to avoid missing translations at runtime.


🏁 Script executed:

#!/bin/bash
# Find legacy key usage outside locale files
rg -nP '\b(continueInvalidRedirectTitle|continueInvalidRedirectSubtitle|untrustedRedirectTitle|untrustedRedirectSubtitle|continueSubtitle)\b' -g '!**/locales/**' -C2

Length of output: 148


🏁 Script executed:

#!/bin/bash
set -euo pipefail
echo "Searching for legacy keys (excluding locales)..."
rg -nP '\b(continueInvalidRedirectTitle|continueInvalidRedirectSubtitle|untrustedRedirectTitle|untrustedRedirectSubtitle|continueSubtitle)\b' -S -g '**/*' -g '!frontend/src/lib/i18n/locales/**' -C2 || true

echo
echo "Searching for new keys (excluding locales)..."
rg -nP '\b(loginOauthAutoRedirectTitle|loginOauthAutoRedirectSubtitle|loginOauthAutoRedirectButton|continueTitle|continueRedirectingTitle|continueRedirectingSubtitle|continueRedirectManually|continueInsecureRedirectTitle|continueInsecureRedirectSubtitle|continueUntrustedRedirectTitle|continueUntrustedRedirectSubtitle)\b' -S -g '**/*' -g '!frontend/src/lib/i18n/locales/**' -C2 || true

Length of output: 60681


Align i18n keys — fix missing/renamed keys in ro-RO.json

  • frontend/src/pages/continue-page.tsx references "untrustedRedirectTitle" / i18nKey="untrustedRedirectSubtitle" and "continueSubtitle" (lines 58, 62, 124).
  • frontend/src/lib/i18n/locales/ro-RO.json defines "continueUntrustedRedirectTitle"/"continueUntrustedRedirectSubtitle" (lines 26–27) and does not contain "continueSubtitle" — add the missing "continueSubtitle" and/or update the code to use the "continueUntrustedRedirect*" keys.
  • Ensure all locales use the same key names (some locales have "untrustedRedirect*" while others use "continueUntrustedRedirect*").
🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/ro-RO.json around lines 17 to 27, the locale
uses continueUntrustedRedirectTitle/continueUntrustedRedirectSubtitle and is
missing continueSubtitle while the code (frontend/src/pages/continue-page.tsx)
expects untrustedRedirectTitle, untrustedRedirectSubtitle and continueSubtitle;
update ro-RO.json to add keys "untrustedRedirectTitle" and
"untrustedRedirectSubtitle" with the same Romanian strings as the existing
continueUntrustedRedirect* entries and also add "continueSubtitle" with the
appropriate translated text (or alternatively rename the keys across all locale
files to consistently use continueUntrustedRedirect*); ensure key names match
the keys used in continue-page.tsx so all locales are consistent.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
frontend/src/lib/i18n/locales/el-GR.json (1)

23-23: Resolved: manual redirect now localized.
Matches tone/style of the locale. Thanks for fixing.

🧹 Nitpick comments (2)
frontend/src/lib/i18n/locales/el-GR.json (2)

57-57: Minor phrasing nit: “invalidInput”.
Optional: consider “Μη έγκυρη εισαγωγή” or “Μη έγκυρη τιμή” which are more common in UI copy.

Example:

-    "invalidInput": "Μη έγκυρη καταχώρηση",
+    "invalidInput": "Μη έγκυρη εισαγωγή",

58-61: Localized domain‑warning copy looks good; consider terminology consistency.
You mix “domain” (English) elsewhere; optionally switch to “τομέας” or keep “domain” uniformly across related strings. Also pick one for “authentication”: “αυθεντικοποίηση” vs “ταυτοποίηση”.

Optional diffs for consistency:

-    "domainWarningTitle": "Μη έγκυρο domain",
-    "domainWarningSubtitle": "Αυτή η εφαρμογή έχει ρυθμιστεί για πρόσβαση από <code>{{appUrl}}</code>, αλλά <code>{{currentUrl}}</code> χρησιμοποιείται. Αν συνεχίσετε, μπορεί να αντιμετωπίσετε προβλήματα με την ταυτοποίηση.",
-    "goToCorrectDomainTitle": "Μεταβείτε στο σωστό domain"
+    "domainWarningTitle": "Μη έγκυρος τομέας",
+    "domainWarningSubtitle": "Αυτή η εφαρμογή έχει ρυθμιστεί για πρόσβαση από <code>{{appUrl}}</code>, αλλά χρησιμοποιείται το <code>{{currentUrl}}</code>. Αν συνεχίσετε, μπορεί να αντιμετωπίσετε προβλήματα με την αυθεντικοποίηση.",
+    "goToCorrectDomainTitle": "Μετάβαση στον σωστό τομέα"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4e9342f and ea24aaa.

📒 Files selected for processing (2)
  • frontend/src/lib/i18n/locales/el-GR.json (2 hunks)
  • frontend/src/lib/i18n/locales/pl-PL.json (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/src/lib/i18n/locales/pl-PL.json
🔇 Additional comments (3)
frontend/src/lib/i18n/locales/el-GR.json (3)

17-19: LGTM: OAuth auto‑redirect strings read well in Greek.
Translations and capitalization look correct.


26-27: Confirm component provides cookieDomain (not rootDomain)

  • All locale JSON files under frontend/src/lib/i18n/locales use {{cookieDomain}} (e.g. frontend/src/lib/i18n/locales/el-GR.json:26-27).
  • TS/TSX renderer wasn't located by the search; verify the consuming component passes cookieDomain for this subtitle, or update locales to use {{rootDomain}} to match the variable actually provided.

20-20: Keep "continueTitle" — do not remove.

Found usages: frontend/src/pages/continue-page.tsx — {t("continueTitle")} (lines 77, 110, 123, 131); frontend/src/pages/totp-page.tsx — {t("continueTitle")} (line 70). Key exists in locales/* including frontend/src/lib/i18n/locales/el-GR.json (line 20).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant