Skip to content

New Crowdin updates#631

Merged
steveiliop56 merged 77 commits into
mainfrom
l10n_main
Feb 7, 2026
Merged

New Crowdin updates#631
steveiliop56 merged 77 commits into
mainfrom
l10n_main

Conversation

@steveiliop56
Copy link
Copy Markdown
Member

@steveiliop56 steveiliop56 commented Feb 7, 2026

Summary by CodeRabbit

  • New Features
    • Added comprehensive authorization flow UI with loading, success, and error states across 33 languages.
    • Implemented OpenID Connect and OAuth scope descriptions (email, profile, groups) to enhance user consent screens.
    • Expanded error messaging with detailed contextual information for improved debugging and user guidance.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Feb 7, 2026

📝 Walkthrough

Walkthrough

This pull request adds comprehensive internationalization support for authorization flows and OpenID Connect scopes across 32 language locales. It introduces 19 new translation keys including error context messages, authorization UI strings (titles, subtitles, loading/success/error states), and OpenID/OAuth scope descriptions. Additionally, some locales receive updates to existing English strings translated into their native languages, while a few undergo key reorganization.

Changes

Cohort / File(s) Summary
Consistent locale additions
frontend/src/lib/i18n/locales/af-ZA.json, ar-SA.json, ca-ES.json, da-DK.json, el-GR.json, en-US.json, es-ES.json, fi-FI.json, fr-FR.json, he-IL.json, ja-JP.json, ko-KR.json, pl-PL.json, pt-BR.json, ro-RO.json, ru-RU.json, sr-SP.json, sv-SE.json, zh-CN.json, zh-TW.json
Add new authorization and scope-related i18n keys (errorSubtitleInfo, authorizeTitle, authorizeCardTitle, authorizeSubtitle, authorizeSubtitleOAuth, authorizeLoadingTitle, authorizeLoadingSubtitle, authorizeSuccessTitle, authorizeSuccessSubtitle, authorizeErrorClientInfo, authorizeErrorMissingParams, openidScopeName/Description, emailScopeName/Description, profileScopeName/Description, groupsScopeName/Description) with English or native-language values.
Locales with translation updates
frontend/src/lib/i18n/locales/cs-CZ.json, de-DE.json, hu-HU.json, it-IT.json, nl-NL.json, pt-PT.json, tr-TR.json, uk-UA.json
Add new authorization and scope keys alongside translations of existing English UI strings (login, OAuth, redirects, error handling, unauthorized messages) into native languages; some reorganize key placement.
Locale with key removal
frontend/src/lib/i18n/locales/no-NO.json, vi-VN.json
Add new authorization and scope keys while removing or replacing the goToCorrectDomainTitle key.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

  • feat: invalid domain warning #332 — Introduces domain-warning and correction UI elements that use the errorSubtitleInfo and domain-related i18n keys now being added across locales.
  • New Crowdin updates #116 — Modifies the same i18n locale files (e.g., af-ZA.json) to add authorization and unauthorized-related translation keys.
  • New Crowdin updates #450 — Updates OAuth/authorization translations in locale files like zh-TW.json, overlapping with this PR's scope key additions.

Poem

🐰 A rabbit hops through thirty locales with glee,
Adding authorize prompts for all to see.
Scopes and errors now speak each tongue,
From OpenID calls to OAuth sung. ✨🔐

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'New Crowdin updates' is vague and generic, lacking specificity about which localization strings were added or which locales were updated. Consider a more descriptive title such as 'Add authorization and scope localization strings across all locales' to clearly convey the main change.
✅ 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 changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch l10n_main

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
Copy Markdown
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: 3

Note

Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
frontend/src/lib/i18n/locales/no-NO.json (1)

1-81: ⚠️ Potential issue | 🟡 Minor

All strings in no-NO.json are in English — Norwegian translations appear to be missing.

This is the Norwegian Bokmål (no-NO) locale file, yet every string — both existing and newly added — is in English. For a PR titled "New Crowdin updates," this is unexpected. Please verify whether Crowdin has actual Norwegian translations available, or if this file is intentionally kept as an untranslated copy (e.g., as a fallback). If the latter, consider whether shipping an English-only no-NO locale provides any value over simply falling back to the default English locale at runtime.

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

1-81: ⚠️ Potential issue | 🟡 Minor

All ro-RO strings are in English (untranslated).

Every value in this Romanian locale file—both existing and newly added—is in English. This is presumably because Romanian translations haven't been contributed on Crowdin yet, and the source strings are exported as fallback. If that's the intended Crowdin workflow (ship source strings until translations arrive), this is fine. Otherwise, these should be translated before merge.

🤖 Fix all issues with AI agents
In `@frontend/src/lib/i18n/locales/pt-PT.json`:
- Around line 63-80: The new authorization and scope strings (authorizeTitle,
authorizeCardTitle, authorizeSubtitle, authorizeSubtitleOAuth,
authorizeLoadingTitle, authorizeLoadingSubtitle, authorizeSuccessTitle,
authorizeSuccessSubtitle, authorizeErrorClientInfo, authorizeErrorMissingParams,
openidScopeName, openidScopeDescription, emailScopeName, emailScopeDescription,
profileScopeName, profileScopeDescription, groupsScopeName,
groupsScopeDescription) are still in English; replace each value with the
correct Portuguese (pt-PT) translation while preserving placeholders like
{{app}} and {{missingParams}} and the JSON string formatting so the locale file
remains valid.

In `@frontend/src/lib/i18n/locales/ru-RU.json`:
- Around line 63-80: The listed i18n entries (authorizeTitle,
authorizeCardTitle, authorizeSubtitle, authorizeSubtitleOAuth,
authorizeLoadingTitle, authorizeLoadingSubtitle, authorizeSuccessTitle,
authorizeSuccessSubtitle, authorizeErrorClientInfo, authorizeErrorMissingParams,
openidScopeName, openidScopeDescription, emailScopeName, emailScopeDescription,
profileScopeName, profileScopeDescription, groupsScopeName,
groupsScopeDescription) are still in English; replace their values with proper
Russian translations in the ru-RU locale JSON so the authorization and OIDC
scope UI is fully localized (ensure placeholders like {{app}} and
{{missingParams}} are preserved exactly).

In `@frontend/src/lib/i18n/locales/tr-TR.json`:
- Line 25: The translation for the key "continueInsecureRedirectSubtitle" in
frontend/src/lib/i18n/locales/tr-TR.json incorrectly says "<code>http</code>
adresinden <code>http</code> adresine" — update the first protocol to
"<code>https</code>" so it reads "<code>https</code> adresinden
<code>http</code> adresine" to match the source en-US string and correctly
indicate an https→http insecure redirect.
🟡 Minor comments (25)
frontend/src/lib/i18n/locales/da-DK.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

Translate newly added strings to Danish for locale consistency.

The new keys are still in English within da-DK.json, which will surface English text to Danish users. Please translate these values or move them to the English locale.

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

54-54: ⚠️ Potential issue | 🟡 Minor

Untranslated strings in Finnish locale.

All 19 new keys (errorSubtitleInfo, authorizeTitle, authorizeCardTitle, …, groupsScopeDescription) contain English text instead of Finnish translations. Every other entry in this file is properly translated to Finnish. These should be translated before merging to maintain a consistent Finnish user experience.

Also applies to: 63-80

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

54-54: ⚠️ Potential issue | 🟡 Minor

Untranslated string in pt-PT locale.

errorSubtitleInfo is in English while all surrounding keys are translated to Portuguese.

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

54-80: ⚠️ Potential issue | 🟡 Minor

All new keys are untranslated (English) in the Arabic locale.

The 19 newly added keys (errorSubtitleInfo, authorizeTitle, authorizeCardTitle, scope names/descriptions, etc.) are all in English rather than Arabic. Since this is a Crowdin-managed PR, these are presumably placeholder strings awaiting community translation. Just flagging for visibility — consider ensuring Arabic translations are contributed before these authorization and OpenID flows are shipped to Arabic-speaking users.

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

78-78: ⚠️ Potential issue | 🟡 Minor

Typo: "porfilu" → "profilu"

"porfilu" appears to be a transposition typo in Polish — the correct word is "profilu".

✏️ Proposed fix
-    "profileScopeDescription": "Zezwala aplikacji na dostęp do informacji o porfilu.",
+    "profileScopeDescription": "Zezwala aplikacji na dostęp do informacji o profilu.",
frontend/src/lib/i18n/locales/it-IT.json-54-54 (1)

54-54: ⚠️ Potential issue | 🟡 Minor

Newly added keys are untranslated (still in English) in the Italian locale.

All 19 new keys (errorSubtitleInfo, authorizeTitle, authorizeCardTitle, scope names/descriptions, etc.) are English strings in the it-IT.json file. While the existing keys were properly translated to Italian in this PR, these additions appear to be English placeholders.

If this is intentional (Crowdin adding keys with English fallbacks pending translation), this is fine — but worth confirming that the translation workflow will fill these in before release.

Also applies to: 63-80

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

54-80: ⚠️ Potential issue | 🟡 Minor

All strings in the he-IL locale remain in English.

Every new (and existing) value in this Hebrew locale file is in English. If this is intentional as a Crowdin-managed fallback until Hebrew translations arrive, no action needed. Otherwise, Hebrew translations should be provided for these keys.

frontend/src/lib/i18n/locales/fr-FR.json-74-74 (1)

74-74: ⚠️ Potential issue | 🟡 Minor

Untranslated string: openidScopeDescription is still in English.

This value is "Allows the app to access your OpenID Connect information." while every other entry in this French locale file is translated. This appears to be a Crowdin oversight.

Suggested fix
-    "openidScopeDescription": "Allows the app to access your OpenID Connect information.",
+    "openidScopeDescription": "Autorise l'application à accéder à vos informations OpenID Connect.",
frontend/src/lib/i18n/locales/vi-VN.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

All new strings are untranslated (English in vi-VN locale).

The 19 newly added keys (errorSubtitleInfo, authorizeTitle, authorizeCardTitle, scope descriptions, etc.) all contain English text rather than Vietnamese translations. While some existing keys in this file (e.g., forgotPasswordTitle, errorSubtitle) are properly translated, none of the new entries are.

If this is intentional as part of the Crowdin workflow (untranslated strings defaulting to the source language), this is fine — but it would be worth confirming that these keys are queued for Vietnamese translation on Crowdin.

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

54-55: ⚠️ Potential issue | 🟡 Minor

New keys are not translated into Ukrainian.

errorSubtitleInfo (Line 54) and all keys from authorizeTitle through groupsScopeDescription (Lines 63–80) remain in English in the uk-UA locale file. Since this is a Crowdin-sourced PR, these may be awaiting community translation, but shipping them as-is means Ukrainian users will see English strings for the entire authorization/OIDC flow and the error info subtitle.

Worth confirming whether the intent is to merge now with English fallbacks and translate later, or to hold until Ukrainian translations are available.

Also applies to: 63-80

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

55-55: ⚠️ Potential issue | 🟡 Minor

errorSubtitle is still in English.

This is the only remaining untranslated string in the Dutch locale file. Since this PR is updating translations for this locale, this key should be translated to Dutch as well.

Suggested fix
-    "errorSubtitle": "An error occurred while trying to perform this action. Please check the console for more information.",
+    "errorSubtitle": "Er is een fout opgetreden bij het uitvoeren van deze actie. Controleer de console voor meer informatie.",
frontend/src/lib/i18n/locales/sr-SP.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

All new keys are untranslated (English) in the Serbian locale.

Every string added in this file is in English rather than Serbian. If the app doesn't fall back to en-US.json at runtime for missing translations, Serbian-speaking users will see English text for authorization flows and OIDC scope descriptions. If Crowdin is expected to fill these in later, consider whether merging untranslated strings is the intended workflow or if this file should only be updated once actual Serbian translations are available.

frontend/src/lib/i18n/locales/ja-JP.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

All new strings remain untranslated (English) in the Japanese locale.

Every string in this file—both existing and newly added—is in English rather than Japanese. Since this is a Crowdin-managed sync, this is presumably expected behavior where untranslated keys default to the source language. Just flagging for awareness in case Japanese translations were expected to be included in this update.

frontend/src/lib/i18n/locales/pt-BR.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

19 new keys are untranslated (English) in the pt-BR locale.

errorSubtitleInfo (line 54) and all keys from authorizeTitle through groupsScopeDescription (lines 63–80) contain English text. Users with the pt-BR locale will see a mix of Portuguese and English in the UI until these are translated.

Since this is a Crowdin sync, this is likely expected — but worth confirming that these strings are queued for translation in Crowdin.

frontend/src/lib/i18n/locales/cs-CZ.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

All 19 new keys are untranslated (English in a Czech locale file).

Every newly added key — errorSubtitleInfo, authorizeTitle through authorizeErrorMissingParams, and openidScopeName through groupsScopeDescription — contains English text rather than Czech translations. Czech-speaking users will see English strings for the entire authorization flow and scope descriptions.

If this is intentional as a Crowdin sync that will be followed up with translations, consider tracking the missing Czech translations so they aren't forgotten. Otherwise, these should be translated before merge.

frontend/src/lib/i18n/locales/de-DE.json-54-54 (1)

54-54: ⚠️ Potential issue | 🟡 Minor

Untranslated English string in German locale.

errorSubtitleInfo is in English ("The following error occurred while processing your request:") while all surrounding keys are translated to German. This should be translated.

Suggested fix
-    "errorSubtitleInfo": "The following error occurred while processing your request:",
+    "errorSubtitleInfo": "Bei der Verarbeitung Ihrer Anfrage ist folgender Fehler aufgetreten:",
frontend/src/lib/i18n/locales/de-DE.json-63-80 (1)

63-80: ⚠️ Potential issue | 🟡 Minor

All new authorization and scope keys are untranslated English in the German locale.

18 keys (authorizeTitle through groupsScopeDescription) are all in English. Since every other string in this file is in German, these should be translated as well.

Suggested German translations
-    "authorizeTitle": "Authorize",
-    "authorizeCardTitle": "Continue to {{app}}?",
-    "authorizeSubtitle": "Would you like to continue to this app? Please carefully review the permissions requested by the app.",
-    "authorizeSubtitleOAuth": "Would you like to continue to this app?",
-    "authorizeLoadingTitle": "Loading...",
-    "authorizeLoadingSubtitle": "Please wait while we load the client information.",
-    "authorizeSuccessTitle": "Authorized",
-    "authorizeSuccessSubtitle": "You will be redirected to the app in a few seconds.",
-    "authorizeErrorClientInfo": "An error occurred while loading the client information. Please try again later.",
-    "authorizeErrorMissingParams": "The following parameters are missing: {{missingParams}}",
-    "openidScopeName": "OpenID Connect",
-    "openidScopeDescription": "Allows the app to access your OpenID Connect information.",
-    "emailScopeName": "Email",
-    "emailScopeDescription": "Allows the app to access your email address.",
-    "profileScopeName": "Profile",
-    "profileScopeDescription": "Allows the app to access your profile information.",
-    "groupsScopeName": "Groups",
-    "groupsScopeDescription": "Allows the app to access your group information."
+    "authorizeTitle": "Autorisieren",
+    "authorizeCardTitle": "Weiter zu {{app}}?",
+    "authorizeSubtitle": "Möchten Sie mit dieser App fortfahren? Bitte überprüfen Sie sorgfältig die von der App angeforderten Berechtigungen.",
+    "authorizeSubtitleOAuth": "Möchten Sie mit dieser App fortfahren?",
+    "authorizeLoadingTitle": "Laden...",
+    "authorizeLoadingSubtitle": "Bitte warten Sie, während wir die Client-Informationen laden.",
+    "authorizeSuccessTitle": "Autorisiert",
+    "authorizeSuccessSubtitle": "Sie werden in wenigen Sekunden zur App weitergeleitet.",
+    "authorizeErrorClientInfo": "Beim Laden der Client-Informationen ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.",
+    "authorizeErrorMissingParams": "Die folgenden Parameter fehlen: {{missingParams}}",
+    "openidScopeName": "OpenID Connect",
+    "openidScopeDescription": "Erlaubt der App den Zugriff auf Ihre OpenID Connect Informationen.",
+    "emailScopeName": "E-Mail",
+    "emailScopeDescription": "Erlaubt der App den Zugriff auf Ihre E-Mail-Adresse.",
+    "profileScopeName": "Profil",
+    "profileScopeDescription": "Erlaubt der App den Zugriff auf Ihre Profilinformationen.",
+    "groupsScopeName": "Gruppen",
+    "groupsScopeDescription": "Erlaubt der App den Zugriff auf Ihre Gruppeninformationen."
frontend/src/lib/i18n/locales/ru-RU.json-54-54 (1)

54-54: ⚠️ Potential issue | 🟡 Minor

Untranslated English string in Russian locale.

errorSubtitleInfo is in English while every other pre-existing value in this file is in Russian. This should be translated.

Proposed fix
-    "errorSubtitleInfo": "The following error occurred while processing your request:",
+    "errorSubtitleInfo": "При обработке вашего запроса произошла следующая ошибка:",
frontend/src/lib/i18n/locales/sv-SE.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

All newly added strings are in English, not translated to Swedish.

This is the sv-SE (Swedish) locale file, but every new key added in this PR (errorSubtitleInfo, authorizeTitle, authorizeCardTitle, authorizeSubtitle, authorizeSubtitleOAuth, authorizeLoadingTitle, authorizeLoadingSubtitle, authorizeSuccessTitle, authorizeSuccessSubtitle, authorizeErrorClientInfo, authorizeErrorMissingParams, openidScopeName, openidScopeDescription, emailScopeName, emailScopeDescription, profileScopeName, profileScopeDescription, groupsScopeName, groupsScopeDescription) contains English text rather than Swedish translations. Swedish-speaking users will see English strings for the entire authorization flow and scope descriptions.

Several pre-existing keys also remain untranslated (e.g., lines 18–19, 23, 26–27, 33–48), so this appears to be a broader translation gap. Consider prioritizing Swedish translations for these keys in the next Crowdin sync.

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

31-31: ⚠️ Potential issue | 🟡 Minor

Same formality inconsistency here — informal "Kijelentkeztél" should match the formal tone used elsewhere.

Proposed fix
-    "logoutSuccessSubtitle": "Kijelentkeztél",
+    "logoutSuccessSubtitle": "Sikeresen kijelentkezett",
frontend/src/lib/i18n/locales/hu-HU.json-10-10 (1)

10-10: ⚠️ Potential issue | 🟡 Minor

Inconsistent formality (te/ön) in Hungarian translations.

Line 10 uses the informal register ("próbálkoztál", "Próbáld"), while surrounding translations (e.g., lines 9, 29, 39, 49) use the formal register ("ellenőrizze", "Próbálja", "próbálja"). Pick one form consistently — typically formal ("Ön") for application UI — and apply it throughout.

Proposed fix
-    "loginFailRateLimit": "Túl sokszor próbálkoztál bejelentkezni. Próbáld újra később",
+    "loginFailRateLimit": "Túl sokszor próbálkozott bejelentkezni. Próbálja újra később",
frontend/src/lib/i18n/locales/tr-TR.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

New keys (and errorSubtitle) are not translated to Turkish.

While many existing keys received proper Turkish translations in this update, all newly added keys (errorSubtitleInfo, authorizeTitle through groupsScopeDescription) and errorSubtitle (line 55) remain in English.

frontend/src/lib/i18n/locales/es-ES.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

New keys are not translated to Spanish.

All newly added keys remain in English. Additionally, several pre-existing keys (e.g., lines 17–19, 23, 26–27, 48, 56–61) are also still in English — may be worth addressing those in the same Crowdin translation pass.

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

54-80: ⚠️ Potential issue | 🟡 Minor

New keys are not translated to Traditional Chinese.

All newly added keys (errorSubtitleInfo, authorizeTitle through groupsScopeDescription) contain English strings instead of Traditional Chinese translations. The existing strings in this file are fully localized, so these stand out as untranslated placeholders. If Crowdin hasn't received translations yet, consider holding off on merging these into zh-TW.json until translations are available, or ensure they fall back to en-US at runtime rather than appearing as raw English in a Chinese UI.

frontend/src/lib/i18n/locales/zh-CN.json-54-80 (1)

54-80: ⚠️ Potential issue | 🟡 Minor

New keys are not translated to Simplified Chinese.

Same as zh-TW.json — all newly added keys contain English text while the rest of the file is fully localized in Simplified Chinese. These should be translated before shipping to avoid a mixed-language UI.

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

2-2: Several pre-existing keys also remain in English.

loginTitle, loginOauthFailTitle, loginOauthFailSubtitle, loginOauthSuccessSubtitle, and the OAuth auto-redirect keys are still untranslated. Since this PR is touching the file anyway, it would be a good opportunity to translate these as well.

Also applies to: 13-14, 16-19

Comment on lines +63 to +80
"authorizeTitle": "Authorize",
"authorizeCardTitle": "Continue to {{app}}?",
"authorizeSubtitle": "Would you like to continue to this app? Please carefully review the permissions requested by the app.",
"authorizeSubtitleOAuth": "Would you like to continue to this app?",
"authorizeLoadingTitle": "Loading...",
"authorizeLoadingSubtitle": "Please wait while we load the client information.",
"authorizeSuccessTitle": "Authorized",
"authorizeSuccessSubtitle": "You will be redirected to the app in a few seconds.",
"authorizeErrorClientInfo": "An error occurred while loading the client information. Please try again later.",
"authorizeErrorMissingParams": "The following parameters are missing: {{missingParams}}",
"openidScopeName": "OpenID Connect",
"openidScopeDescription": "Allows the app to access your OpenID Connect information.",
"emailScopeName": "Email",
"emailScopeDescription": "Allows the app to access your email address.",
"profileScopeName": "Profile",
"profileScopeDescription": "Allows the app to access your profile information.",
"groupsScopeName": "Groups",
"groupsScopeDescription": "Allows the app to access your group information."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

All new authorization and scope strings are untranslated (English in pt-PT locale).

All 18 newly added keys (authorizeTitle through groupsScopeDescription) contain English text. Since this is the Portuguese (Portugal) locale, these should be translated to Portuguese — the same way lines 2–62 are. As-is, Portuguese users will see an abrupt mix of Portuguese and English in the UI.

🤖 Prompt for AI Agents
In `@frontend/src/lib/i18n/locales/pt-PT.json` around lines 63 - 80, The new
authorization and scope strings (authorizeTitle, authorizeCardTitle,
authorizeSubtitle, authorizeSubtitleOAuth, authorizeLoadingTitle,
authorizeLoadingSubtitle, authorizeSuccessTitle, authorizeSuccessSubtitle,
authorizeErrorClientInfo, authorizeErrorMissingParams, openidScopeName,
openidScopeDescription, emailScopeName, emailScopeDescription, profileScopeName,
profileScopeDescription, groupsScopeName, groupsScopeDescription) are still in
English; replace each value with the correct Portuguese (pt-PT) translation
while preserving placeholders like {{app}} and {{missingParams}} and the JSON
string formatting so the locale file remains valid.

Comment on lines +63 to +80
"authorizeTitle": "Authorize",
"authorizeCardTitle": "Continue to {{app}}?",
"authorizeSubtitle": "Would you like to continue to this app? Please carefully review the permissions requested by the app.",
"authorizeSubtitleOAuth": "Would you like to continue to this app?",
"authorizeLoadingTitle": "Loading...",
"authorizeLoadingSubtitle": "Please wait while we load the client information.",
"authorizeSuccessTitle": "Authorized",
"authorizeSuccessSubtitle": "You will be redirected to the app in a few seconds.",
"authorizeErrorClientInfo": "An error occurred while loading the client information. Please try again later.",
"authorizeErrorMissingParams": "The following parameters are missing: {{missingParams}}",
"openidScopeName": "OpenID Connect",
"openidScopeDescription": "Allows the app to access your OpenID Connect information.",
"emailScopeName": "Email",
"emailScopeDescription": "Allows the app to access your email address.",
"profileScopeName": "Profile",
"profileScopeDescription": "Allows the app to access your profile information.",
"groupsScopeName": "Groups",
"groupsScopeDescription": "Allows the app to access your group information."
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

All new authorization and OIDC scope keys are untranslated (English in the Russian locale).

Every key from authorizeTitle through groupsScopeDescription is in English. In a ru-RU locale file these must be in Russian to provide actual localization. As-is, Russian-speaking users will see a jarring mix of Russian and English UI text during authorization flows.

Suggested Russian translations
-    "authorizeTitle": "Authorize",
-    "authorizeCardTitle": "Continue to {{app}}?",
-    "authorizeSubtitle": "Would you like to continue to this app? Please carefully review the permissions requested by the app.",
-    "authorizeSubtitleOAuth": "Would you like to continue to this app?",
-    "authorizeLoadingTitle": "Loading...",
-    "authorizeLoadingSubtitle": "Please wait while we load the client information.",
-    "authorizeSuccessTitle": "Authorized",
-    "authorizeSuccessSubtitle": "You will be redirected to the app in a few seconds.",
-    "authorizeErrorClientInfo": "An error occurred while loading the client information. Please try again later.",
-    "authorizeErrorMissingParams": "The following parameters are missing: {{missingParams}}",
-    "openidScopeName": "OpenID Connect",
-    "openidScopeDescription": "Allows the app to access your OpenID Connect information.",
-    "emailScopeName": "Email",
-    "emailScopeDescription": "Allows the app to access your email address.",
-    "profileScopeName": "Profile",
-    "profileScopeDescription": "Allows the app to access your profile information.",
-    "groupsScopeName": "Groups",
-    "groupsScopeDescription": "Allows the app to access your group information."
+    "authorizeTitle": "Авторизация",
+    "authorizeCardTitle": "Продолжить в {{app}}?",
+    "authorizeSubtitle": "Хотите продолжить в это приложение? Пожалуйста, внимательно ознакомьтесь с запрашиваемыми разрешениями.",
+    "authorizeSubtitleOAuth": "Хотите продолжить в это приложение?",
+    "authorizeLoadingTitle": "Загрузка...",
+    "authorizeLoadingSubtitle": "Пожалуйста, подождите, пока мы загружаем информацию о клиенте.",
+    "authorizeSuccessTitle": "Авторизовано",
+    "authorizeSuccessSubtitle": "Вы будете перенаправлены в приложение через несколько секунд.",
+    "authorizeErrorClientInfo": "Произошла ошибка при загрузке информации о клиенте. Попробуйте позже.",
+    "authorizeErrorMissingParams": "Отсутствуют следующие параметры: {{missingParams}}",
+    "openidScopeName": "OpenID Connect",
+    "openidScopeDescription": "Разрешает приложению доступ к вашей информации OpenID Connect.",
+    "emailScopeName": "Электронная почта",
+    "emailScopeDescription": "Разрешает приложению доступ к вашему адресу электронной почты.",
+    "profileScopeName": "Профиль",
+    "profileScopeDescription": "Разрешает приложению доступ к информации вашего профиля.",
+    "groupsScopeName": "Группы",
+    "groupsScopeDescription": "Разрешает приложению доступ к информации о ваших группах."
🤖 Prompt for AI Agents
In `@frontend/src/lib/i18n/locales/ru-RU.json` around lines 63 - 80, The listed
i18n entries (authorizeTitle, authorizeCardTitle, authorizeSubtitle,
authorizeSubtitleOAuth, authorizeLoadingTitle, authorizeLoadingSubtitle,
authorizeSuccessTitle, authorizeSuccessSubtitle, authorizeErrorClientInfo,
authorizeErrorMissingParams, openidScopeName, openidScopeDescription,
emailScopeName, emailScopeDescription, profileScopeName,
profileScopeDescription, groupsScopeName, groupsScopeDescription) are still in
English; replace their values with proper Russian translations in the ru-RU
locale JSON so the authorization and OIDC scope UI is fully localized (ensure
placeholders like {{app}} and {{missingParams}} are preserved exactly).

"continueRedirectingSubtitle": "Kısa süre içinde uygulamaya yönlendirileceksiniz",
"continueRedirectManually": "Beni manuel olarak yönlendir",
"continueInsecureRedirectTitle": "Güvenli olmayan yönlendirme",
"continueInsecureRedirectSubtitle": "<code>http</code> adresinden <code>http</code> adresine yönlendirme yapmaya çalışıyorsunuz, bu güvenli değil. Devam etmek istediğinizden emin misiniz?",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Bug: Turkish translation says httphttp instead of httpshttp.

The insecure redirect warning should indicate a redirect from https to http. The first <code>http</code> should be <code>https</code>, matching the source string in en-US.json.

Proposed fix
-    "continueInsecureRedirectSubtitle": "<code>http</code> adresinden <code>http</code> adresine yönlendirme yapmaya çalışıyorsunuz, bu güvenli değil. Devam etmek istediğinizden emin misiniz?",
+    "continueInsecureRedirectSubtitle": "<code>https</code> adresinden <code>http</code> adresine yönlendirme yapmaya çalışıyorsunuz, bu güvenli değil. Devam etmek istediğinizden emin misiniz?",
📝 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
"continueInsecureRedirectSubtitle": "<code>http</code> adresinden <code>http</code> adresine yönlendirme yapmaya çalışıyorsunuz, bu güvenli değil. Devam etmek istediğinizden emin misiniz?",
"continueInsecureRedirectSubtitle": "<code>https</code> adresinden <code>http</code> adresine yönlendirme yapmaya çalışıyorsunuz, bu güvenli değil. Devam etmek istediğinizden emin misiniz?",
🤖 Prompt for AI Agents
In `@frontend/src/lib/i18n/locales/tr-TR.json` at line 25, The translation for the
key "continueInsecureRedirectSubtitle" in
frontend/src/lib/i18n/locales/tr-TR.json incorrectly says "<code>http</code>
adresinden <code>http</code> adresine" — update the first protocol to
"<code>https</code>" so it reads "<code>https</code> adresinden
<code>http</code> adresine" to match the source en-US string and correctly
indicate an https→http insecure redirect.

@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 7, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 16.16%. Comparing base (f08d859) to head (6a2b1c7).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #631   +/-   ##
=======================================
  Coverage   16.16%   16.16%           
=======================================
  Files          45       45           
  Lines        3427     3427           
=======================================
  Hits          554      554           
  Misses       2816     2816           
  Partials       57       57           

☔ 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.

@steveiliop56 steveiliop56 merged commit 3eea68a into main Feb 7, 2026
8 checks passed
@steveiliop56 steveiliop56 deleted the l10n_main branch February 7, 2026 11:21
This was referenced Feb 22, 2026
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