-
Notifications
You must be signed in to change notification settings - Fork 419
feat(localizations): Add all translations for taskChooseOrganization #7468
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(localizations): Add all translations for taskChooseOrganization #7468
Conversation
🦋 Changeset detectedLatest commit: c84dae3 The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
WalkthroughPopulate previously undefined localization strings for taskChooseOrganization across many locale files and add a changeset recording a patch release; all edits are value updates (translations) only, with no code or control-flow changes. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this 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 (1)
packages/localizations/src/es-UY.ts (1)
855-875: es-UY taskChooseOrganization translations look correct; optional style tweak
- Keys for
chooseOrganization,createOrganization, andsignOutare now fully translated; interpolation ({{identifier}}) is preserved and consistent.- Copy matches the rest of the product and other Spanish locales.
Optional: for dialect consistency with existing es-UY strings (e.g.,
organizationList.title: 'Elegí una cuenta'), you could changetitle: 'Elegir una organización'totitle: 'Elegí una organización', and similarly considerElegíinstead ofElegirelsewhere in this block.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (5)
.changeset/nice-showers-search.md(1 hunks)packages/localizations/src/es-CR.ts(1 hunks)packages/localizations/src/es-ES.ts(1 hunks)packages/localizations/src/es-MX.ts(1 hunks)packages/localizations/src/es-UY.ts(1 hunks)
🧰 Additional context used
📓 Path-based instructions (10)
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
All code must pass ESLint checks with the project's configuration
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
**/*.{js,jsx,ts,tsx,json,md,yml,yaml}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use Prettier for consistent code formatting
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
packages/**/src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
TypeScript is required for all packages
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Follow established naming conventions (PascalCase for components, camelCase for variables)
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
packages/**/src/**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
packages/**/src/**/*.{ts,tsx,js,jsx}: Maintain comprehensive JSDoc comments for public APIs
Use tree-shaking friendly exports
Validate all inputs and sanitize outputs
All public APIs must be documented with JSDoc
Use dynamic imports for optional features
Provide meaningful error messages to developers
Include error recovery suggestions where applicable
Log errors appropriately for debugging
Lazy load components and features when possible
Implement proper caching strategies
Use efficient data structures and algorithms
Implement proper logging with different levels
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
**/*.ts?(x)
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use proper TypeScript error types
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)
**/*.{ts,tsx}: Always define explicit return types for functions, especially public APIs
Use proper type annotations for variables and parameters where inference isn't clear
Avoidanytype - preferunknownwhen type is uncertain, then narrow with type guards
Implement type guards forunknowntypes using the patternfunction isType(value: unknown): value is Type
Useinterfacefor object shapes that might be extended
Usetypefor unions, primitives, and computed types
Preferreadonlyproperties for immutable data structures
Useprivatefor internal implementation details in classes
Useprotectedfor inheritance hierarchies
Usepublicexplicitly for clarity in public APIs
Use mixins for shared behavior across unrelated classes in TypeScript
Use generic constraints with bounded type parameters like<T extends { id: string }>
Use utility types likeOmit,Partial, andPickfor data transformation instead of manual type construction
Use discriminated unions instead of boolean flags for state management and API responses
Use mapped types for transforming object types
Use conditional types for type-level logic
Leverage template literal types for string manipulation at the type level
Use ES6 imports/exports consistently
Use default exports sparingly, prefer named exports
Document functions with JSDoc comments including @param, @returns, @throws, and @example tags
Create custom error classes that extend Error for specific error types
Use the Result pattern for error handling instead of throwing exceptions
Use optional chaining (?.) and nullish coalescing (??) operators for safe property access
Let TypeScript infer obvious types to reduce verbosity
Useconst assertionswithas constfor literal types
Usesatisfiesoperator for type checking without widening types
Declare readonly arrays and objects for immutable data structures
Use spread operator and array spread for immutable updates instead of mutations
Use lazy loading for large types...
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
**/*.{js,ts,jsx,tsx}
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Use ESLint with custom configurations tailored for different package types
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
**/*.{js,ts,jsx,tsx,json,md,yml,yaml}
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Use Prettier for code formatting across all packages
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
packages/localizations/**/*
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Organize localization translations in
packages/localizations/with support for 30+ languages and RTL language support
Files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
🧠 Learnings (1)
📚 Learning: 2025-12-12T19:54:17.554Z
Learnt from: wobsoriano
Repo: clerk/javascript PR: 7447
File: packages/localizations/src/en-US.ts:904-905
Timestamp: 2025-12-12T19:54:17.554Z
Learning: In Clerk's JavaScript localization files (packages/localizations/src/*.ts), undefined values for localization keys are intentional and should not be flagged as issues. When a key is undefined, the system uses the default message from the API response as a fallback. Do not flag these as errors; preserve this expected behavior.
Applied to files:
packages/localizations/src/es-MX.tspackages/localizations/src/es-CR.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-ES.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (4)
.changeset/nice-showers-search.md (1)
1-5: Changeset metadata matches the localization update scopePackage name, bump type (patch), and summary line all align with the added Spanish translations for
taskChooseOrganization. No changes needed.packages/localizations/src/es-CR.ts (1)
855-875: es-CR taskChooseOrganization translations and placeholders look goodThe new strings for
chooseOrganization,createOrganization, andsignOutread naturally, match the existing es-CR tone, and keep the{{identifier}}placeholder intact. No changes needed.packages/localizations/src/es-MX.ts (1)
856-876: es-MX taskChooseOrganization translations are consistent and safeAll added strings for
chooseOrganization,createOrganization, andsignOutpreserve placeholders, match existing es-MX wording patterns, and align semantically with other locales. No further adjustments needed.packages/localizations/src/es-ES.ts (1)
849-869: es-ES taskChooseOrganization copy aligns with existing locale usageThe added translations for
chooseOrganization,createOrganization, andsignOutare clear, consistent with the rest of es-ES, and keep the{{identifier}}interpolation intact. Nothing to change here.
tmilewski
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jigar-clerk 🙃 Can we use Cursor to fill out the other languages such that they don't return English?
@clerk/agent-toolkit
@clerk/astro
@clerk/backend
@clerk/chrome-extension
@clerk/clerk-js
@clerk/dev-cli
@clerk/expo
@clerk/expo-passkeys
@clerk/express
@clerk/fastify
@clerk/localizations
@clerk/nextjs
@clerk/nuxt
@clerk/react
@clerk/react-router
@clerk/shared
@clerk/tanstack-react-start
@clerk/testing
@clerk/ui
@clerk/upgrade
@clerk/vue
commit: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
🧹 Nitpick comments (20)
packages/localizations/src/nb-NO.ts (1)
847-866: taskChooseOrganization Norwegian translations look correct; only a tiny optional copy nitThe new strings under
taskChooseOrganization.chooseOrganization,.createOrganization, and.signOutread naturally, preserve the{{identifier}}placeholder correctly, and match the likely English intent (join/create org, continue/cancel flows). No type or structural issues.If you care about micro-copy consistency, you might align
signOut.actionText: 'Innlogget som {{identifier}}'with the earlierimpersonationFab.title: 'Logget inn som {{identifier}}'so they use the same phrasing across the UI, but this is purely stylistic.packages/localizations/src/nl-BE.ts (1)
846-854: Copy fortaskChooseOrganization.chooseOrganizationlooks good; consider tiny wording alignmentThe translations are natural and consistent with the rest of the nl-BE file, and variable usage is correct.
Optionally, for copy consistency with
organizationList, you could reuse similar wording:
action__invitationAccept:'Toetreden'instead of'Deelnemen'action__suggestionsAccept:'Verzoek om toetreden'instead of'Verzoek om deel te nemen'Only change this if you prefer strict UI copy alignment across flows.
packages/localizations/src/en-GB.ts (1)
858-865: Create‑organisation step is well wired; optional copy tweakThe new labels/placeholders and buttons are consistent with the rest of en‑GB (spelling and tone). One optional polish: consider changing
"Setup your organisation"to"Set up your organisation"since “set up” is the verb phrase, but this is purely editorial.packages/localizations/src/hr-HR.ts (1)
848-870: Translations are correct; consider minor consistency and tone tweaksThe new
taskChooseOrganizationCroatian strings look accurate and natural, and they align with the intended flow (choosing / creating an org and signing out). No functional or typing issues.Two optional nits for consistency and tone:
Verb consistency for “create organization”
Elsewhere in this file the “create organization” actions use „Kreiraj organizaciju“ (e.g.organizationList.action__createOrganization,organizationSwitcher.action__createOrganization,createOrganization.title). Here you use „Stvori novu organizaciju“. Consider unifying on one verb (e.g.Kreiraj novu organizaciju) across the file for a more consistent UX copy.Gender‑neutral sign‑in text
signOut.actionText: 'Prijavljen kao {{identifier}}'is grammatically masculine. To be gender‑neutral and consistent withimpersonationFab.title: 'Prijavljeni ste kao {{identifier}}', you might preferPrijavljeni kao {{identifier}}.These are purely stylistic; fine to defer if you’re matching an existing glossary. Based on learnings, undefined keys elsewhere in the file are expected and don’t need changes.
packages/localizations/src/uk-UA.ts (1)
844-866: LGTM! Structural implementation is correct.The Ukrainian translations for
taskChooseOrganizationare properly structured with correct template literal syntax and TypeScript typing. All three sub-sections (chooseOrganization,createOrganization,signOut) are now populated with Ukrainian strings following the established pattern.Optional: Consider having a native Ukrainian speaker verify the translation accuracy and natural phrasing, though the technical implementation is sound.
packages/localizations/src/sk-SK.ts (1)
852-873: Translations look good; consider aligning wording with existing occurrences of the same actionsThe new
taskChooseOrganizationSlovak strings are clear, preserve interpolation ({{identifier}}), and match the feature semantics.For consistency with other parts of this locale (e.g.
organizationListandorganizationSwitcher), you might want to reuse the same verbs for the same actions:
Existing:
organizationList.action__invitationAccept:'Pripojiť sa'organizationList.action__suggestionsAccept:'Požiadať o pripojenie'organizationSwitcher.action__invitationAccept:'Pripojiť sa'organizationSwitcher.action__suggestionsAccept:'Požiadať o pripojenie'New here:
action__invitationAccept: 'Pridať sa'action__suggestionsAccept: 'Požiadať o pridanie'If you want everything to read the same across the UI, you could apply:
taskChooseOrganization: { chooseOrganization: { - action__createOrganization: 'Vytvoriť novú organizáciu', - action__invitationAccept: 'Pridať sa', - action__suggestionsAccept: 'Požiadať o pridanie', + action__createOrganization: 'Vytvoriť novú organizáciu', + action__invitationAccept: 'Pripojiť sa', + action__suggestionsAccept: 'Požiadať o pripojenie', subtitle: 'Pridajte sa k existujúcej organizácii alebo vytvorte novú', suggestionsAcceptedLabel: 'Čaká na schválenie', title: 'Vyberte organizáciu', },Purely a consistency/nitpick suggestion; current wording is acceptable as-is.
packages/localizations/src/ru-RU.ts (1)
860-879: Translations look good; only a tiny optional copy tweak for titleThe new
taskChooseOrganizationstrings are idiomatic Russian and consistent with neighboring keys (organizationList,organizationSwitcher), including reuse of “Присоединиться”, “Запросить присоединение” and “Ожидает одобрения”, plus the Latin slug placeholder.If you want stricter consistency with other titles like
organizationList.titleWithoutPersonal: 'Выбрать организацию'andsignIn.accountSwitcher.title: 'Выбрать учетную запись', you could optionally changetitle: 'Выберите организацию'totitle: 'Выбрать организацию', but the current wording is also acceptable.packages/localizations/src/be-BY.ts (1)
852-873: taskChooseOrganization Belarusian translations look correct; optionally align phrasing with existing keysThe new strings under
taskChooseOrganization.chooseOrganization,.createOrganization, and.signOutread well, use the correct{{identifier}}placeholder, and are consistent with the rest of the be-BY locale. From a typing/structure perspective this is a no-op and should be safe to ship.If you want to polish further, you could optionally:
- Reuse or closely mirror existing wording from
createOrganization.formButtonSubmitandorganizationList.action__createOrganization(e.g., decide between “Стварыць арганізацыю” vs “Стварыць новую арганізацыю” for button/CTA text).- Ensure the “join” / “request to join” phrases here match whatever phrasing you eventually use for the
organizationListblock, so users see the same language across both flows.This is purely a consistency nit; functionally the changes are solid.
packages/localizations/src/ko-KR.ts (1)
849-856: Consider refining slug placeholder/label for clarityThe behavior is correct, but two minor UX/i18n nits you may want to adjust:
formFieldInputPlaceholder__slug: 'nae-jigug'uses a romanized phrase that doesn’t clearly map to “내 조직” or a typical example slug. Consider a more obvious example likemy-organization,nae-jojig, or another simple ASCII-friendly slug that Korean users will immediately recognize as an example.formFieldLabel__slug: 'Slug'is the only English label in this block; depending on your audience, you might want to localize it or add explanatory copy elsewhere so non-technical users understand what a slug is.These are cosmetic; current strings are acceptable if you prefer them as-is.
packages/localizations/src/ta-IN.ts (2)
855-860: Unify Tamil term for “organization” and reuse existing approval label phrasingIn this block you’ve switched to “அமைப்பு” while the rest of the file (e.g.,
organizationList,organizationProfile) consistently uses “நிறுவனம்`. For clarity and consistency across the UI, consider aligning these to the same term, and reusing the existing “ஒப்புதல் நிலுவையில் உள்ளது” phrasing for the pending-approval label:- action__createOrganization: 'புதிய அமைப்பை உருவாக்கவும்', + action__createOrganization: 'புதிய நிறுவனத்தை உருவாக்கு', @@ - subtitle: 'இருக்கும் அமைப்பில் சேரவும் அல்லது புதியதை உருவாக்கவும்', + subtitle: 'இருக்கும் நிறுவனத்தில் சேரவும் அல்லது புதிதை உருவாக்கவும்', @@ - suggestionsAcceptedLabel: 'அனுமதிக்காக காத்திருக்கிறது', + suggestionsAcceptedLabel: 'ஒப்புதல் நிலுவையில் உள்ளது', @@ - title: 'ஒரு அமைப்பைத் தேர்ந்தெடுக்கவும்', + title: 'ஒரு நிறுவனத்தைத் தேர்ந்தெடுக்கவும்',
863-870: Align “Cancel” wording and slug translations with existing conventions in this localeNice additions here. To keep things consistent with the rest of
ta-IN:
- “Cancel” elsewhere uses
'ரத்து செய்', not'ரத்துசெய்'.- Slug label is already localized as “சிறப்புக்குறி” in other org-related fields.
- The sample slug placeholder currently mixes Latin script (
enathu-amaippu), whereas other examples (e.g.,formFieldInputPlaceholder__organizationSlug) use Tamil (எனது-நிறுவனம்).Consider:
- formButtonReset: 'ரத்துசெய்', + formButtonReset: 'ரத்து செய்', @@ - formFieldInputPlaceholder__slug: 'enathu-amaippu', + formFieldInputPlaceholder__slug: 'எனது-நிறுவனம்', @@ - formFieldLabel__slug: 'Slug', + formFieldLabel__slug: 'சிறப்புக்குறி',packages/localizations/src/ca-ES.ts (1)
846-868: Align taskChooseOrganization Catalan copy with existing ca-ES tone and nearby stringsThe new strings are valid Catalan, but they mix infinitive vs imperative (
Crear/Unir-se/Sol·licitar) and plural/formal forms (Introduïu,Configureu,Uniu-vos) while the rest ofca-ESmostly uses 2nd person singular imperatives and already-established translations for the same actions just above underorganizationList. To keep tone and wording consistent across this locale, consider reusing those existing forms and aligning the new ones:taskChooseOrganization: { chooseOrganization: { - action__createOrganization: 'Crear nova organització', - action__invitationAccept: 'Unir-se', - action__suggestionsAccept: 'Sol·licitar unir-se', - subtitle: 'Uniu-vos a una organització existent o creeu-ne una de nova', - suggestionsAcceptedLabel: "Pendent d'aprovació", - title: 'Trieu una organització', + // Reuse wording from organizationList for consistency + action__createOrganization: 'Crea organització', + action__invitationAccept: 'Uneix-te', + action__suggestionsAccept: 'Sol·licita unir-te', + // Keep 2nd person singular like most of the file + subtitle: "Uneix-te a una organització existent o crea'n una de nova", + suggestionsAcceptedLabel: "Pendent d'aprovació", + title: 'Trieu una organització', }, createOrganization: { - formButtonReset: 'Cancel·lar', - formButtonSubmit: 'Continuar', + // Match other buttons like `formButtonReset: 'Cancel·la'` and `...continue: 'Continua'` + formButtonReset: 'Cancel·la', + formButtonSubmit: 'Continua', formFieldInputPlaceholder__name: 'La meva organització', formFieldInputPlaceholder__slug: 'la-meva-organitzacio', formFieldLabel__name: 'Nom', formFieldLabel__slug: 'Slug', - subtitle: 'Introduïu els detalls de la vostra organització per continuar', - title: 'Configureu la vostra organització', + subtitle: 'Introdueix les dades de la teva organització per continuar', + title: 'Configura la teva organització', }, signOut: { - actionLink: 'Tancar sessió', - actionText: 'Sessió iniciada com a {{identifier}}', + // Align with `userButton.action__signOut: 'Tanca sessió'` + actionLink: 'Tanca sessió', + actionText: 'Sessió iniciada com a {{identifier}}', }, },If you prefer to keep the plural/formal voice, an alternative would be to update the older strings (e.g.
Crea organització,Uneix-te) in a follow-up so the entire locale is consistent in one direction.packages/localizations/src/hi-IN.ts (2)
852-858: Minor wording/consistency tweaks forchooseOrganizationblockThe translations read well, but there are two small consistency nits against the rest of
hi-IN:
- Other keys use “बनाएँ” for “create” (e.g.,
createOrganization.formButtonSubmit,organizationList.action__createOrganization,organizationSwitcher.action__createOrganization), while this one uses “बनाएं”.suggestionsAcceptedLabelelsewhere in this file uses “अनुमोदन के लिए लंबित” (organization list + switcher), but here it’s “अनुमोदन की प्रतीक्षा”.If you want everything to feel uniform, consider:
- action__createOrganization: 'नया संगठन बनाएं', + action__createOrganization: 'नया संगठन बनाएँ', @@ - suggestionsAcceptedLabel: 'अनुमोदन की प्रतीक्षा', + suggestionsAcceptedLabel: 'अनुमोदन के लिए लंबित',
861-868: Alignsluglabel with existing hi-IN terminology
formFieldLabel__slugis currently left as English “Slug”, while the rest of this locale already uses the transliterated Hindi “स्लग” (seeformFieldLabel__organizationSlugearlier in the file). For consistency in the same UI, you likely want:- formFieldLabel__slug: 'Slug', + formFieldLabel__slug: 'स्लग',packages/localizations/src/he-IL.ts (1)
837-859: LGTM! Hebrew translations look appropriate.The Hebrew translations for the
taskChooseOrganizationfeature have been properly added. All strings are grammatically correct, contextually appropriate, and follow the expected structure for localization files. The changes align with the pattern established across other locale files in this PR.Optional: Minor style inconsistency
Line 858 uses
'מחובר כ-{{identifier}}'(with hyphen), while line 258 has'מחובר כ{{identifier}}'(without hyphen). In Hebrew, the prefix כ (meaning "as") typically doesn't require a hyphen before a variable. Consider standardizing for consistency, though both forms are readable.packages/localizations/src/sv-SE.ts (1)
851-856: Consider harmonizing terminology with organizationList for consistency.The translations use slightly different phrasing compared to similar strings in
organizationList(lines 266-276):
- Line 853: 'Begär att gå med' vs line 269: 'Be om att gå med'
- Line 855: 'Väntar på godkännande' vs line 273: 'Väntar godkännande'
While both phrasings are correct Swedish, using consistent terminology across similar UI contexts can improve user familiarity. This may be intentional due to different contexts, but worth verifying.
packages/localizations/src/sr-RS.ts (2)
846-851: Consider aligning formality level and terminology with existing translations.The translations in this section have two consistency concerns:
Formality level: Lines 849 and 851 use formal "vi" form ("Pridružite se", "napravite", "Izaberite") while the rest of the file consistently uses informal "ti" form (e.g., "prijavi se" at line 742, "Izaberi" at lines 273-274).
Terminology: Line 846 uses "Napravi novu organizaciju" but the same key
action__createOrganizationis translated as "Kreiraj organizaciju" elsewhere (lines 182, 266, 269, 498).For a consistent user experience, consider:
- Using informal forms: "Izaberi organizaciju" (line 851), "Pridruži se ... ili napravi novu" (line 849)
- Aligning terminology: "Kreiraj novu organizaciju" or just "Kreiraj organizaciju" (line 846) to match existing usage
Apply this diff to align with existing conventions:
- action__createOrganization: 'Napravi novu organizaciju', + action__createOrganization: 'Kreiraj organizaciju', action__invitationAccept: 'Pridruži se', action__suggestionsAccept: 'Zatraži pridruživanje', - subtitle: 'Pridružite se postojećoj organizaciji ili napravite novu', + subtitle: 'Pridruži se postojećoj organizaciji ili napravi novu', suggestionsAcceptedLabel: 'Čeka odobrenje', - title: 'Izaberite organizaciju', + title: 'Izaberi organizaciju',
854-861: Align formality level with the rest of the file.Lines 860-861 use formal "vi" form ("Unesite podatke", "Podesite svoju") while the file consistently uses informal "ti" form elsewhere (e.g., "Unesi verifikacioni kod" at lines 766, 769).
Apply this diff to maintain consistent formality:
- subtitle: 'Unesite podatke o svojoj organizaciji za nastavak', - title: 'Podesite svoju organizaciju', + subtitle: 'Unesi podatke o svojoj organizaciji za nastavak', + title: 'Podesi svoju organizaciju',packages/localizations/src/id-ID.ts (1)
853-860: Consider aligning “Bergabung” with existing “Gabung” wording for this action
action__invitationAccepthere uses'Bergabung', while the same key underorganizationListuses'Gabung'. For a consistent user experience, consider reusing'Gabung'here as well; the rest of this block looks good and idiomatic.packages/localizations/src/zh-TW.ts (1)
836-841: Use consistent Traditional Chinese terminology.The translations are mostly correct, but Line 840 should use '等待核准' instead of '等待批准' for consistency. The character 准 is Simplified Chinese; Traditional Chinese should use 準. More importantly, Line 271 (
organizationList.suggestionsAcceptedLabel) already uses '待核准', so this line should follow the same terminology for consistency.Apply this diff:
- suggestionsAcceptedLabel: '等待批准', + suggestionsAcceptedLabel: '等待核准',
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (37)
.changeset/nice-showers-search.md(1 hunks)packages/localizations/src/ar-SA.ts(1 hunks)packages/localizations/src/be-BY.ts(1 hunks)packages/localizations/src/bg-BG.ts(1 hunks)packages/localizations/src/bn-IN.ts(1 hunks)packages/localizations/src/ca-ES.ts(1 hunks)packages/localizations/src/cs-CZ.ts(1 hunks)packages/localizations/src/da-DK.ts(1 hunks)packages/localizations/src/el-GR.ts(1 hunks)packages/localizations/src/en-GB.ts(1 hunks)packages/localizations/src/fi-FI.ts(1 hunks)packages/localizations/src/he-IL.ts(1 hunks)packages/localizations/src/hi-IN.ts(1 hunks)packages/localizations/src/hr-HR.ts(1 hunks)packages/localizations/src/hu-HU.ts(1 hunks)packages/localizations/src/id-ID.ts(1 hunks)packages/localizations/src/is-IS.ts(1 hunks)packages/localizations/src/it-IT.ts(1 hunks)packages/localizations/src/kk-KZ.ts(1 hunks)packages/localizations/src/ko-KR.ts(1 hunks)packages/localizations/src/mn-MN.ts(1 hunks)packages/localizations/src/ms-MY.ts(1 hunks)packages/localizations/src/nb-NO.ts(1 hunks)packages/localizations/src/nl-BE.ts(1 hunks)packages/localizations/src/nl-NL.ts(1 hunks)packages/localizations/src/pt-PT.ts(1 hunks)packages/localizations/src/ru-RU.ts(1 hunks)packages/localizations/src/sk-SK.ts(1 hunks)packages/localizations/src/sr-RS.ts(1 hunks)packages/localizations/src/sv-SE.ts(1 hunks)packages/localizations/src/ta-IN.ts(1 hunks)packages/localizations/src/te-IN.ts(1 hunks)packages/localizations/src/tr-TR.ts(1 hunks)packages/localizations/src/uk-UA.ts(1 hunks)packages/localizations/src/vi-VN.ts(1 hunks)packages/localizations/src/zh-CN.ts(1 hunks)packages/localizations/src/zh-TW.ts(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
- .changeset/nice-showers-search.md
🧰 Additional context used
📓 Path-based instructions (10)
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
All code must pass ESLint checks with the project's configuration
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
**/*.{js,jsx,ts,tsx,json,md,yml,yaml}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use Prettier for consistent code formatting
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
packages/**/src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
TypeScript is required for all packages
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Follow established naming conventions (PascalCase for components, camelCase for variables)
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
packages/**/src/**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
packages/**/src/**/*.{ts,tsx,js,jsx}: Maintain comprehensive JSDoc comments for public APIs
Use tree-shaking friendly exports
Validate all inputs and sanitize outputs
All public APIs must be documented with JSDoc
Use dynamic imports for optional features
Provide meaningful error messages to developers
Include error recovery suggestions where applicable
Log errors appropriately for debugging
Lazy load components and features when possible
Implement proper caching strategies
Use efficient data structures and algorithms
Implement proper logging with different levels
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
**/*.ts?(x)
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use proper TypeScript error types
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)
**/*.{ts,tsx}: Always define explicit return types for functions, especially public APIs
Use proper type annotations for variables and parameters where inference isn't clear
Avoidanytype - preferunknownwhen type is uncertain, then narrow with type guards
Implement type guards forunknowntypes using the patternfunction isType(value: unknown): value is Type
Useinterfacefor object shapes that might be extended
Usetypefor unions, primitives, and computed types
Preferreadonlyproperties for immutable data structures
Useprivatefor internal implementation details in classes
Useprotectedfor inheritance hierarchies
Usepublicexplicitly for clarity in public APIs
Use mixins for shared behavior across unrelated classes in TypeScript
Use generic constraints with bounded type parameters like<T extends { id: string }>
Use utility types likeOmit,Partial, andPickfor data transformation instead of manual type construction
Use discriminated unions instead of boolean flags for state management and API responses
Use mapped types for transforming object types
Use conditional types for type-level logic
Leverage template literal types for string manipulation at the type level
Use ES6 imports/exports consistently
Use default exports sparingly, prefer named exports
Document functions with JSDoc comments including @param, @returns, @throws, and @example tags
Create custom error classes that extend Error for specific error types
Use the Result pattern for error handling instead of throwing exceptions
Use optional chaining (?.) and nullish coalescing (??) operators for safe property access
Let TypeScript infer obvious types to reduce verbosity
Useconst assertionswithas constfor literal types
Usesatisfiesoperator for type checking without widening types
Declare readonly arrays and objects for immutable data structures
Use spread operator and array spread for immutable updates instead of mutations
Use lazy loading for large types...
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
**/*.{js,ts,jsx,tsx}
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Use ESLint with custom configurations tailored for different package types
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
**/*.{js,ts,jsx,tsx,json,md,yml,yaml}
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Use Prettier for code formatting across all packages
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
packages/localizations/**/*
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Organize localization translations in
packages/localizations/with support for 30+ languages and RTL language support
Files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
🧠 Learnings (1)
📚 Learning: 2025-12-12T19:54:17.554Z
Learnt from: wobsoriano
Repo: clerk/javascript PR: 7447
File: packages/localizations/src/en-US.ts:904-905
Timestamp: 2025-12-12T19:54:17.554Z
Learning: In Clerk's JavaScript localization files (packages/localizations/src/*.ts), undefined values for localization keys are intentional and should not be flagged as issues. When a key is undefined, the system uses the default message from the API response as a fallback. Do not flag these as errors; preserve this expected behavior.
Applied to files:
packages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/it-IT.tspackages/localizations/src/nb-NO.tspackages/localizations/src/zh-CN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/ta-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/sk-SK.tspackages/localizations/src/sr-RS.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/ko-KR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/nl-NL.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ms-MY.tspackages/localizations/src/is-IS.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/he-IL.tspackages/localizations/src/te-IN.tspackages/localizations/src/ar-SA.tspackages/localizations/src/nl-BE.tspackages/localizations/src/id-ID.tspackages/localizations/src/ca-ES.tspackages/localizations/src/ru-RU.tspackages/localizations/src/da-DK.tspackages/localizations/src/pt-PT.tspackages/localizations/src/be-BY.tspackages/localizations/src/mn-MN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/sv-SE.tspackages/localizations/src/en-GB.tspackages/localizations/src/el-GR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/vi-VN.tspackages/localizations/src/fi-FI.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (19)
- GitHub Check: Unit Tests (**)
- GitHub Check: Static analysis
- GitHub Check: Integration Tests (nextjs, chrome, 16)
- GitHub Check: Integration Tests (billing, chrome, RQ)
- GitHub Check: Integration Tests (quickstart, chrome, 16)
- GitHub Check: Integration Tests (machine, chrome)
- GitHub Check: Integration Tests (machine, chrome, RQ)
- GitHub Check: Integration Tests (nextjs, chrome, 15)
- GitHub Check: Integration Tests (nextjs, chrome, 16, RQ)
- GitHub Check: Integration Tests (quickstart, chrome, 15)
- GitHub Check: Integration Tests (billing, chrome)
- GitHub Check: Integration Tests (custom, chrome)
- GitHub Check: Integration Tests (astro, chrome)
- GitHub Check: Integration Tests (sessions, chrome)
- GitHub Check: Integration Tests (localhost, chrome)
- GitHub Check: Integration Tests (ap-flows, chrome)
- GitHub Check: Integration Tests (sessions:staging, chrome)
- GitHub Check: Integration Tests (generic, chrome)
- GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (54)
packages/localizations/src/tr-TR.ts (3)
849-854: taskChooseOrganization.chooseOrganization Turkish copy looks consistentAction labels, subtitle, and title use natural Turkish and match existing organizationList phrasing (
Katıl,Katılım iste,Onay bekleniyor, “Bir organizasyon seçin”). No issues from a localization or placeholder perspective.
857-864: createOrganization labels and placeholders align with existing patterns
İptal/Devam etbutton texts and the “Organizasyonum/organizasyonum” placeholders are clear and consistent with other organization-related fields (e.g., organization name/slug copy) in this file. No technical or copy concerns.
867-868: signOut strings correctly reuse identifier pattern
Çıkış yapmatches other sign‑out actions, and{{identifier}} olarak giriş yapıldıreuses the same pattern asimpersonationFab.title, keeping behavior and interpolation consistent while leaving unrelated keys undefined as expected. Based on learnings, this is correct.packages/localizations/src/nl-BE.ts (2)
855-864:taskChooseOrganization.createOrganizationtranslations are consistent and clearButton labels, placeholders, and title/subtitle read well and match established patterns:
formButtonReset: 'Annuleren'andformButtonSubmit: 'Doorgaan'are in line with other forms.- Use of
Naam/Slugand example values ('Mijn organisatie','mijn-organisatie') is clear for users.No changes needed from a localization or implementation standpoint.
865-868:taskChooseOrganization.signOutaligns with existing sign-out phrasing
actionLink: 'Uitloggen'matches other sign-out actions in this locale.actionText: 'Ingelogd als {{identifier}}'is consistent withimpersonationFab.title.Looks correct and ready to merge.
packages/localizations/src/mn-MN.ts (3)
847-853:taskChooseOrganization.chooseOrganizationtranslations look correct and consistentKeys and values match existing organization-related phrasing (
Байгууллага үүсгэх,Нэгдэх, etc.), no missing or malformed placeholders, and punctuation/casing are consistent with the rest of the file.
855-863:taskChooseOrganization.createOrganizationcopy aligns with existing patternsButton labels, placeholders, and labels reuse established wording from other organization-creation strings in this locale; the slug placeholder and title/subtitle are coherent and idiomatic.
865-867:taskChooseOrganization.signOutstrings are accurate and reuse existing sign-out phrasing
actionLinkmatches other “sign out” translations andactionTextcorrectly preserves the{{identifier}}placeholder with natural Mongolian phrasing.packages/localizations/src/da-DK.ts (1)
846-865: PR description indicates Spanish translations, but Danish translations were added.The PR title states "Add translations in Spanish for taskChooseOrganization" and the description mentions "Adds Spanish translations," but this file (
da-DK.ts) contains Danish localization strings, and the newly added translations (lines 846-865) are in Danish, not Spanish.Please verify:
- Is the PR description incorrect and this change is intentional for Danish?
- Or should these translations be added to a Spanish localization file instead (e.g.,
es-ES.ts)?packages/localizations/src/en-GB.ts (2)
850-855: taskChooseOrganization.chooseOrganization copy looks consistent and correctStrings are clear, use the expected en‑GB “organisation” spelling, and align with existing patterns like
organizationList(e.g., “Pending approval”, “Choose an organisation”). No issues from a localization or structure perspective.
868-869: Sign‑out strings are consistent with existing patterns
actionLinkandactionTextmirror other usages in this file (e.g.,impersonationFab.title) and correctly use the{{identifier}}placeholder. Looks good.packages/localizations/src/fi-FI.ts (3)
848-855: taskChooseOrganization.chooseOrganization translations are consistent and structurally correctThe Finnish strings read naturally, reuse existing phrasing from
organizationList(e.g., “Liity”, “Odottaa hyväksyntää”, “Valitse organisaatio”), and preserve the placeholder set without changes. No issues from a localization or typing perspective; other task keys remainingundefinedis fine since they fall back to API defaults. Based on learnings, this is the expected behavior.
857-864: taskChooseOrganization.createOrganization copy aligns with existing UI wordingButton labels (
Peruuta,Jatka) and field labels/placeholders match the rest of the Finnish locale (e.g., other form sections), and the subtitle/title accurately convey “set up your organization”. Object shape and key names are unchanged; only values are populated, which looks correct.
867-868: taskChooseOrganization.signOut reuses established sign-out phrasing
actionLinkandactionTextmirror existing Finnish strings (e.g.,impersonationFab.title), including the{{identifier}}placeholder, ensuring consistent UX across components with no structural changes.packages/localizations/src/el-GR.ts (3)
849-856: LGTM! Greek translations properly added.The Greek translations for the
chooseOrganizationsection are accurate and follow the established patterns in this localization file.
857-866: LGTM! Organization creation form translations are correct.The Greek translations for the
createOrganizationsection are accurate. Appropriately keeps "Slug" as a technical term while providing a transliterated Greek placeholder.
867-870: LGTM! Sign-out translations are consistent.The Greek translations for the
signOutsection correctly preserve the template variable{{identifier}}and are consistent with other sign-out translations throughout the file.packages/localizations/src/pt-PT.ts (1)
845-866: taskChooseOrganization translations are correctly wired and consistentThe new strings for
chooseOrganization,createOrganization, andsignOutuse appropriate European Portuguese, keep the{{identifier}}placeholder intact, and match existing organization-related terminology in this locale (e.g.,organizationList,organizationSwitcher,impersonationFab). No structural or typing issues detected.packages/localizations/src/it-IT.ts (3)
856-861: LGTM! Translations are consistent and well-formatted.The Italian translations for the
chooseOrganizationsection are consistent with existing translations inorganizationList(lines 275-282) and properly formatted with correct Italian grammar.
864-871: LGTM! Form translations follow established patterns.The translations for the
createOrganizationform section are consistent with existing form field patterns throughout the file and use appropriate Italian terminology for organizational setup flows.
874-875: LGTM! Sign-out translations with correct interpolation.The translations are appropriate, and the interpolation syntax
{{identifier}}is correctly formatted and consistent with other dynamic strings throughout the file (e.g., line 266).packages/localizations/src/cs-CZ.ts (1)
857-880: LGTM! Translations are consistent and well-structured.The Czech translations for the
taskChooseOrganizationsection follow established patterns within the file and reuse consistent terminology. Key observations:
- Translations align with similar keys in other sections (e.g.,
organizationList,organizationSwitcher)- Placeholder syntax (
{{identifier}}) is used correctly- Terminology is consistent throughout (e.g., "Připojit se", "Čeká na schválení", "Zrušit")
Based on learnings, these previously undefined values are being intentionally populated with locale-specific translations.
packages/localizations/src/ko-KR.ts (2)
841-846: taskChooseOrganization.chooseOrganization strings look good and consistentThe translations here are natural Korean and align well with the existing organization-related copy in this locale (e.g., wording around 조직 생성/참여). No functional or i18n issues from a structure/placeholder perspective.
859-860: taskChooseOrganization.signOut strings are correct and consistent
actionLinkandactionTextfollow the same pattern as other occurrences using{{identifier}}in this file and read naturally in Korean. No issues detected here. Neighboring keys that remainundefinedare fine and will correctly fall back to default API messages (based on learnings).packages/localizations/src/ta-IN.ts (1)
873-874: Sign-out strings look correct and preserve interpolation placeholder
actionLinkmatches other “வெளியேறு” usages, andactionTextcorrectly preserves{{identifier}}while reading naturally in Tamil. No changes needed here.packages/localizations/src/bg-BG.ts (3)
849-854: LGTM! Bulgarian translations are accurate and contextually appropriate.The translations correctly use imperative verb forms suitable for action buttons, which appropriately differs from the noun forms used in the
organizationListsection. The terminology is consistent with existing Bulgarian translations throughout the file.
857-864: LGTM! Form translations are consistent and well-structured.The translations correctly reuse existing button labels ("Отказ", "Продължи") for consistency, appropriately keep "Slug" in English as a technical term (matching line 250), and provide a proper transliterated example for the slug placeholder.
867-868: LGTM! Sign out labels are consistent with existing patterns.The translations correctly reuse established terminology from the
impersonationFabsection (lines 258-259), ensuring consistency across the UI.packages/localizations/src/hi-IN.ts (1)
871-872: LGTM forsignOutcopyThe sign-out CTA and description are natural Hindi and reuse the same pattern as
impersonationFab.title/ other sign-in strings. No issues from a localization or placeholder perspective.packages/localizations/src/vi-VN.ts (1)
855-876: taskChooseOrganization vi-VN translations look consistent and safeThe new Vietnamese strings read naturally, reuse existing terminology for organizations, and correctly preserve the
{{identifier}}placeholder insignOut.actionText. No typing or structural issues, and leaving unrelated keys (including undefined ones) untouched maintains the current fallback behavior.Based on learnings, this aligns with the expected use of undefined localization values as API fallbacks.
packages/localizations/src/kk-KZ.ts (1)
838-861: LGTM! Kazakh translations for taskChooseOrganization properly added.The structural changes are correct:
- All previously undefined keys in the
taskChooseOrganizationsection now have Kazakh translations- Proper nesting within
chooseOrganization,createOrganization, andsignOutsubsections- Correct use of interpolation placeholders (e.g.,
{{identifier}}on line 859)- Consistent formatting with the rest of the localization file
Based on learnings, undefined localization values are intentional fallbacks, so populating these keys improves the user experience for Kazakh speakers.
Note: While the structural implementation is correct, linguistic accuracy of the Kazakh translations should ideally be verified by a native speaker or professional translator if not already done.
packages/localizations/src/sv-SE.ts (3)
851-856: LGTM! Swedish translations for organization selection look good.The translations are grammatically correct and contextually appropriate for the organization selection flow. The terminology is clear and user-friendly.
859-866: LGTM! Organization creation form translations are well-structured.The form labels, placeholders, and button text follow established Swedish UI conventions and are consistent with similar strings elsewhere in the file. The decision to keep 'Slug' untranslated is appropriate as it's a technical term.
869-870: LGTM! Sign-out translations are consistent.These translations perfectly match the existing pattern from the
impersonationFabsection (lines 258-259), ensuring consistency across the application.packages/localizations/src/is-IS.ts (2)
857-866: LGTM with minor observation.The translations in the
createOrganizationsection are well-structured. Note that Line 863 uses'Slug'while Line 250 uses'Stubbur (e. slug)'for similar slug labels. This difference might be intentional for contextual clarity, but consider whether consistency would improve user experience.</review_comment_end -->
867-870: LGTM!The
signOutsection translations are consistent with other sign-out actions throughout the locale file and correctly use the{{identifier}}template variable.</review_comment_end -->
packages/localizations/src/te-IN.ts (2)
854-861: LGTM! Telugu translations added for organization selection.The translations for the
chooseOrganizationsection are well-formed and consistent with the Telugu script used throughout the file.
872-875: LGTM! Sign-out translations properly preserve placeholder.The translations for the
signOutsection correctly preserve the{{identifier}}placeholder and use appropriate Telugu script.packages/localizations/src/sr-RS.ts (1)
864-865: LGTM!The translations are correct and consistent with existing usage in the file (e.g., "Odjavi se" matches lines 257, 992-993). The placeholder formatting is also correct.
packages/localizations/src/id-ID.ts (2)
861-870: Create-organization translations look consistent and idiomaticButton labels, placeholders, and field labels read naturally in Indonesian and align with existing patterns (e.g., reuse of
organisasi-sayaandSlug). No issues from a localization or typing/formatting standpoint.
871-874: Sign-out copy and{{identifier}}placeholder usage are correct
actionLink: 'Keluar'andactionText: 'Masuk sebagai {{identifier}}'match terminology used elsewhere (e.g.,impersonationFab) and keep the placeholder name consistent, so this should integrate cleanly.packages/localizations/src/zh-CN.ts (3)
835-840: LGTM! Simplified Chinese translations properly added.The taskChooseOrganization.chooseOrganization translations are correctly populated with appropriate Simplified Chinese strings.
843-850: LGTM! Form field translations properly added.The createOrganization subsection translations are correctly populated. The Pinyin slug placeholder ('wo-de-zu-zhi') and English 'Slug' label are appropriate choices.
853-854: LGTM! Sign-out translations with correct template variable.The signOut subsection translations properly preserve the {{identifier}} template variable and use appropriate Simplified Chinese.
packages/localizations/src/zh-TW.ts (2)
844-851: LGTM! Traditional Chinese form field translations properly added.The createOrganization subsection translations correctly use Traditional Chinese characters throughout. The Pinyin slug placeholder and English 'Slug' label are appropriate.
854-855: LGTM! Sign-out translations with correct template variable.The signOut subsection translations properly preserve the {{identifier}} template variable and use appropriate Traditional Chinese.
packages/localizations/src/nl-NL.ts (3)
856-863: LGTM!The organization creation form translations are clear and consistent. The button labels, placeholders, and field labels follow standard Dutch conventions and match the patterns used elsewhere in the file.
866-867: LGTM!The sign-out translations are consistent with existing usage throughout the file (e.g., lines 257, 992, 993) and the interpolation syntax is correct.
848-853: Verify translation consistency with organizationList.The identified phrasing differences are confirmed:
- Line 848:
'Nieuwe organisatie aanmaken'vs line 266:'Creëer organisatie'- Line 849:
'Deelnemen'vs line 267:'Toetreden'- Line 850:
'Verzoek om deel te nemen'vs line 268:'Verzoek om toetreden'These differences may be intentional due to different UX contexts (organizationList for selecting existing orgs vs taskChooseOrganization for the broader choice/creation task), but please verify the terminology aligns with your translation guidelines for user clarity.
packages/localizations/src/hu-HU.ts (2)
855-862: LGTM!The form field translations follow established patterns from the rest of the file and use consistent terminology for labels, placeholders, and buttons.
865-866: LGTM!The signOut translations are consistent with other instances in the file (lines 257, 994), and the template interpolation syntax is correctly formatted.
packages/localizations/src/ar-SA.ts (3)
853-860: LGTM! Organization creation form translations properly added.The form labels and placeholders are correctly translated. The slug placeholder
'munazzamati'appropriately uses romanized Arabic for URL-safe identifiers, and keeping'Slug'in English as a technical term is consistent with localization best practices.
863-864: LGTM! Sign-out section translations correctly implemented.The placeholder
{{identifier}}is properly formatted, and the "sign out" translation is consistent with existing usage throughout the file.
845-850: Address translation consistency across organization-related UI sections.This adds a new Arabic localization file for ar-SA. However, there are inconsistencies in how similar action keys are translated across different sections:
organizationListuses 'أنشاء منظمة' whiletaskChooseOrganization.chooseOrganizationuses 'إنشاء منظمة جديدة' for the same actionorganizationListuses 'أنضمام' whiletaskChooseOrganizationuses 'انضم' for invitation acceptanceorganizationListuses 'طلب أنضمام' whiletaskChooseOrganizationuses 'طلب الانضمام' for suggestionsVerify whether these variations are intentional for different UI contexts or if they should be normalized for consistency across the application.
…translations-for-task-choose-org' into jigarp/add-spanish-translations-for-task-choose-org
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (5)
packages/localizations/src/bn-IN.ts(1 hunks)packages/localizations/src/hu-HU.ts(1 hunks)packages/localizations/src/is-IS.ts(1 hunks)packages/localizations/src/ms-MY.ts(1 hunks)packages/localizations/src/te-IN.ts(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- packages/localizations/src/ms-MY.ts
- packages/localizations/src/is-IS.ts
🧰 Additional context used
📓 Path-based instructions (10)
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
All code must pass ESLint checks with the project's configuration
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
**/*.{js,jsx,ts,tsx,json,md,yml,yaml}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use Prettier for consistent code formatting
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
packages/**/src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
TypeScript is required for all packages
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Follow established naming conventions (PascalCase for components, camelCase for variables)
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
packages/**/src/**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
packages/**/src/**/*.{ts,tsx,js,jsx}: Maintain comprehensive JSDoc comments for public APIs
Use tree-shaking friendly exports
Validate all inputs and sanitize outputs
All public APIs must be documented with JSDoc
Use dynamic imports for optional features
Provide meaningful error messages to developers
Include error recovery suggestions where applicable
Log errors appropriately for debugging
Lazy load components and features when possible
Implement proper caching strategies
Use efficient data structures and algorithms
Implement proper logging with different levels
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
**/*.ts?(x)
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use proper TypeScript error types
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/typescript.mdc)
**/*.{ts,tsx}: Always define explicit return types for functions, especially public APIs
Use proper type annotations for variables and parameters where inference isn't clear
Avoidanytype - preferunknownwhen type is uncertain, then narrow with type guards
Implement type guards forunknowntypes using the patternfunction isType(value: unknown): value is Type
Useinterfacefor object shapes that might be extended
Usetypefor unions, primitives, and computed types
Preferreadonlyproperties for immutable data structures
Useprivatefor internal implementation details in classes
Useprotectedfor inheritance hierarchies
Usepublicexplicitly for clarity in public APIs
Use mixins for shared behavior across unrelated classes in TypeScript
Use generic constraints with bounded type parameters like<T extends { id: string }>
Use utility types likeOmit,Partial, andPickfor data transformation instead of manual type construction
Use discriminated unions instead of boolean flags for state management and API responses
Use mapped types for transforming object types
Use conditional types for type-level logic
Leverage template literal types for string manipulation at the type level
Use ES6 imports/exports consistently
Use default exports sparingly, prefer named exports
Document functions with JSDoc comments including @param, @returns, @throws, and @example tags
Create custom error classes that extend Error for specific error types
Use the Result pattern for error handling instead of throwing exceptions
Use optional chaining (?.) and nullish coalescing (??) operators for safe property access
Let TypeScript infer obvious types to reduce verbosity
Useconst assertionswithas constfor literal types
Usesatisfiesoperator for type checking without widening types
Declare readonly arrays and objects for immutable data structures
Use spread operator and array spread for immutable updates instead of mutations
Use lazy loading for large types...
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
**/*.{js,ts,jsx,tsx}
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Use ESLint with custom configurations tailored for different package types
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
**/*.{js,ts,jsx,tsx,json,md,yml,yaml}
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Use Prettier for code formatting across all packages
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
packages/localizations/**/*
📄 CodeRabbit inference engine (.cursor/rules/monorepo.mdc)
Organize localization translations in
packages/localizations/with support for 30+ languages and RTL language support
Files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
🧠 Learnings (1)
📚 Learning: 2025-12-12T19:54:17.554Z
Learnt from: wobsoriano
Repo: clerk/javascript PR: 7447
File: packages/localizations/src/en-US.ts:904-905
Timestamp: 2025-12-12T19:54:17.554Z
Learning: In Clerk's JavaScript localization files (packages/localizations/src/*.ts), undefined values for localization keys are intentional and should not be flagged as issues. When a key is undefined, the system uses the default message from the API response as a fallback. Do not flag these as errors; preserve this expected behavior.
Applied to files:
packages/localizations/src/bn-IN.tspackages/localizations/src/te-IN.tspackages/localizations/src/hu-HU.ts
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (25)
- GitHub Check: Integration Tests (sessions, chrome)
- GitHub Check: Integration Tests (react-router, chrome)
- GitHub Check: Integration Tests (nextjs, chrome, 15)
- GitHub Check: Integration Tests (nuxt, chrome)
- GitHub Check: Integration Tests (express, chrome)
- GitHub Check: Integration Tests (quickstart, chrome, 15)
- GitHub Check: Integration Tests (quickstart, chrome, 16)
- GitHub Check: Integration Tests (nextjs, chrome, 16)
- GitHub Check: Integration Tests (tanstack-react-start, chrome)
- GitHub Check: Integration Tests (custom, chrome)
- GitHub Check: Integration Tests (machine, chrome, RQ)
- GitHub Check: Integration Tests (billing, chrome)
- GitHub Check: Integration Tests (handshake, chrome)
- GitHub Check: Integration Tests (astro, chrome)
- GitHub Check: Integration Tests (nextjs, chrome, 16, RQ)
- GitHub Check: Integration Tests (localhost, chrome)
- GitHub Check: Integration Tests (machine, chrome)
- GitHub Check: Integration Tests (ap-flows, chrome)
- GitHub Check: Integration Tests (vue, chrome)
- GitHub Check: Integration Tests (handshake:staging, chrome)
- GitHub Check: Integration Tests (billing, chrome, RQ)
- GitHub Check: Integration Tests (generic, chrome)
- GitHub Check: Integration Tests (sessions:staging, chrome)
- GitHub Check: Analyze (javascript-typescript)
- GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (4)
packages/localizations/src/bn-IN.ts (1)
851-874: LGTM! Translations are consistent and well-implemented.The Bengali translations for
taskChooseOrganizationhave been properly added with consistent terminology. All instances correctly use 'সংগঠন' (songothon) for "organization", which aligns with the rest of the file and addresses the previous review feedback. The translations are appropriate for their context, and the slug placeholder 'amar-sangstha' is a suitable romanized Bengali representation.packages/localizations/src/te-IN.ts (2)
862-870: LGTM - Slug translation now consistent!The translations in this section look good. Notably, line 868 now correctly uses the Telugu transliteration 'స్లగ్' for the slug label, which is consistent with
formFieldLabel__organizationSlugat line 249. This addresses the concern raised in the previous review.
872-874: LGTM!The sign-out section translations are clear and consistent with the existing Telugu localization patterns in the file.
packages/localizations/src/hu-HU.ts (1)
865-866: LGTM!The signOut translations are consistent with other signOut actions in the file (lines 257, 994) and use appropriate neutral forms.
packages/localizations/src/hu-HU.ts
Outdated
| subtitle: undefined, | ||
| suggestionsAcceptedLabel: undefined, | ||
| title: undefined, | ||
| action__createOrganization: 'Új szervezet létrehozása', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# First, check the Hungarian localization file structure around the mentioned lines
wc -l packages/localizations/src/hu-HU.tsRepository: clerk/javascript
Length of output: 100
🏁 Script executed:
#!/bin/bash
# Check line 847 and surrounding context
sed -n '840,855p' packages/localizations/src/hu-HU.ts | cat -nRepository: clerk/javascript
Length of output: 801
🏁 Script executed:
#!/bin/bash
# Check line 266 and surrounding context
sed -n '260,275p' packages/localizations/src/hu-HU.ts | cat -nRepository: clerk/javascript
Length of output: 927
🏁 Script executed:
#!/bin/bash
# Find all occurrences of action__createOrganization in hu-HU.ts
rg -n "action__createOrganization" packages/localizations/src/hu-HU.tsRepository: clerk/javascript
Length of output: 247
Address inconsistent 'Új szervezet' terminology across action__createOrganization translations.
The same key action__createOrganization has inconsistent translations: line 847 uses 'Új szervezet létrehozása' (Create new organization) while lines 266 and 499 use 'Szervezet létrehozása' (Create organization) without the "Új" prefix. Clarify whether the "Új" addition in the taskChooseOrganization context is intentional for that specific UI flow or if all occurrences should be aligned for consistency.
🤖 Prompt for AI Agents
In packages/localizations/src/hu-HU.ts around line 847, the translation for
action__createOrganization is 'Új szervezet létrehozása' which is inconsistent
with the same key at lines ~266 and ~499 ('Szervezet létrehozása'); pick a
single canonical phrasing and align all occurrences: either remove the 'Új'
prefix at line 847 to match the others, or change lines 266 and 499 to include
'Új' if the "new" qualifier is required for that specific UI flow; update the
three instances to the chosen form so the same key uses identical Hungarian text
throughout.
Description
Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.