Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
9667866
New translations en.json (French)
steveiliop56 Jul 18, 2025
6731a74
New translations en.json (Russian)
steveiliop56 Jul 18, 2025
dce7e47
New translations en.json (Chinese Simplified)
steveiliop56 Jul 31, 2025
9fef4db
New translations en.json (Ukrainian)
steveiliop56 Aug 4, 2025
fc9288a
New translations en.json (Chinese Simplified)
steveiliop56 Aug 8, 2025
1d86424
New translations en.json (Swedish)
steveiliop56 Aug 9, 2025
f61ef40
New translations en.json (Swedish)
steveiliop56 Aug 9, 2025
4fd78a0
New translations en.json (Russian)
steveiliop56 Aug 10, 2025
911f7c3
New translations en.json (Czech)
steveiliop56 Aug 10, 2025
37b9727
New translations en.json (German)
steveiliop56 Aug 17, 2025
7228c4e
New translations en.json (German)
steveiliop56 Aug 17, 2025
21c0889
New translations en.json (Romanian)
steveiliop56 Sep 1, 2025
7b3d276
New translations en.json (French)
steveiliop56 Sep 1, 2025
de3cfd4
New translations en.json (Spanish)
steveiliop56 Sep 1, 2025
a9414ae
New translations en.json (Afrikaans)
steveiliop56 Sep 1, 2025
c7b1b62
New translations en.json (Arabic)
steveiliop56 Sep 1, 2025
77fabf5
New translations en.json (Catalan)
steveiliop56 Sep 1, 2025
2cc1339
New translations en.json (Czech)
steveiliop56 Sep 1, 2025
4472815
New translations en.json (Danish)
steveiliop56 Sep 1, 2025
de10d9b
New translations en.json (German)
steveiliop56 Sep 1, 2025
a211641
New translations en.json (Greek)
steveiliop56 Sep 1, 2025
99f7d73
New translations en.json (Finnish)
steveiliop56 Sep 1, 2025
4ffc671
New translations en.json (Hebrew)
steveiliop56 Sep 1, 2025
e214ee6
New translations en.json (Hungarian)
steveiliop56 Sep 1, 2025
0a6ccd8
New translations en.json (Italian)
steveiliop56 Sep 1, 2025
3cdd9fd
New translations en.json (Japanese)
steveiliop56 Sep 1, 2025
573f211
New translations en.json (Korean)
steveiliop56 Sep 1, 2025
aae2c5e
New translations en.json (Dutch)
steveiliop56 Sep 1, 2025
7c02ec4
New translations en.json (Norwegian)
steveiliop56 Sep 1, 2025
f1ef8b0
New translations en.json (Polish)
steveiliop56 Sep 1, 2025
3b6ea5d
New translations en.json (Portuguese)
steveiliop56 Sep 1, 2025
3ee0f4c
New translations en.json (Russian)
steveiliop56 Sep 1, 2025
3285476
New translations en.json (Serbian (Cyrillic))
steveiliop56 Sep 1, 2025
506e80c
New translations en.json (Swedish)
steveiliop56 Sep 1, 2025
fd7d997
New translations en.json (Turkish)
steveiliop56 Sep 1, 2025
bafbb3e
New translations en.json (Ukrainian)
steveiliop56 Sep 1, 2025
9ea4250
New translations en.json (Chinese Simplified)
steveiliop56 Sep 1, 2025
0b5e562
New translations en.json (Chinese Traditional)
steveiliop56 Sep 1, 2025
1aa3bc1
New translations en.json (English)
steveiliop56 Sep 1, 2025
949611f
New translations en.json (Vietnamese)
steveiliop56 Sep 1, 2025
3e7b414
New translations en.json (Portuguese, Brazilian)
steveiliop56 Sep 1, 2025
0abe2d4
New translations en.json (Romanian)
steveiliop56 Sep 10, 2025
4de8109
New translations en.json (French)
steveiliop56 Sep 10, 2025
ccbad25
New translations en.json (Spanish)
steveiliop56 Sep 10, 2025
cd8513f
New translations en.json (Afrikaans)
steveiliop56 Sep 10, 2025
ac3082a
New translations en.json (Arabic)
steveiliop56 Sep 10, 2025
7662737
New translations en.json (Catalan)
steveiliop56 Sep 10, 2025
8f17b57
New translations en.json (Czech)
steveiliop56 Sep 10, 2025
e4e804c
New translations en.json (Danish)
steveiliop56 Sep 10, 2025
edf4945
New translations en.json (German)
steveiliop56 Sep 10, 2025
b8abc85
New translations en.json (Greek)
steveiliop56 Sep 10, 2025
458c8dd
New translations en.json (Finnish)
steveiliop56 Sep 10, 2025
46c6b29
New translations en.json (Hebrew)
steveiliop56 Sep 10, 2025
d8783bd
New translations en.json (Hungarian)
steveiliop56 Sep 10, 2025
968b6ce
New translations en.json (Italian)
steveiliop56 Sep 10, 2025
c2100ae
New translations en.json (Japanese)
steveiliop56 Sep 10, 2025
85bbd62
New translations en.json (Korean)
steveiliop56 Sep 10, 2025
b85f2da
New translations en.json (Dutch)
steveiliop56 Sep 10, 2025
2650422
New translations en.json (Norwegian)
steveiliop56 Sep 10, 2025
163fad7
New translations en.json (Polish)
steveiliop56 Sep 10, 2025
d200b54
New translations en.json (Portuguese)
steveiliop56 Sep 10, 2025
c4778cb
New translations en.json (Russian)
steveiliop56 Sep 10, 2025
f118955
New translations en.json (Serbian (Cyrillic))
steveiliop56 Sep 10, 2025
6313d05
New translations en.json (Swedish)
steveiliop56 Sep 10, 2025
778fb63
New translations en.json (Turkish)
steveiliop56 Sep 10, 2025
b8c7c47
New translations en.json (Ukrainian)
steveiliop56 Sep 10, 2025
37b3e74
New translations en.json (Chinese Simplified)
steveiliop56 Sep 10, 2025
d210a2b
New translations en.json (Chinese Traditional)
steveiliop56 Sep 10, 2025
aa607ee
New translations en.json (English)
steveiliop56 Sep 10, 2025
744a33d
New translations en.json (Vietnamese)
steveiliop56 Sep 10, 2025
c6ab05b
New translations en.json (Portuguese, Brazilian)
steveiliop56 Sep 10, 2025
81944e7
New translations en.json (French)
steveiliop56 Sep 13, 2025
59e1d31
New translations en.json (Romanian)
steveiliop56 Sep 16, 2025
678317f
New translations en.json (French)
steveiliop56 Sep 16, 2025
13b9b38
New translations en.json (Spanish)
steveiliop56 Sep 16, 2025
9ede29d
New translations en.json (Afrikaans)
steveiliop56 Sep 16, 2025
3d05857
New translations en.json (Arabic)
steveiliop56 Sep 16, 2025
e89631e
New translations en.json (Catalan)
steveiliop56 Sep 16, 2025
17702ef
New translations en.json (Czech)
steveiliop56 Sep 16, 2025
455d253
New translations en.json (Danish)
steveiliop56 Sep 16, 2025
2e1be91
New translations en.json (German)
steveiliop56 Sep 16, 2025
4c11132
New translations en.json (Greek)
steveiliop56 Sep 16, 2025
0ce3f52
New translations en.json (Finnish)
steveiliop56 Sep 16, 2025
df1fe9a
New translations en.json (Hebrew)
steveiliop56 Sep 16, 2025
67cb544
New translations en.json (Hungarian)
steveiliop56 Sep 16, 2025
f388336
New translations en.json (Italian)
steveiliop56 Sep 16, 2025
5a43ff7
New translations en.json (Japanese)
steveiliop56 Sep 16, 2025
72389f9
New translations en.json (Korean)
steveiliop56 Sep 16, 2025
c33ee12
New translations en.json (Dutch)
steveiliop56 Sep 16, 2025
460eb60
New translations en.json (Norwegian)
steveiliop56 Sep 16, 2025
4a6dc83
New translations en.json (Polish)
steveiliop56 Sep 16, 2025
0fa977f
New translations en.json (Portuguese)
steveiliop56 Sep 16, 2025
b990046
New translations en.json (Russian)
steveiliop56 Sep 16, 2025
8a5d699
New translations en.json (Serbian (Cyrillic))
steveiliop56 Sep 16, 2025
234e6b7
New translations en.json (Swedish)
steveiliop56 Sep 16, 2025
bf15538
New translations en.json (Turkish)
steveiliop56 Sep 16, 2025
09061f6
New translations en.json (Ukrainian)
steveiliop56 Sep 16, 2025
97214bc
New translations en.json (Chinese Simplified)
steveiliop56 Sep 16, 2025
8a2b7a1
New translations en.json (Chinese Traditional)
steveiliop56 Sep 16, 2025
d14b1ef
New translations en.json (English)
steveiliop56 Sep 16, 2025
695e82d
New translations en.json (Vietnamese)
steveiliop56 Sep 16, 2025
4e9342f
New translations en.json (Portuguese, Brazilian)
steveiliop56 Sep 16, 2025
a45bff8
New translations en.json (Greek)
steveiliop56 Sep 19, 2025
ea24aaa
New translations en.json (Polish)
steveiliop56 Sep 19, 2025
64cd37c
New translations en.json (Arabic)
steveiliop56 Sep 21, 2025
ba1436c
New translations en.json (French)
steveiliop56 Sep 23, 2025
9a8b9aa
New translations en.json (French)
steveiliop56 Sep 23, 2025
8695d58
New translations en.json (Chinese Simplified)
steveiliop56 Sep 26, 2025
207a1c4
New translations en.json (Portuguese, Brazilian)
steveiliop56 Sep 29, 2025
fa3b9f1
New translations en.json (Russian)
steveiliop56 Oct 1, 2025
b249099
New translations en.json (Russian)
steveiliop56 Oct 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions frontend/src/lib/i18n/locales/af-ZA.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@
"loginOauthFailSubtitle": "Failed to get OAuth URL",
"loginOauthSuccessTitle": "Redirecting",
"loginOauthSuccessSubtitle": "Redirecting to your OAuth provider",
"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?",
"logoutFailTitle": "Failed to log out",
"logoutFailSubtitle": "Please try again",
"logoutSuccessTitle": "Logged out",
Expand All @@ -44,14 +47,16 @@
"unauthorizedGroupsSubtitle": "The user with username <code>{{username}}</code> is not in the groups required by the resource <code>{{resource}}</code>.",
"unauthorizedIpSubtitle": "Your IP address <code>{{ip}}</code> is not authorized to access the resource <code>{{resource}}</code>.",
"unauthorizedButton": "Try again",
"untrustedRedirectTitle": "Untrusted redirect",
"untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{domain}}</code>). Are you sure you want to continue?",
"cancelTitle": "Cancel",
"forgotPasswordTitle": "Forgot your password?",
"failedToFetchProvidersTitle": "Failed to load authentication providers. Please check your configuration.",
"errorTitle": "An error occurred",
"errorSubtitle": "An error occurred while trying to perform this action. Please check the console for more information.",
"forgotPasswordMessage": "You can reset your password by changing the `USERS` environment variable.",
"fieldRequired": "This field is required",
"invalidInput": "Invalid input"
"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"
}
19 changes: 12 additions & 7 deletions frontend/src/lib/i18n/locales/ar-SA.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@
"loginOauthFailSubtitle": "أخفق الحصول على رابط OAuth",
"loginOauthSuccessTitle": "إعادة توجيه",
"loginOauthSuccessSubtitle": "إعادة توجيه إلى مزود OAuth الخاص بك",
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
Comment on lines +17 to +19
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

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.

"continueTitle": "متابعة",
Comment on lines +17 to +20
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

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.

"continueRedirectingTitle": "إعادة توجيه...",
"continueRedirectingSubtitle": "يجب إعادة توجيهك إلى التطبيق قريبا",
"continueInvalidRedirectTitle": "إعادة توجيه غير صالحة",
"continueInvalidRedirectSubtitle": "رابط إعادة التوجيه غير صالح",
"continueRedirectManually": "Redirect me manually",
"continueInsecureRedirectTitle": "إعادة توجيه غير آمنة",
"continueInsecureRedirectSubtitle": "أنت تحاول إعادة التوجيه من <code>https</code> إلى <code>http</code>، هل أنت متأكد أنك تريد المتابعة؟",
"continueTitle": "متابعة",
"continueSubtitle": "انقر الزر للمتابعة إلى التطبيق الخاص بك.",
"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?",
"logoutFailTitle": "فشل تسجيل الخروج",
"logoutFailSubtitle": "يرجى إعادة المحاولة",
"logoutSuccessTitle": "تم تسجيل الخروج",
Expand All @@ -44,14 +47,16 @@
"unauthorizedGroupsSubtitle": "The user with username <code>{{username}}</code> is not in the groups required by the resource <code>{{resource}}</code>.",
"unauthorizedIpSubtitle": "Your IP address <code>{{ip}}</code> is not authorized to access the resource <code>{{resource}}</code>.",
"unauthorizedButton": "حاول مجددا",
"untrustedRedirectTitle": "إعادة توجيه غير موثوقة",
"untrustedRedirectSubtitle": "أنت تحاول إعادة التوجيه إلى نطاق لا يتطابق مع النطاق المكون الخاص بك (<code>{{domain}}</code>). هل أنت متأكد من أنك تريد المتابعة؟",
"cancelTitle": "إلغاء",
"forgotPasswordTitle": "نسيت كلمة المرور؟",
"failedToFetchProvidersTitle": "Failed to load authentication providers. Please check your configuration.",
"errorTitle": "حدث خطأ",
"errorSubtitle": "An error occurred while trying to perform this action. Please check the console for more information.",
"forgotPasswordMessage": "You can reset your password by changing the `USERS` environment variable.",
"fieldRequired": "This field is required",
"invalidInput": "Invalid input"
"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": "تجاهل",
"goToCorrectDomainTitle": "Go to correct domain"
}
19 changes: 12 additions & 7 deletions frontend/src/lib/i18n/locales/ca-ES.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,17 @@
"loginOauthFailSubtitle": "Failed to get OAuth URL",
"loginOauthSuccessTitle": "Redirecting",
"loginOauthSuccessSubtitle": "Redirecting to your OAuth provider",
"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?",
Comment on lines +26 to +27
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

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.

"logoutFailTitle": "Failed to log out",
"logoutFailSubtitle": "Please try again",
"logoutSuccessTitle": "Logged out",
Expand All @@ -44,14 +47,16 @@
"unauthorizedGroupsSubtitle": "The user with username <code>{{username}}</code> is not in the groups required by the resource <code>{{resource}}</code>.",
"unauthorizedIpSubtitle": "Your IP address <code>{{ip}}</code> is not authorized to access the resource <code>{{resource}}</code>.",
"unauthorizedButton": "Try again",
"untrustedRedirectTitle": "Untrusted redirect",
"untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{domain}}</code>). Are you sure you want to continue?",
"cancelTitle": "Cancel",
"forgotPasswordTitle": "Forgot your password?",
"failedToFetchProvidersTitle": "Failed to load authentication providers. Please check your configuration.",
"errorTitle": "An error occurred",
"errorSubtitle": "An error occurred while trying to perform this action. Please check the console for more information.",
"forgotPasswordMessage": "You can reset your password by changing the `USERS` environment variable.",
"fieldRequired": "This field is required",
"invalidInput": "Invalid input"
"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"
}
115 changes: 60 additions & 55 deletions frontend/src/lib/i18n/locales/cs-CZ.json
Original file line number Diff line number Diff line change
@@ -1,57 +1,62 @@
{
"loginTitle": "Welcome back, login with",
"loginTitleSimple": "Welcome back, please login",
"loginDivider": "Or",
"loginUsername": "Username",
"loginPassword": "Password",
"loginSubmit": "Login",
"loginFailTitle": "Failed to log in",
"loginFailSubtitle": "Please check your username and password",
"loginFailRateLimit": "You failed to login too many times. Please try again later",
"loginSuccessTitle": "Logged in",
"loginSuccessSubtitle": "Welcome back!",
"loginOauthFailTitle": "An error occurred",
"loginOauthFailSubtitle": "Failed to get OAuth URL",
"loginOauthSuccessTitle": "Redirecting",
"loginOauthSuccessSubtitle": "Redirecting to your OAuth provider",
"continueRedirectingTitle": "Redirecting...",
"continueRedirectingSubtitle": "You should be redirected to the app soon",
"continueInvalidRedirectTitle": "Invalid redirect",
"continueInvalidRedirectSubtitle": "The redirect URL is invalid",
"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.",
"logoutFailTitle": "Failed to log out",
"logoutFailSubtitle": "Please try again",
"logoutSuccessTitle": "Logged out",
"logoutSuccessSubtitle": "You have been logged out",
"logoutTitle": "Logout",
"logoutUsernameSubtitle": "You are currently logged in as <code>{{username}}</code>. Click the button below to logout.",
"logoutOauthSubtitle": "You are currently logged in as <code>{{username}}</code> using the {{provider}} OAuth provider. Click the button below to logout.",
"notFoundTitle": "Page not found",
"notFoundSubtitle": "The page you are looking for does not exist.",
"notFoundButton": "Go home",
"totpFailTitle": "Failed to verify code",
"totpFailSubtitle": "Please check your code and try again",
"totpSuccessTitle": "Verified",
"totpSuccessSubtitle": "Redirecting to your app",
"totpTitle": "Enter your TOTP code",
"totpSubtitle": "Please enter the code from your authenticator app.",
"unauthorizedTitle": "Unauthorized",
"unauthorizedResourceSubtitle": "The user with username <code>{{username}}</code> is not authorized to access the resource <code>{{resource}}</code>.",
"unauthorizedLoginSubtitle": "The user with username <code>{{username}}</code> is not authorized to login.",
"unauthorizedGroupsSubtitle": "The user with username <code>{{username}}</code> is not in the groups required by the resource <code>{{resource}}</code>.",
"unauthorizedIpSubtitle": "Your IP address <code>{{ip}}</code> is not authorized to access the resource <code>{{resource}}</code>.",
"unauthorizedButton": "Try again",
"untrustedRedirectTitle": "Untrusted redirect",
"untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<code>{{domain}}</code>). Are you sure you want to continue?",
"cancelTitle": "Cancel",
"forgotPasswordTitle": "Forgot your password?",
"failedToFetchProvidersTitle": "Failed to load authentication providers. Please check your configuration.",
"errorTitle": "An error occurred",
"errorSubtitle": "An error occurred while trying to perform this action. Please check the console for more information.",
"forgotPasswordMessage": "You can reset your password by changing the `USERS` environment variable.",
"fieldRequired": "This field is required",
"invalidInput": "Invalid input"
"loginTitle": "Vítejte zpět, přihlaste se pomocí",
"loginTitleSimple": "Vítejte zpět, přihlaste se prosím",
"loginDivider": "Nebo",
"loginUsername": "Uživatelské jméno",
"loginPassword": "Heslo",
"loginSubmit": "Přihlásit",
"loginFailTitle": "Přihlášení se nezdařilo",
"loginFailSubtitle": "Zkontrolujte prosím své uživatelské jméno a heslo",
"loginFailRateLimit": "Přiliš mnoho neúspěšných pokusů přihlášení. Zkuste to prosím později",
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

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

Accent missing in “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",
📝 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
"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",
🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/cs-CZ.json around line 10, the string value for
"loginFailRateLimit" contains a typo: "Přiliš" should be "Příliš"; update the
JSON value to use the correct accented character so the message reads "Příliš
mnoho neúspěšných pokusů přihlášení. Zkuste to prosím později".

"loginSuccessTitle": "Přihlášen",
"loginSuccessSubtitle": "Vítejte zpět!",
"loginOauthFailTitle": "Došlo k chybě",
"loginOauthFailSubtitle": "Nepodařilo se získat OAuth URL",
"loginOauthSuccessTitle": "Přesměrování",
"loginOauthSuccessSubtitle": "Přesměrování k poskytovateli OAuth",
"loginOauthAutoRedirectTitle": "OAuth Auto Redirect",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
Comment on lines +17 to +19
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

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

"continueTitle": "Pokračovat",
"continueRedirectingTitle": "Přesměrování...",
"continueRedirectingSubtitle": "Brzy budete přesměrováni do aplikace",
"continueRedirectManually": "Redirect me manually",
"continueInsecureRedirectTitle": "Nezabezpečené přesměrování",
Comment on lines +23 to +24
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

Localize new redirect/domain strings to Czech

Provide Czech translations; keep placeholders unchanged.

-    "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>{{rootDomain}}</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",
+    "domainWarningTitle": "Neplatná doména",
-    "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.",
+    "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": "Ignore",
+    "ignoreTitle": "Ignorovat",
-    "goToCorrectDomainTitle": "Go to correct domain"
+    "goToCorrectDomainTitle": "Přejít na správnou doménu"

Also applies to: 23-24, 55-58

🤖 Prompt for AI Agents
In frontend/src/lib/i18n/locales/cs-CZ.json around lines 20-21 (and also apply
the same changes for lines 23-24 and 55-58), several new redirect/domain UI
strings are still in English; provide accurate Czech translations for each key
while preserving any placeholders exactly as they appear (do not alter or
translate placeholder tokens). Update the JSON values to Czech equivalents for
"continueRedirectManually", "continueInsecureRedirectTitle" and the other
mentioned keys, keeping punctuation and placeholder syntax intact so the keys
remain valid in the localization file.

"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
Copy Markdown
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.

"logoutFailTitle": "Odhlášení se nezdařilo",
"logoutFailSubtitle": "Zkuste to prosím znovu",
"logoutSuccessTitle": "Odhlášen",
"logoutSuccessSubtitle": "Byl jste odhlášen",
"logoutTitle": "Odhlásit",
"logoutUsernameSubtitle": "Jste přihlášen jako <code>{{username}}</code>. Pro odhlášení klikněte na tlačítko níže.",
"logoutOauthSubtitle": "Jste přihlášen jako <code>{{username}}</code> pomocí {{provider}} poskytovatele OAuth. Pro odhlášení klikněte na tlačítko níže.",
"notFoundTitle": "Stránka nenalezena",
"notFoundSubtitle": "Stránka, kterou hledáte, neexistuje.",
"notFoundButton": "Jít domů",
"totpFailTitle": "Nepodařilo se ověřit kód",
"totpFailSubtitle": "Zkontrolujte prosím kód a zkuste to znovu",
"totpSuccessTitle": "Ověřeno",
"totpSuccessSubtitle": "Přesměrování do aplikace",
"totpTitle": "Zadejte TOTP kód",
"totpSubtitle": "Zadejte prosím kód z ověřovací aplikace.",
"unauthorizedTitle": "Nepovoleno",
"unauthorizedResourceSubtitle": "Uživatel s uživatelským jménem <code>{{username}}</code> není oprávněn k přístupu ke zdroji <code>{{resource}}</code>.",
"unauthorizedLoginSubtitle": "Uživatel s uživatelským jménem <code>{{username}}</code> není oprávněn k přihlášení.",
"unauthorizedGroupsSubtitle": "Uživatel s uživatelským jménem <code>{{username}}</code> není ve skupině potřebné k přístupu ke zdroji <code>{{resource}}</code>.",
"unauthorizedIpSubtitle": "Vaše IP adresa <code>{{ip}}</code> není oprávněna k přístupu ke zdroji <code>{{resource}}</code>.",
"unauthorizedButton": "Zkusit znovu",
"cancelTitle": "Zrušit",
"forgotPasswordTitle": "Zapomněli jste heslo?",
"failedToFetchProvidersTitle": "Nepodařilo se načíst poskytovatele ověřování. Zkontrolujte prosím konfiguraci.",
"errorTitle": "Došlo k chybě",
"errorSubtitle": "Nastala chyba při pokusu o provedení této akce. Pro více informací prosím zkontrolujte konzolu.",
"forgotPasswordMessage": "Heslo můžete obnovit změnou proměnné `USERS`.",
"fieldRequired": "Toto pole je povinné",
"invalidInput": "Neplatný údaj",
"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"
}
Loading
Loading