-
Notifications
You must be signed in to change notification settings - Fork 419
feat(localizations,shared): Add temporary email and password/identifier error localization keys #7447
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
Conversation
🦋 Changeset detectedLatest commit: 2dc01d7 The changes in this PR will be included in the next version bump. This PR includes changesets to release 0 packagesWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types 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.
|
WalkthroughAdds two new localization error keys — Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10–20 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Comment |
@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: 14
🧹 Nitpick comments (10)
packages/localizations/src/ca-ES.ts (1)
889-890: Keep tone consistent (informal “tu”) forform_email_address_blocked.
Current copy uses “utilitzeu / vostra”, while most of this locale uses “tu/teu”.- form_email_address_blocked: - 'Els serveis de correu electrònic temporal no estan suportats. Si us plau, utilitzeu la vostra adreça de correu electrònic habitual per crear un compte.', + form_email_address_blocked: + 'Els serveis de correu electrònic temporal no estan suportats. Si us plau, utilitza la teva adreça de correu electrònic habitual per crear un compte.',packages/localizations/src/te-IN.ts (1)
895-896: Consider aligning “identifier” wording inform_password_or_identifier_incorrectwith actual supported identifiers (email/username/phone).
Current Telugu copy only mentions email; if “identifier” can be username/phone in this flow, consider broadening the translation to avoid misleading users.Also applies to: 914-915
packages/localizations/src/fa-IR.ts (1)
898-899: Consider broadening “email” to “email/identifier” wording forform_password_or_identifier_incorrect.
If users can sign in with non-email identifiers, the current Persian message may be overly specific.Also applies to: 917-918
packages/localizations/src/he-IL.ts (1)
877-878: Consider aligning wording with “identifier” (not only email) if this error can trigger for non-email identifiers.
Current text is fine if the backend only emits this for email-based sign-in, but if “identifier” includes username/phone, the message may mislead.packages/localizations/src/kk-KZ.ts (1)
897-898: Consider whether “identifier” can be phone/username; message currently says only email.
If this error is reused broadly, consider a more generic “электрондық пошта/пайдаланушы аты/телефон” equivalent.packages/localizations/src/pt-PT.ts (1)
887-888: Consider makingform_password_or_identifier_incorrectcover non-email identifiers too.Current text says “endereço de e-mail”, but the key name suggests “identifier” (could be username/phone).
Also applies to: 906-907
packages/localizations/src/sk-SK.ts (1)
894-895: Consider whether “identifier” should be translated broader than “e-mailová adresa”.If the product uses “identifier” for username/phone too, this message might be better aligned to that.
Also applies to: 913-914
packages/localizations/src/nl-BE.ts (1)
888-889: Consider aligningform_password_or_identifier_incorrectwording with “identifier” (not only email).If users can sign in with username/phone, “identificatie/gebruikersnaam/e-mailadres” (or similar) may be more accurate than email-only.
Also applies to: 907-908
packages/localizations/src/ta-IN.ts (1)
895-896: Consider broadeningform_password_or_identifier_incorrectbeyond “email address”.If “identifier” can be username/phone, the Tamil text may be more accurate if it doesn’t name email specifically.
Also applies to: 914-915
packages/localizations/src/de-DE.ts (1)
905-906: Optional: add German articles for a more natural error sentence.- form_password_or_identifier_incorrect: - 'Passwort oder E-Mail-Adresse ist falsch. Versuchen Sie es erneut oder verwenden Sie eine andere Methode.', + form_password_or_identifier_incorrect: + 'Das Passwort oder die E-Mail-Adresse ist falsch. Versuchen Sie es erneut oder verwenden Sie eine andere Methode.',Also applies to: 924-925
📜 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 (51)
.changeset/chilled-olives-cheer.md(1 hunks)packages/localizations/src/ar-SA.ts(2 hunks)packages/localizations/src/be-BY.ts(2 hunks)packages/localizations/src/bg-BG.ts(2 hunks)packages/localizations/src/bn-IN.ts(2 hunks)packages/localizations/src/ca-ES.ts(2 hunks)packages/localizations/src/cs-CZ.ts(2 hunks)packages/localizations/src/da-DK.ts(2 hunks)packages/localizations/src/de-DE.ts(2 hunks)packages/localizations/src/el-GR.ts(2 hunks)packages/localizations/src/en-GB.ts(2 hunks)packages/localizations/src/en-US.ts(2 hunks)packages/localizations/src/es-CR.ts(2 hunks)packages/localizations/src/es-ES.ts(2 hunks)packages/localizations/src/es-MX.ts(2 hunks)packages/localizations/src/es-UY.ts(2 hunks)packages/localizations/src/fa-IR.ts(2 hunks)packages/localizations/src/fi-FI.ts(2 hunks)packages/localizations/src/fr-FR.ts(2 hunks)packages/localizations/src/he-IL.ts(2 hunks)packages/localizations/src/hi-IN.ts(2 hunks)packages/localizations/src/hr-HR.ts(2 hunks)packages/localizations/src/hu-HU.ts(2 hunks)packages/localizations/src/id-ID.ts(2 hunks)packages/localizations/src/is-IS.ts(2 hunks)packages/localizations/src/it-IT.ts(2 hunks)packages/localizations/src/ja-JP.ts(2 hunks)packages/localizations/src/kk-KZ.ts(2 hunks)packages/localizations/src/ko-KR.ts(2 hunks)packages/localizations/src/mn-MN.ts(2 hunks)packages/localizations/src/ms-MY.ts(2 hunks)packages/localizations/src/nb-NO.ts(2 hunks)packages/localizations/src/nl-BE.ts(2 hunks)packages/localizations/src/nl-NL.ts(2 hunks)packages/localizations/src/pl-PL.ts(3 hunks)packages/localizations/src/pt-BR.ts(2 hunks)packages/localizations/src/pt-PT.ts(2 hunks)packages/localizations/src/ro-RO.ts(2 hunks)packages/localizations/src/ru-RU.ts(2 hunks)packages/localizations/src/sk-SK.ts(2 hunks)packages/localizations/src/sr-RS.ts(2 hunks)packages/localizations/src/sv-SE.ts(2 hunks)packages/localizations/src/ta-IN.ts(2 hunks)packages/localizations/src/te-IN.ts(2 hunks)packages/localizations/src/th-TH.ts(2 hunks)packages/localizations/src/tr-TR.ts(2 hunks)packages/localizations/src/uk-UA.ts(2 hunks)packages/localizations/src/vi-VN.ts(2 hunks)packages/localizations/src/zh-CN.ts(2 hunks)packages/localizations/src/zh-TW.ts(2 hunks)packages/shared/src/types/localization.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/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.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/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.ts
packages/**/src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
TypeScript is required for all packages
Files:
packages/localizations/src/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.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/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.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/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.ts
**/*.ts?(x)
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use proper TypeScript error types
Files:
packages/localizations/src/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.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/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.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/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.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/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/shared/src/types/localization.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.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/el-GR.tspackages/localizations/src/bg-BG.tspackages/localizations/src/ja-JP.tspackages/localizations/src/zh-CN.tspackages/localizations/src/mn-MN.tspackages/localizations/src/zh-TW.tspackages/localizations/src/vi-VN.tspackages/localizations/src/nl-BE.tspackages/localizations/src/en-GB.tspackages/localizations/src/sk-SK.tspackages/localizations/src/he-IL.tspackages/localizations/src/ms-MY.tspackages/localizations/src/fr-FR.tspackages/localizations/src/it-IT.tspackages/localizations/src/fa-IR.tspackages/localizations/src/sv-SE.tspackages/localizations/src/nl-NL.tspackages/localizations/src/ko-KR.tspackages/localizations/src/fi-FI.tspackages/localizations/src/pt-PT.tspackages/localizations/src/ar-SA.tspackages/localizations/src/da-DK.tspackages/localizations/src/ru-RU.tspackages/localizations/src/th-TH.tspackages/localizations/src/cs-CZ.tspackages/localizations/src/kk-KZ.tspackages/localizations/src/sr-RS.tspackages/localizations/src/be-BY.tspackages/localizations/src/es-UY.tspackages/localizations/src/es-MX.tspackages/localizations/src/nb-NO.tspackages/localizations/src/te-IN.tspackages/localizations/src/tr-TR.tspackages/localizations/src/de-DE.tspackages/localizations/src/ta-IN.tspackages/localizations/src/hi-IN.tspackages/localizations/src/pt-BR.tspackages/localizations/src/bn-IN.tspackages/localizations/src/id-ID.tspackages/localizations/src/es-CR.tspackages/localizations/src/hu-HU.tspackages/localizations/src/ro-RO.tspackages/localizations/src/es-ES.tspackages/localizations/src/is-IS.tspackages/localizations/src/hr-HR.tspackages/localizations/src/uk-UA.tspackages/localizations/src/en-US.tspackages/localizations/src/ca-ES.tspackages/localizations/src/pl-PL.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). (28)
- GitHub Check: Unit Tests (**)
- GitHub Check: Publish with pkg-pr-new
- GitHub Check: Unit Tests (shared, clerk-js, RQ)
- GitHub Check: Static analysis
- GitHub Check: Integration Tests (billing, chrome)
- GitHub Check: Integration Tests (react-router, chrome)
- GitHub Check: Integration Tests (billing, chrome, RQ)
- GitHub Check: Integration Tests (machine, chrome, RQ)
- GitHub Check: Integration Tests (nextjs, chrome, 16)
- GitHub Check: Integration Tests (machine, chrome)
- GitHub Check: Integration Tests (nextjs, chrome, 15)
- GitHub Check: Integration Tests (nextjs, chrome, 16, RQ)
- GitHub Check: Integration Tests (custom, chrome)
- GitHub Check: Integration Tests (quickstart, chrome, 16)
- GitHub Check: Integration Tests (ap-flows, chrome)
- GitHub Check: Integration Tests (quickstart, chrome, 15)
- GitHub Check: Integration Tests (generic, chrome)
- GitHub Check: Integration Tests (sessions:staging, chrome)
- GitHub Check: Integration Tests (vue, chrome)
- GitHub Check: Integration Tests (handshake, chrome)
- GitHub Check: Integration Tests (tanstack-react-start, chrome)
- GitHub Check: Integration Tests (sessions, chrome)
- GitHub Check: Integration Tests (astro, chrome)
- GitHub Check: Integration Tests (handshake:staging, chrome)
- GitHub Check: Integration Tests (localhost, chrome)
- GitHub Check: Integration Tests (express, chrome)
- GitHub Check: Integration Tests (nuxt, chrome)
- GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (48)
packages/shared/src/types/localization.ts (1)
1337-1343: LGTM: type surface updated consistently.These additions to
UnstableErrorsmatch the newunstable__errorskeys and should keep localization resources type-safe.packages/localizations/src/mn-MN.ts (1)
888-889: The translation is correct. The English source copy inen-GB.tsexplicitly states "Password or email address is incorrect," which the Mongolian translation faithfully reproduces. All 40+ locales consistently translate this message as "email address" rather than a generic "identifier," indicating this is the intentional product copy. The key nameform_password_or_identifier_incorrectis generic, but the actual user-facing message is specifically email-focused, which may reflect the authentication context where this error is displayed.packages/localizations/src/uk-UA.ts (1)
886-887: The Ukrainian translation at lines 905-906 is correct and consistent with all other locales in the codebase. No changes needed.packages/localizations/src/be-BY.ts (1)
894-895: No changes needed — Belarusian translation correctly mirrors the canonical English implementation.The translation accurately reflects the email-specific wording used across all other locales (en-GB, French, German, Spanish, Chinese, etc.). The "identifier" in the key name refers to code organization; the actual message is intentionally email-specific for this password authentication flow.
.changeset/chilled-olives-cheer.md (1)
1-2: No action needed. Empty changesets are valid in Changesets and this repo intentionally uses them for snapshot/pre-release workflows (as configured in.changeset/config.json). The commit message confirms this was created deliberately.packages/localizations/src/da-DK.ts (1)
886-887: The Danish translation correctly matches the pattern established across all supported languages. Theform_password_or_identifier_incorrectkey is translated to "Adgangskoden eller e-mailadressen er forkert" in Danish, which directly mirrors equivalent translations in English (en-GB), German, French, Dutch, Portuguese, and 25+ other languages—all using "email" rather than a generic "identifier."While the concern about identifier specificity is valid (documentation confirms identifiers can be username, phone, or email), this is a product-level design decision reflected consistently across all language translations, not a Danish translation issue. The existence of separate keys (
form_identifier_exists__email_address,form_identifier_exists__phone_number,form_identifier_exists__username) confirms the system supports multiple identifier types, but the form_password_or_identifier_incorrect message intentionally uses email-specific language across all translations.packages/localizations/src/th-TH.ts (1)
888-889: LGTM: additions are well-placed underunstable__errorsand read naturally in Thai.Also applies to: 906-906
packages/localizations/src/ms-MY.ts (1)
896-897: LGTM: messages are clear and consistent with surrounding Malay error copy.Also applies to: 916-917
packages/localizations/src/he-IL.ts (1)
896-896: Message is clear; verify it matches the surfaces where “identifier” can be non-email.
If this is used for username/phone sign-in too, consider mentioning “email/username/phone” (or a more generic “פרטי התחברות”).packages/localizations/src/ro-RO.ts (2)
902-903: LGTM: clear and consistent translation for temporary email restriction.
921-922: LGTM: good generic phrasing and recovery suggestion (“folosește o altă metodă”).packages/localizations/src/kk-KZ.ts (1)
878-879: LGTM: clear message; no i18n token hazards.packages/localizations/src/es-UY.ts (1)
915-916: LGTM: phrasing matches es-UY tone (“Intentá… usá…”).packages/localizations/src/el-GR.ts (2)
891-892: LGTM: clear and natural Greek; no placeholder risks.
910-911: LGTM: good error + recovery suggestion.packages/localizations/src/vi-VN.ts (1)
895-896: Semantic mismatch:form_password_or_identifier_incorrectkey name includes "identifier" but all translations specify "email address" only.The key name suggests it handles password/identifier validation errors where "identifier" can be email, phone, or username (per
getSignUpAttributeFromIdentifierin SignIn utilities). However, across all 30+ language translations, the message specifically mentions "email address," not a generic identifier. This is inconsistent with the key naming and creates potential developer confusion about what error scenario this key addresses. Either rename the key toform_password_or_email_incorrectfor clarity, or update translations to use generic identifier language (e.g., "password or login credentials").Also applies to: 895-896 (form_email_address_blocked)
packages/localizations/src/es-CR.ts (2)
896-897: Newform_email_address_blockedkey is correctly added underunstable__errors.
915-916: Newform_password_or_identifier_incorrectkey is correctly added underunstable__errors.packages/localizations/src/es-MX.ts (2)
897-898: Newform_email_address_blockedkey is correctly added underunstable__errors.
916-917: Newform_password_or_identifier_incorrectkey is correctly added underunstable__errors.packages/localizations/src/id-ID.ts (2)
894-896: Newform_email_address_blockedkey is correctly added underunstable__errors.
913-913: Newform_password_or_identifier_incorrectkey is correctly added underunstable__errors.packages/localizations/src/nl-NL.ts (2)
888-890: Newform_email_address_blockedkey is correctly added underunstable__errors.
907-908: Newform_password_or_identifier_incorrectkey is correctly added underunstable__errors.packages/localizations/src/hu-HU.ts (2)
887-889: Newform_email_address_blockedkey is correctly added underunstable__errors.
906-908: Newform_password_or_identifier_incorrectkey is correctly added underunstable__errors.packages/localizations/src/fi-FI.ts (1)
889-890: Newunstable__errors.form_email_address_blockedentry looks good.packages/localizations/src/tr-TR.ts (1)
890-891: Newunstable__errors.form_email_address_blockedentry looks good.packages/localizations/src/is-IS.ts (1)
890-891: Newunstable__errors.form_email_address_blockedentry looks good.packages/localizations/src/nb-NO.ts (1)
887-888: Newunstable__errors.form_email_address_blockedentry looks good.packages/localizations/src/zh-CN.ts (1)
873-873: Consider tightening punctuation for consistency in the new error string.
Line 873 reads well and matches the intent. No issues spotted.packages/localizations/src/zh-TW.ts (1)
874-874: LGTM for the new temporary email error copy.
Line 874 reads natural and consistent with the locale.packages/localizations/src/ko-KR.ts (2)
881-883: LGTM: clear and natural Korean copy for blocked temporary emails.
No placeholder issues; line wrapping is fine.
900-901: LGTM: clear and consistent error message.packages/localizations/src/bg-BG.ts (1)
888-890: LGTM: temporary email message looks good.packages/localizations/src/en-GB.ts (2)
890-892: LGTM: message is clear and consistent with existing copy style.
909-909: LGTM: concise and matches intent.packages/localizations/src/hr-HR.ts (1)
891-893: LGTM: temporary email message reads naturally.packages/localizations/src/ru-RU.ts (1)
902-903: Newunstable__errorskeys look correctly added and translated.Also applies to: 921-922
packages/localizations/src/es-ES.ts (1)
890-891: Newunstable__errorskeys look good for es-ES.Also applies to: 910-911
packages/localizations/src/ja-JP.ts (1)
900-902: Wording may be too specific for an “identifier” error (email-only).These additions look good structurally, but
form_password_or_identifier_incorrectmentions “メールアドレス” specifically; if the identifier can also be username/phone, consider a more generic term (e.g., “識別子”) to match the key semantics.Also applies to: 919-921
packages/localizations/src/ar-SA.ts (1)
885-887: Consider using a generic “identifier” term instead of “email address” (if applicable).Additions are consistent, but
form_password_or_identifier_incorrectcurrently reads as password-or-email only; if “identifier” includes username/phone in this flow, consider adjusting Arabic wording to avoid narrowing it to email.Also applies to: 904-906
packages/localizations/src/hi-IN.ts (1)
893-895:form_password_or_identifier_incorrectreads email-specific; verify matches actual “identifier” usage.Looks good mechanically; please confirm whether the Hindi copy should remain email-specific or be generalized to “identifier” (username/phone/email) based on where this error is raised.
Also applies to: 912-914
packages/localizations/src/cs-CZ.ts (1)
900-902: Potential mismatch: “identifier” error translated as “email address”.Changes look correct, but consider whether
form_password_or_identifier_incorrectshould avoid “e-mailová adresa” specifically if the identifier can be something else in this context.Also applies to: 919-921
packages/localizations/src/bn-IN.ts (1)
893-895: Verify whether “ইমেইল ঠিকানা” should be generalized to “identifier”.Structurally all good; just confirm
form_password_or_identifier_incorrectwording matches the actual identifier surface (email/phone/username) for the error that maps to this key.Also applies to: 913-915
packages/localizations/src/fr-FR.ts (1)
906-907: LGTM! New error localization keys added correctly.The two new error message keys have been properly added to the
unstable__errorsobject with French translations. The additions follow the established pattern and are consistent with the PR objectives.Also applies to: 925-926
packages/localizations/src/sv-SE.ts (1)
891-892: LGTM! New error localization keys added correctly.The two new error message keys have been properly added to the
unstable__errorsobject with Swedish translations. The additions are consistent with the other locale files in this PR.Also applies to: 910-911
packages/localizations/src/pl-PL.ts (1)
893-894: LGTM! New error localization keys added correctly.The two new error message keys have been properly added to the
unstable__errorsobject with Polish translations. The additions are consistent with the other locale files in this PR.Also applies to: 912-913
| form_password_or_identifier_incorrect: | ||
| 'Salasana tai sähköpostiosoite on väärä. Yritä uudelleen tai käytä toista menetelmää.', |
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.
Consider making the “identifier” wording locale-accurate (not always an email). The string currently says “email address”; if this error can occur for username/phone sign-in too, prefer a more generic term.
🤖 Prompt for AI Agents
In packages/localizations/src/fi-FI.ts around lines 908 to 909, the message uses
"sähköpostiosoite" (email address) but the error can occur for other sign-in
identifiers; update the translation to use a locale-appropriate generic term
such as "tunnus" or "tunniste" (e.g., "Salasana tai tunnus on väärä. Yritä
uudelleen tai käytä toista menetelmää.") so it no longer assumes an email and
ensure the sentence grammar and punctuation remain correct.
| form_email_address_blocked: | ||
| 'Serviços de e-mail temporários não são suportados. Por favor, use seu endereço de e-mail regular para criar uma conta.', |
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.
Fix PT-BR agreement in form_password_or_identifier_incorrect.
- form_password_or_identifier_incorrect:
- 'A senha ou o endereço de e-mail está incorreto. Tente novamente ou use outro método.',
+ form_password_or_identifier_incorrect:
+ 'A senha ou o endereço de e-mail estão incorretos. Tente novamente ou use outro método.',Also applies to: 920-921
🤖 Prompt for AI Agents
In packages/localizations/src/pt-BR.ts around lines 901-902 and 920-921, the
Portuguese message for form_password_or_identifier_incorrect has incorrect
gender/number agreement; update the translation to use plural agreement or a
neutral rephrasing (e.g., make the verb/adjective agree with the plural subject
or reword to avoid mismatched gender) so the sentence reads correctly in PT-BR
(apply the same fix to the similar string at 920-921).
| form_email_address_blocked: | ||
| 'Привремене е-поште услуге нису подржане. Молимо користите своју редовну адресу е-поште за креирање налога.', |
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.
Potential script inconsistency in unstable__errors (Latin vs Cyrillic) for sr-RS.
If sr-RS is intended to be Latin-script in this repo, these two new Cyrillic strings will stand out. If the file is intentionally mixed, please ignore—otherwise consider converting these to match the predominant script used in unstable__errors.
Also applies to: 905-906
🤖 Prompt for AI Agents
In packages/localizations/src/sr-RS.ts around lines 886-887 (and also check
905-906), the added strings are in Cyrillic while the rest of unstable__errors
appears to use the Latin script; convert these new entries to the predominant
script used in this file (likely Latin) so the file’s script is consistent, and
run a quick scan of unstable__errors to fix any other mixed-script entries to
the same script.
| form_password_or_identifier_incorrect: | ||
| 'Şifre veya e-posta adresi yanlış. Tekrar deneyin veya başka bir yöntem kullanın.', |
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.
Consider aligning “identifier” phrasing (may not be email). If this error covers username/phone too, avoid hardcoding “e-posta adresi” here.
🤖 Prompt for AI Agents
In packages/localizations/src/tr-TR.ts around lines 909 to 910, the message
hardcodes “e-posta adresi” which mislabels the identifier if it can be
username/phone/etc.; change the Turkish copy to a generic term (e.g., use "giriş
bilgileri" or "kimlik bilgisi") so it reads something like "Şifre veya giriş
bilgileri yanlış. Tekrar deneyin veya başka bir yöntem kullanın." and update the
string in that file accordingly.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
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: 1
♻️ Duplicate comments (1)
packages/localizations/src/zh-CN.ts (1)
891-891:form_password_or_identifier_incorrecttranslation is smooth; keep as-is.
This addresses the earlier “请重试,或…” punctuation nit already.
📜 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 (6)
packages/localizations/src/bg-BG.ts(2 hunks)packages/localizations/src/ca-ES.ts(2 hunks)packages/localizations/src/es-UY.ts(2 hunks)packages/localizations/src/hr-HR.ts(2 hunks)packages/localizations/src/zh-CN.ts(2 hunks)packages/localizations/src/zh-TW.ts(2 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
- packages/localizations/src/zh-TW.ts
- packages/localizations/src/bg-BG.ts
- packages/localizations/src/es-UY.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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-ES.ts
packages/**/src/**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
TypeScript is required for all packages
Files:
packages/localizations/src/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-ES.ts
**/*.ts?(x)
📄 CodeRabbit inference engine (.cursor/rules/development.mdc)
Use proper TypeScript error types
Files:
packages/localizations/src/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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/zh-CN.tspackages/localizations/src/hr-HR.tspackages/localizations/src/ca-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). (25)
- GitHub Check: Integration Tests (nuxt, chrome)
- GitHub Check: Integration Tests (handshake, chrome)
- GitHub Check: Integration Tests (billing, chrome, RQ)
- GitHub Check: Integration Tests (express, chrome)
- GitHub Check: Integration Tests (vue, chrome)
- GitHub Check: Integration Tests (quickstart, chrome, 15)
- GitHub Check: Integration Tests (nextjs, chrome, 15)
- GitHub Check: Integration Tests (ap-flows, chrome)
- GitHub Check: Integration Tests (custom, chrome)
- GitHub Check: Integration Tests (quickstart, chrome, 16)
- GitHub Check: Integration Tests (handshake:staging, chrome)
- GitHub Check: Integration Tests (machine, chrome)
- GitHub Check: Integration Tests (nextjs, chrome, 16, RQ)
- GitHub Check: Integration Tests (sessions:staging, chrome)
- GitHub Check: Integration Tests (machine, chrome, RQ)
- GitHub Check: Integration Tests (react-router, chrome)
- GitHub Check: Integration Tests (billing, chrome)
- GitHub Check: Integration Tests (astro, chrome)
- GitHub Check: Integration Tests (nextjs, chrome, 16)
- GitHub Check: Integration Tests (tanstack-react-start, chrome)
- GitHub Check: Integration Tests (generic, chrome)
- GitHub Check: Integration Tests (sessions, chrome)
- GitHub Check: Integration Tests (localhost, chrome)
- GitHub Check: Analyze (javascript-typescript)
- GitHub Check: semgrep-cloud-platform/scan
🔇 Additional comments (5)
packages/localizations/src/zh-CN.ts (2)
866-906: Newunstable__errorskeys look consistent and copy reads naturally (comma issue already resolved).
No further changes needed here. (Not flaggingundefinedkeys per project convention—fallback is intentional, per learnings.)
873-873:form_email_address_blockedtranslation is clear and appropriate.packages/localizations/src/ca-ES.ts (1)
908-909:form_password_or_identifier_incorrectwording looks correct and neutral (“identificador”).
No concerns with semantics here.packages/localizations/src/hr-HR.ts (2)
891-892: LGTM! Grammatically correct Croatian translation.The translation for the temporary email blocking error is natural and grammatically accurate. The feminine plural agreement ("Privremene e-mail usluge nisu podržane") is correct, and the message clearly conveys the intended meaning.
910-911: LGTM! Grammar issue from past review resolved with optimal solution.The translation correctly uses the feminine plural form "nisu točne," which properly agrees with both feminine nouns ("lozinka" and "e-mail adresa"). This is grammatically more accurate than the masculine plural "nisu točni" suggested in the previous review, as both nouns are feminine in Croatian.
| form_email_address_blocked: | ||
| 'Els serveis de correu electrònic temporal no estan suportats. Si us plau, utilitzeu la vostra adreça de correu electrònic habitual per crear un compte.', |
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.
Align register (“vós/vostè” vs “tu”) in form_email_address_blocked.
Current string (“utilitzeu la vostra…”) reads more formal than nearby copy (“la teva…”, “Torna-ho…”). Consider switching to the existing informal register for consistency.
form_email_address_blocked:
- 'Els serveis de correu electrònic temporal no estan suportats. Si us plau, utilitzeu la vostra adreça de correu electrònic habitual per crear un compte.',
+ 'Els serveis de correu electrònic temporal no estan suportats. Si us plau, utilitza la teva adreça de correu electrònic habitual per crear un compte.',🤖 Prompt for AI Agents
In packages/localizations/src/ca-ES.ts around lines 889-890, the message uses a
formal register ("utilitzeu la vostra…") while nearby copy uses informal ("la
teva…"); update the string to the informal second-person singular to match the
rest of the UI, e.g. replace the formal phrasing with something like "utilitza
la teva adreça de correu electrònic habitual per crear un compte."
Cherry-picked from PR #7436 and PR #7437 (branched off release/core-2).
This PR adds two new localization keys:
form_email_address_blocked- for temporary email error localization (from PR feat(localizations,shared): Add temporary email error localization key #7436)form_password_or_identifier_incorrect- for missing password or identifier error localization (from PR feat(localizations,shared): Add missing password or identifier localization key #7437)Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.