Skip to content
Open
Changes from all commits
Commits
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
88 changes: 44 additions & 44 deletions frontend/src/lib/i18n/locales/cs-CZ.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,16 @@
"loginOauthSuccessTitle": "Přesměrování",
"loginOauthSuccessSubtitle": "Přesměrování k poskytovateli OAuth",
"loginOauthAutoRedirectTitle": "Automatické přesměrování OAuth",
"loginOauthAutoRedirectSubtitle": "You will be automatically redirected to your OAuth provider to authenticate.",
"loginOauthAutoRedirectButton": "Redirect now",
"loginOauthAutoRedirectSubtitle": "Pro ověření budete automaticky přesměrování na svého poskytovatele OAuth.",

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Locale entry:"
python3 - <<'PY'
import json
from pathlib import Path
p=Path('frontend/src/lib/i18n/locales/cs-CZ.json')
data=json.loads(p.read_text())
print(data.get('loginOauthAutoRedirectSubtitle'))
PY

echo
echo "Search for similar Czech localizations:"
rg -n '"loginOauthAutoRedirectSubtitle"|"přesměrován|přesměrováni|přesměrování|budete' frontend/src/lib/i18n/locales/cs-CZ.json frontend/src/lib/i18n/locales || true

Repository: tinyauthapp/tinyauth

Length of output: 5992


🌐 Web query:

Czech grammar passive participle after "budou" / "budete" "přesměrovaní" "přesměrováni"

💡 Result:

The correct form is "budete přesměrováni" (or "budou přesměrováni" depending on the subject). In Czech, the passive voice is formed using the auxiliary verb "být" (to be) followed by the passive participle of the main verb [1][2][3]. The passive participle must agree with the subject in gender and number [1][3]. For the verb "přesměrovat" (to redirect): - The passive participle form is "přesměrován" (masculine singular), "přesměrována" (feminine singular), "přesměrováno" (neuter singular), and "přesměrováni" (masculine animate plural) [1]. - When addressing a group of people (you, plural), the subject is "vy" (you), which requires the masculine animate plural form of the participle [4]. Therefore: - "Budete přesměrováni" (You will be redirected) is grammatically correct [3]. - "Budete přesměrovaní" is incorrect because "přesměrovaní" is not the passive participle form [1]. The form "přesměrovaní" (with a long 'í' at the end) typically functions as an adjective (meaning "redirected" as a descriptive state) or a noun form, whereas the passive participle for this verb ends in "-án/-áni" [1]. In the context of a future passive construction, the participle "přesměrováni" must be used [3].

Citations:


Correct the Czech participle form.

přesměrování is incorrect after budete. Use přesměrováni.

Proposed fix
-  "loginOauthAutoRedirectSubtitle": "Pro ověření budete automaticky přesměrování na svého poskytovatele OAuth.",
+  "loginOauthAutoRedirectSubtitle": "Pro ověření budete automaticky přesměrováni na svého poskytovatele OAuth.",
📝 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
"loginOauthAutoRedirectSubtitle": "Pro ověření budete automaticky přesměrování na svého poskytovatele OAuth.",
"loginOauthAutoRedirectSubtitle": "Pro ověření budete automaticky přesměrováni na svého poskytovatele OAuth.",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/lib/i18n/locales/cs-CZ.json` at line 18, Update the Czech
translation value for loginOauthAutoRedirectSubtitle to use the correct
participle form “přesměrováni” instead of “přesměrování”, preserving the rest of
the sentence unchanged.

"loginOauthAutoRedirectButton": "Přesměrovat nyní",
"continueTitle": "Pokračovat",
"continueRedirectingTitle": "Přesměrování...",
"continueRedirectingSubtitle": "Brzy budete přesměrováni do aplikace",
"continueRedirectManually": "Redirect me manually",
"continueRedirectManually": "Přesměrovat ručně",
"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?",
"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>{{cookieDomain}}</code>). Opravdu chcete pokračovat?",
"logoutFailTitle": "Odhlášení se nezdařilo",
"logoutFailSubtitle": "Zkuste to prosím znovu",
"logoutSuccessTitle": "Odhlášen",
Expand All @@ -51,53 +51,53 @@
"forgotPasswordTitle": "Zapomněli jste heslo?",
"failedToFetchProvidersTitle": "Nepodařilo se načíst poskytovatele ověřování. Zkontrolujte prosím konfiguraci.",
"errorTitle": "Došlo k chybě",
"errorSubtitleInfo": "The following error occurred while processing your request:",
"errorSubtitleInfo": "Při zpracování požadavku došlo k následující chybě:",
"errorSubtitle": "Nastala chyba při pokusu o provedení této akce. Pro více informací prosím zkontrolujte konzolu.",

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Preserve the complete error guidance.

errorSubtitle omits application logs. authorizeErrorInvalidParams omits the case where required parameters are missing. Keep these details consistent with the English locale.

Proposed wording
-  "errorSubtitle": "Nastala chyba při pokusu o provedení této akce. Pro více informací prosím zkontrolujte konzolu.",
+  "errorSubtitle": "Nastala chyba při pokusu o provedení této akce. Další informace najdete v konzoli prohlížeče nebo v protokolech aplikace.",
-  "authorizeErrorInvalidParams": "Parametry požadavku jsou chybné/neplatné. Prosím, zkontrolujte URL a zkuste znovu.",
+  "authorizeErrorInvalidParams": "Požadavek neobsahuje všechny povinné parametry nebo obsahuje neplatné parametry. Zkontrolujte URL a zkuste to znovu.",

Also applies to: 74-74

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/lib/i18n/locales/cs-CZ.json` at line 55, Update the Czech locale
entries errorSubtitle and authorizeErrorInvalidParams to preserve all error
guidance present in the English locale, including checking application logs and
the case where required parameters are missing. Keep the translations natural
Czech while matching the complete English meaning.

"forgotPasswordMessage": "Heslo můžete obnovit změnou proměnné `USERS`.",
"fieldRequired": "Toto pole je povinné",
"invalidInput": "Neplatný údaj",
"domainWarningTitle": "Invalid Domain",
"domainWarningSubtitle": "You are accessing this instance from an incorrect domain. If you proceed, you may encounter issues with authentication.",
"domainWarningCurrent": "Current:",
"domainWarningExpected": "Expected:",
"ignoreTitle": "Ignore",
"goToCorrectDomainTitle": "Go to correct domain",
"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...",
"domainWarningTitle": "Neplatná doména",
"domainWarningSubtitle": "Pro přístup k této instanci používáte špatnou doménu. Při pokračování mohou nastat problémy s autentizací.",
"domainWarningCurrent": "Aktuální:",
"domainWarningExpected": "Vyžadovaná:",

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Translate domainWarningExpected as “Expected”.

Vyžadovaná: means “Required:”. This changes the label’s meaning from the expected configured domain to a required domain. Use Očekávaná: or an equivalent Czech translation.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/lib/i18n/locales/cs-CZ.json` at line 62, Update the Czech locale
entry domainWarningExpected to use a translation meaning “Expected,” such as
“Očekávaná:”, instead of the current “Required:” meaning. Preserve the existing
label format and punctuation.

"ignoreTitle": "Ignorovat",
"goToCorrectDomainTitle": "Přejít na správnou doménu",
"authorizeTitle": "Autorizovat",
"authorizeCardTitle": "Pokračovat do {{app}}?",
"authorizeSubtitle": "Chcete pokračovat do této aplikace? Pečlivě si zkontrolujte jí vyžadovaná oprávnění, prosím.",
"authorizeSubtitleOAuth": "Chcete pokračovat do této aplikace?",
"authorizeLoadingTitle": "Načítání...",
"authorizeLoadingSubtitle": "Please wait while we load the client 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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Translate the remaining English values.

These keys still display English for Czech users. Add Czech translations for the loading, client-information error, OpenID scope, Tailscale login, and Tailscale logout messages. Preserve <code>{{deviceName}}</code> in logoutTailscaleSubtitle.

Also applies to: 73-73, 76-76, 89-89, 94-94

"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.",
"authorizeErrorInvalidParams": "The request is missing required parameters or has invalid parameters. Please check the URL and try again.",
"authorizeSuccessTitle": "Autorizováno",
"authorizeSuccessSubtitle": "Během několika vteřin budete přesměrováni do aplikace.",
"authorizeErrorClientInfo": "Při načítání klientských informací došlo k chybě. Zkuste to prosím později.",
"authorizeErrorInvalidParams": "Parametry požadavku jsou chybné/neplatné. Prosím, zkontrolujte URL a zkuste znovu.",
"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.",
"backToLoginButton": "Back to login",
"phoneScopeName": "Phone",
"phoneScopeDescription": "Allows the app to access your phone number.",
"addressScopeName": "Address",
"addressScopeDescription": "Allows the app to access your address.",
"loginTailscaleTitle": "Continue with Tailscale",
"openidScopeDescription": "Povolí aplikaci přístup k Vaším informacím OpenID Connect.",
"emailScopeName": "E-mail",
"emailScopeDescription": "Povolí aplikaci přístup k Vaší e-mailové adrese.",
"profileScopeName": "Profil",
"profileScopeDescription": "Povolí aplikaci přístup k informacím o Vašem profilu.",
"groupsScopeName": "Skupiny",
"groupsScopeDescription": "Povolí aplikaci přístup k informacím o Vaší skupině.",
"backToLoginButton": "Zpět na přihlášení",
"phoneScopeName": "Telefon",
"phoneScopeDescription": "Povolí aplikaci přístup k Vašemu telefonnímu číslu.",
"addressScopeName": "Adresa",
"addressScopeDescription": "Povolí aplikaci přístup k Vaší adrese.",
"loginTailscaleTitle": "Pokračovat přes Tailscale",
"loginTailscaleDescription": "You appear to be accessing Tinyauth from an authorized Tailscale device. Would you like to continue with your Tailscale connection?",
"loginTailscaleDeviceName": "Device name:",
"loginTailscaleOtherMethod": "Login with another method",
"loginTailscaleSuccess": "Successfully authenticated with Tailscale.",
"loginTailscaleFail": "Failed to authenticate with Tailscale. Please try again or use another login method.",
"loginTailscaleDeviceName": "Název zařízení:",
"loginTailscaleOtherMethod": "Přihlásit jinou metodou",
"loginTailscaleSuccess": "Úspěšně přihlášeno přes Tailscale.",
"loginTailscaleFail": "Chyba při přihlášení přes Tailscale. Zkuste znovu, případně se přihlašte jiným způsobem, prosím.",

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
python3 - <<'PY'
data='přihlašte'
import unicodedata
print('string:', data)
print('codepoints:', [f'{ord(c):04X} {unicodedata.name(c, "?")}' for c in data])
print('characters:', [(c, unicodedata.category(c), unicodedata.name(c,'?')) for c in data])
PY

Repository: tinyauthapp/tinyauth

Length of output: 840


🌐 Web query:

Czech imperative verb "přihlásit" second person plural "přihlaste" vs "přihlašte"

💡 Result:

The correct imperative form of the Czech verb "přihlásit" for the second person plural is "přihlaste" [1][2][3]. The spelling "přihlašte" is incorrect in standard Czech [1][2]. This is a common error stemming from the fact that other forms of the verb—such as the infinitive ("přihlásit"), the noun ("přihláška"), or the participle ("přihlášený")—contain the letter "š" [4]. However, in the imperative mood, the stem consonant does not undergo this change [5]. Therefore, the standard imperative forms are: - Singular: přihlas [1][5] - Plural: přihlaste [1][5] - First person plural: přihlasme [1][5] While some online sources may occasionally debate or mistakenly characterize the prevalence of these forms [4], "přihlaste" remains the established and strictly correct form according to the norms of standard Czech [1][2][3].

Citations:


Fix the Czech spelling in loginTailscaleFail.

The imperative should use přihlaste, not přihlašte.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@frontend/src/lib/i18n/locales/cs-CZ.json` at line 93, Update the
`loginTailscaleFail` Czech translation to use the correct imperative spelling
`přihlaste` instead of `přihlašte`, preserving the rest of the message
unchanged.

"logoutTailscaleSubtitle": "You are currently logged in with Tailscale on your device <code>{{deviceName}}</code>. Click the button below to logout.",
"quickActionsLanguage": "Language",
"quickActionsTheme": "Theme",
"quickActionsThemeLight": "Light",
"quickActionsThemeDark": "Dark",
"quickActionsThemeSystem": "System",
"quickActionsLogout": "Logout",
"quickActionsLanguage": "Jazyk",
"quickActionsTheme": "Motiv",
"quickActionsThemeLight": "Světlý",
"quickActionsThemeDark": "Tmavý",
"quickActionsThemeSystem": "Systémový",
"quickActionsLogout": "Odhlásit se",
"quickActionsTitle": "Quick Actions",
"quickActionsProviderLocal": "Local",
"quickActionsProviderLDAP": "LDAP",
Expand Down