Skip to content

Conversation

@iagodahlem
Copy link
Member

@iagodahlem iagodahlem commented Aug 20, 2025

Description

CleanShot 2025-08-20 at 11 02 03@2x

Checklist

  • pnpm test runs as expected.
  • pnpm build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

Summary by CodeRabbit

  • New Features
    • Updated Create Organization screen copy in session tasks: title/subtitle changed and submit button now "Continue". Added labels and placeholders for organization name and slug (en-US populated; other locales scaffolded).
  • Tests
    • Updated unit tests and Playwright selectors to match new copy and button label.
  • Chores
    • Added localization keys across many locales and bumped related packages.

@changeset-bot
Copy link

changeset-bot bot commented Aug 20, 2025

🦋 Changeset detected

Latest commit: db9f39d

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 22 packages
Name Type
@clerk/localizations Patch
@clerk/clerk-js Patch
@clerk/testing Patch
@clerk/types Patch
@clerk/clerk-react Patch
@clerk/chrome-extension Patch
@clerk/clerk-expo Patch
@clerk/agent-toolkit Patch
@clerk/astro Patch
@clerk/backend Patch
@clerk/elements Patch
@clerk/expo-passkeys Patch
@clerk/express Patch
@clerk/fastify Patch
@clerk/nextjs Patch
@clerk/nuxt Patch
@clerk/react-router Patch
@clerk/remix Patch
@clerk/shared Patch
@clerk/tanstack-react-start Patch
@clerk/themes Patch
@clerk/vue Patch

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

@vercel
Copy link

vercel bot commented Aug 20, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
clerk-js-sandbox Ready Ready Preview Comment Aug 20, 2025 5:38pm

@iagodahlem iagodahlem changed the title Update TaskChooseOrganization copies for create organization screen chore(clerk-js,localizations): Update TaskChooseOrganization copies for create organization screen Aug 20, 2025
@iagodahlem iagodahlem marked this pull request as ready for review August 20, 2025 14:14
@iagodahlem iagodahlem force-pushed the iago/update-create-organization-copies branch from 7d2c802 to 2a1d4ba Compare August 20, 2025 14:24
@pkg-pr-new
Copy link

pkg-pr-new bot commented Aug 20, 2025

Open in StackBlitz

@clerk/agent-toolkit

npm i https://pkg.pr.new/@clerk/agent-toolkit@6584

@clerk/astro

npm i https://pkg.pr.new/@clerk/astro@6584

@clerk/backend

npm i https://pkg.pr.new/@clerk/backend@6584

@clerk/chrome-extension

npm i https://pkg.pr.new/@clerk/chrome-extension@6584

@clerk/clerk-js

npm i https://pkg.pr.new/@clerk/clerk-js@6584

@clerk/dev-cli

npm i https://pkg.pr.new/@clerk/dev-cli@6584

@clerk/elements

npm i https://pkg.pr.new/@clerk/elements@6584

@clerk/clerk-expo

npm i https://pkg.pr.new/@clerk/clerk-expo@6584

@clerk/expo-passkeys

npm i https://pkg.pr.new/@clerk/expo-passkeys@6584

@clerk/express

npm i https://pkg.pr.new/@clerk/express@6584

@clerk/fastify

npm i https://pkg.pr.new/@clerk/fastify@6584

@clerk/localizations

npm i https://pkg.pr.new/@clerk/localizations@6584

@clerk/nextjs

npm i https://pkg.pr.new/@clerk/nextjs@6584

@clerk/nuxt

npm i https://pkg.pr.new/@clerk/nuxt@6584

@clerk/clerk-react

npm i https://pkg.pr.new/@clerk/clerk-react@6584

@clerk/react-router

npm i https://pkg.pr.new/@clerk/react-router@6584

@clerk/remix

npm i https://pkg.pr.new/@clerk/remix@6584

@clerk/shared

npm i https://pkg.pr.new/@clerk/shared@6584

@clerk/tanstack-react-start

npm i https://pkg.pr.new/@clerk/tanstack-react-start@6584

@clerk/testing

npm i https://pkg.pr.new/@clerk/testing@6584

@clerk/themes

npm i https://pkg.pr.new/@clerk/themes@6584

@clerk/types

npm i https://pkg.pr.new/@clerk/types@6584

@clerk/upgrade

npm i https://pkg.pr.new/@clerk/upgrade@6584

@clerk/vue

npm i https://pkg.pr.new/@clerk/vue@6584

commit: db9f39d

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 20, 2025

📝 Walkthrough

Walkthrough

Updated localization keys and copy for the create-organization UI used in the task flow. CreateOrganizationScreen now uses new i18n keys for name and slug fields. en-US text updated (title, subtitle, submit button -> "Continue"). Many locale files had four new keys added under taskChooseOrganization.createOrganization (mostly undefined placeholders); some locales also gained keys under other createOrganization blocks. Localization types were extended with the new keys. Tests and a Playwright page-object were updated to expect the new copy. A changeset bumps related packages.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10–15 minutes


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 6

Caution

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

⚠️ Outside diff range comments (3)
packages/localizations/src/nl-BE.ts (1)

16-16: Locale code mismatch: nl-BE file sets locale to nl-NL

This will select the wrong base locale and formatting rules for Belgian Dutch.

Apply this diff:

-  locale: 'nl-NL',
+  locale: 'nl-BE',
packages/localizations/src/ro-RO.ts (1)

186-186: Syntax error in dates.numeric (extra closing brace) and wrong locale token

There’s an extra '}' which will break templating. Also, the formatting locale is en-US instead of ro-RO, which likely isn’t intended.

Apply this fix (and align all date formatters to ro-RO):

-    numeric: "{{ date | numeric('en-US') }}}",
+    numeric: "{{ date | numeric('ro-RO') }}",

Optionally align the rest for consistency:

-    lastDay: "Ieri la {{ date | timeString('en-US') }}",
-    next6Days: "{{ date | weekday('en-US','long') }} la {{ date | timeString('en-US') }}",
-    nextDay: "Mâine la {{ date | timeString('en-US') }}",
-    previous6Days: "Ultimul {{ date | weekday('en-US','long') }} la {{ date | timeString('en-US') }}",
-    sameDay: "Astăzi la {{ date | timeString('en-US') }}",
+    lastDay: "Ieri la {{ date | timeString('ro-RO') }}",
+    next6Days: "{{ date | weekday('ro-RO','long') }} la {{ date | timeString('ro-RO') }}",
+    nextDay: "Mâine la {{ date | timeString('ro-RO') }}",
+    previous6Days: "Ultimul {{ date | weekday('ro-RO','long') }} la {{ date | timeString('ro-RO') }}",
+    sameDay: "Astăzi la {{ date | timeString('ro-RO') }}",
packages/localizations/src/es-ES.ts (1)

438-439: Placeholder variable mismatch (‘{{dominio}}’ vs expected ‘{{domain}}’) will render incorrectly.

The success message uses a non-existent placeholder name and won’t interpolate.

Apply this fix:

-      successMessage: '{{dominio}} ha sido eliminado.',
+      successMessage: '{{domain}} ha sido eliminado.',
🧹 Nitpick comments (109)
packages/localizations/src/is-IS.ts (5)

78-81: New free-trial cancellation strings left undefined—confirm intended fallback or add translations.

The commerce.cancelFreeTrial*, cancelFreeTrial, cancelFreeTrialDescription, cancelFreeTrialTitle were added as undefined. If the product expects a fallback to en-US at runtime, that’s fine; otherwise, Icelandic users may see English or missing strings. Please verify fallback behavior or provide translations.


115-115: keepFreeTrial is undefined—ensure fallback or add translation.

Same concern as above for commerce.keepFreeTrial. Verify fallback to en-US or provide an Icelandic string.


152-153: Subscription details: first payment keys are undefined—flagging for completion.

New keys commerce.subscriptionDetails.firstPaymentAmount and firstPaymentOn are undefined. If fallback is not guaranteed, add translations to avoid mixed-language UI in the billing screens.


160-161: Subscription details: trial date keys are undefined—flagging for completion.

New keys commerce.subscriptionDetails.trialEndsOn and trialStartedOn are undefined. Please confirm fallback or add Icelandic copies to keep the experience consistent.


820-823: Provide Icelandic translations for createOrganization form labels, placeholders, and buttons

In packages/localizations/src/is-IS.ts, under taskChooseOrganization.createOrganization, all of these keys are currently undefined. To avoid falling back to English or showing missing text, please fill them with the following Icelandic values:

Apply this diff in packages/localizations/src/is-IS.ts:

--- a/packages/localizations/src/is-IS.ts
+++ b/packages/localizations/src/is-IS.ts
@@ taskChooseOrganization.createOrganization {
-      formFieldInputPlaceholder__name: undefined,
+      formFieldInputPlaceholder__name: 'Nafn samtaka',
-      formFieldInputPlaceholder__slug: undefined,
+      formFieldInputPlaceholder__slug: 'min-samtok',
-      formFieldLabel__name: undefined,
+      formFieldLabel__name: 'Nafn',
-      formFieldLabel__slug: undefined,
+      formFieldLabel__slug: 'Stubbur (e. slug)',
-      formButtonReset: undefined,
+      formButtonReset: 'Sleppa',
-      formButtonSubmit: undefined,
+      formButtonSubmit: 'Stofna samtök',

This will align the Icelandic locale with en-US and existing terminology.

packages/localizations/src/id-ID.ts (4)

78-80: New free-trial cancellation strings are placeholders; track translation follow-up

The newly added commerce.cancelFreeTrial keys are left undefined. That’s acceptable if you intend to rely on en-US fallback, but please add them to your localization backlog to complete id-ID coverage.

If needed, I can propose Indonesian translations consistent with en-US once the exact English copies are finalized.


115-115: keepFreeTrial placeholder is undefined; confirm fallback or provide translation

Same note as above. If this is intentionally deferred to fallback, fine; otherwise, let’s add an id-ID string in a follow-up.


160-161: Trial start/end placeholders added; fine to defer, but don’t forget tracking

Same as above—undefined here is okay with fallback. Please ensure they’re captured in the localization backlog.


824-827: Add Indonesian translations for Create Organization form fields

In packages/localizations/src/id-ID.ts under createOrganization, replace the undefined placeholders and labels so they don’t fall back to English:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Organisasi saya',
+      formFieldInputPlaceholder__slug: 'organisasi-saya',
+      formFieldLabel__name: 'Nama',
+      formFieldLabel__slug: 'Slug',

These keys are referenced by the CreateOrganizationScreen component and already exist in en-US.ts. Filling them here ensures a consistent Indonesian user experience.

packages/localizations/src/he-IL.ts (5)

78-81: Fill free-trial cancellation strings instead of leaving them undefined

Set concrete translations to avoid fallback-to-English and align with the newly added flow.

Apply this diff:

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'בטל את תקופת הניסיון',
+    cancelFreeTrialDescription: 'אם תבטל כעת, לא תחויב בסיום תקופת הניסיון ותשמור על גישה עד לתאריך הסיום.',
+    cancelFreeTrialTitle: 'לבטל את תקופת הניסיון?',

115-115: Add translation for "keep free trial" action

Prevents English fallback in commerce cancellation dialog.

-    keepFreeTrial: undefined,
+    keepFreeTrial: 'השאר את תקופת הניסיון',

152-154: Translate subscriptionDetails: first payment labels

These labels are shown in billing details; provide clear Hebrew copies.

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'סכום התשלום הראשון',
+      firstPaymentOn: 'התשלום הראשון ב־',

160-161: Translate trial period dates

Adds localized labels for trial start/end.

-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'תקופת הניסיון מסתיימת ב־',
+      trialStartedOn: 'תקופת הניסיון התחילה ב־',

810-814: Translate TaskChooseOrganization form labels/placeholders

The English base (en-US.ts) defines these strings under taskChooseOrganization.createOrganization, but in packages/localizations/src/he-IL.ts (lines 810–813) they’re still undefined, so they’ll fall back to English at runtime. Please add Hebrew translations:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'שם הארגון',
+      formFieldInputPlaceholder__slug: 'הארגון-שלי',
+      formFieldLabel__name: 'שם הארגון',
+      formFieldLabel__slug: 'כתובת URL של הארגון',

Let me know if you’d like a hand refining these strings or pairing on any other locale updates.

packages/localizations/src/fa-IR.ts (6)

79-81: Provide Farsi translations for free-trial cancellation strings instead of undefined.

Avoid falling back to en-US to keep UX consistent in fa-IR.

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'لغو دوره آزمایشی رایگان',
+    cancelFreeTrialDescription: 'اگر دوره آزمایشی را لغو کنید، دسترسی شما در پایان دوره آزمایشی خاتمه می‌یابد.',
+    cancelFreeTrialTitle: 'لغو دوره آزمایشی؟',

120-120: Translate keepFreeTrial to avoid English fallback.

-    keepFreeTrial: undefined,
+    keepFreeTrial: 'حفظ دوره آزمایشی',

157-158: Add translations for first payment labels in subscription details.

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'مبلغ اولین پرداخت',
+      firstPaymentOn: 'اولین پرداخت در',

165-166: Add translations for trial start/end fields.

-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'پایان دوره آزمایشی در',
+      trialStartedOn: 'شروع دوره آزمایشی در',

880-881: Provide translations for organization error messages.

These are end-user visible; leaving them undefined will fall back to English.

-    organization_not_found_or_unauthorized: undefined,
-    organization_not_found_or_unauthorized_with_create_organization_disabled: undefined,
+    organization_not_found_or_unauthorized: 'سازمان پیدا نشد یا به آن دسترسی ندارید.',
+    organization_not_found_or_unauthorized_with_create_organization_disabled:
+      'سازمان پیدا نشد یا به آن دسترسی ندارید و ایجاد سازمان غیرفعال است.',

829-832: Add missing Farsi labels/placeholders for the “Create Organization” form

We’ve confirmed that all four keys already exist in the en-US base under taskChooseOrganization.createOrganization. To avoid a mixed-locale UI, please supply Farsi values that align with the English examples:

• formFieldInputPlaceholder__name: ‘نام سازمان’
• formFieldInputPlaceholder__slug: use the same example slug as en-US ('my-organization')
• formFieldLabel__name: ‘نام سازمان’
• formFieldLabel__slug: ‘اسلاگ’

Suggested diff in packages/localizations/src/fa-IR.ts:

     taskChooseOrganization: {
       createOrganization: {
-        formFieldInputPlaceholder__name: undefined,
-        formFieldInputPlaceholder__slug: undefined,
-        formFieldLabel__name: undefined,
-        formFieldLabel__slug: undefined,
+        formFieldInputPlaceholder__name: 'نام سازمان',
+        formFieldInputPlaceholder__slug: 'my-organization',
+        formFieldLabel__name: 'نام سازمان',
+        formFieldLabel__slug: 'اسلاگ',
       …
     }
packages/localizations/src/da-DK.ts (4)

78-80: Fill in free-trial cancellation strings (avoid shipping undefined).

These new keys are currently undefined and will fall back to en-US. If we intend to localize, here are concise, context-appropriate Danish suggestions.

Apply this diff:

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'Annuller gratis prøveperiode',
+    cancelFreeTrialDescription: 'Er du sikker på, at du vil annullere din gratis prøveperiode? Du beholder adgangen indtil prøveperioden udløber.',
+    cancelFreeTrialTitle: 'Annuller gratis prøveperiode',

115-115: Add translation for “keep free trial”.

If localization is desired, consider:

Apply this diff:

-    keepFreeTrial: undefined,
+    keepFreeTrial: 'Behold gratis prøveperiode',

152-153: Localize first-payment subscription details.

Proposed Danish copies:

Apply this diff:

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'Første betalingsbeløb',
+      firstPaymentOn: 'Første betaling den',

160-161: Localize trial start/end labels.

Proposed Danish copies:

Apply this diff:

-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'Prøveperioden slutter den',
+      trialStartedOn: 'Prøveperioden startede den',
packages/localizations/src/en-GB.ts (1)

821-824: Populate create-organization field copy for en-GB to avoid en-US fallback (and match British spelling).

These four new keys will drive visible labels/placeholders on the create-organization screen. Providing en-GB strings prevents mixed en-US fallback and keeps “organisation” spelling consistent.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'e.g. Acme Ltd',
+      formFieldInputPlaceholder__slug: 'acme-ltd',
+      formFieldLabel__name: 'Organisation name',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/ms-MY.ts (1)

826-829: Fill in create-organization labels/placeholders for Malay (ms-MY).

These surface in the form; proposing concise, natural Malay to avoid en-US fallback.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Nama organisasi',
+      formFieldInputPlaceholder__slug: 'organisasi-saya',
+      formFieldLabel__name: 'Nama organisasi',
+      formFieldLabel__slug: 'Slug',
packages/types/src/localization.ts (1)

1234-1237: Add a lightweight test to lock in localization resolution for the new keys.

Recommend a unit/snapshot test for CreateOrganizationScreen that asserts:

  • It renders en-US copy when locale has values.
  • It falls back to en-US when locale keys are undefined.

I can scaffold a test that mounts the component with a mocked localization provider and asserts the rendered labels/placeholders. Want me to draft it?

packages/localizations/src/zh-TW.ts (1)

807-810: Provide Traditional Chinese copy for create-organization fields to avoid fallback.

Proposed translations are consistent with existing zh-TW terminology (“組織名稱”, “URL 代稱”).

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: '例如:我的組織',
+      formFieldInputPlaceholder__slug: 'my-organization',
+      formFieldLabel__name: '組織名稱',
+      formFieldLabel__slug: 'URL 代稱',
packages/localizations/src/mn-MN.ts (1)

818-821: Add Mongolian strings for create-organization fields.

Keeps the form coherent without falling back to en-US.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'жишээ: Байгууллагын нэр',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Байгууллагын нэр',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/sr-RS.ts (1)

816-820: Prefill slug label and placeholder (and name label) from existing values

We already have suitable values in this locale:

  • formFieldLabel__organizationName: 'Naziv'
  • formFieldLabel__organizationSlug: 'Slug'
  • formFieldInputPlaceholder__organizationSlug: 'moja-org'

Filling these improves UX without waiting on a translation pass.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: undefined,
+      formFieldInputPlaceholder__slug: 'moja-org',
+      formFieldLabel__name: 'Naziv',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/hr-HR.ts (1)

820-824: Prefill name/slug label(s) and slug placeholder from existing equivalents

This locale already defines:

  • formFieldLabel__organizationName: 'Naziv'
  • formFieldLabel__organizationSlug: 'Slug'
  • formFieldInputPlaceholder__organizationSlug: 'moja-organizacija'

Mapping them here improves consistency.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: undefined,
+      formFieldInputPlaceholder__slug: 'moja-organizacija',
+      formFieldLabel__name: 'Naziv',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/bn-IN.ts (1)

823-827: Fill all four create-organization name/slug fields from existing strings

This locale already has the exact equivalents:

  • formFieldLabel__organizationName: 'নাম'
  • formFieldInputPlaceholder__organizationName: 'সংগঠনের নাম'
  • formFieldLabel__organizationSlug: 'স্লাগ'
  • formFieldInputPlaceholder__organizationSlug: 'my-org'

Setting them here avoids fallback to en-US.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'সংগঠনের নাম',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'নাম',
+      formFieldLabel__slug: 'স্লাগ',
packages/localizations/src/sk-SK.ts (1)

823-827: Populate create-organization name/slug fields from existing locale values

Available equivalents in this file:

  • formFieldLabel__organizationName: 'Názov organizácie'
  • formFieldInputPlaceholder__organizationName: 'Názov organizácie'
  • formFieldLabel__organizationSlug: 'URL adresa'
  • formFieldInputPlaceholder__organizationSlug: 'moja-organizacia'

Filling these avoids UI gaps.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Názov organizácie',
+      formFieldInputPlaceholder__slug: 'moja-organizacia',
+      formFieldLabel__name: 'Názov organizácie',
+      formFieldLabel__slug: 'URL adresa',
packages/localizations/src/vi-VN.ts (1)

826-829: Populate create-organization name/slug label/placeholders from existing VN strings

This file already has:

  • formFieldLabel__organizationName: 'Tên'
  • formFieldInputPlaceholder__organizationName: 'Tên tổ chức'
  • formFieldLabel__organizationSlug: 'Slug'
  • formFieldInputPlaceholder__organizationSlug: 'my-org'

Filling these prevents fallback and makes the Create Organization task screen fully localized.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Tên tổ chức',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Tên',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/nl-BE.ts (1)

818-822: Fill in the new create-organization labels/placeholders under taskChooseOrganization

New keys are added but left undefined. Either confirm fallback-to-en-US behavior for undefined values or provide localized strings to avoid UI gaps.

Suggested translations aligned with existing terms in this file:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Organisatienaam',
+      formFieldInputPlaceholder__slug: 'Bijv. mijn-org',
+      formFieldLabel__name: 'Organisatienaam',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/pl-PL.ts (1)

823-827: Provide Polish translations for the new create-organization fields

Undefined values may surface as empty labels if fallback doesn’t apply.

Proposed translations:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Nazwa organizacji',
+      formFieldInputPlaceholder__slug: 'np. moja-organizacja',
+      formFieldLabel__name: 'Nazwa organizacji',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/ro-RO.ts (1)

819-822: Fill the new create-organization labels/placeholders

Avoid undefined at runtime for the name/slug fields in TaskChooseOrganization.

Suggested Romanian translations:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Numele organizației',
+      formFieldInputPlaceholder__slug: 'ex. org-mea',
+      formFieldLabel__name: 'Numele organizației',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/fr-FR.ts (1)

828-832: Add French translations for new create-organization labels/placeholders

Undefined values risk blank labels in the session task Create Organization form.

Proposed FR strings:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: "Nom de l'organisation",
+      formFieldInputPlaceholder__slug: 'ex. mon-organisation',
+      formFieldLabel__name: "Nom de l'organisation",
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/ar-SA.ts (1)

816-819: Add Arabic translations for create-organization name/slug fields

Prevent empty labels/placeholders in the TaskChooseOrganization flow.

Proposed AR strings (RTL-friendly):

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'اسم المنظمة',
+      formFieldInputPlaceholder__slug: 'مثلاً: شركتي',
+      formFieldLabel__name: 'اسم المنظمة',
+      formFieldLabel__slug: 'المعرّف (Slug)',
packages/localizations/src/ca-ES.ts (2)

78-81: New commerce free-trial/subscription details keys left undefined — confirm fallback strategy

Undefined values will fall back to en-US. If that’s acceptable for now, proceed; otherwise, consider Catalan translations to avoid mixed UI language in commerce flows.

I can propose Catalan strings and add a follow-up PR if you prefer.

Also applies to: 115-115, 152-153, 160-161


817-820: Fill create-organization labels/placeholders for TaskChooseOrganization (suggested ca-ES)

Keeps the new screen consistent with the rest of the locale.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'La meva organització',
+      formFieldInputPlaceholder__slug: 'la-meva-org',
+      formFieldLabel__name: 'Nom',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/el-GR.ts (2)

78-81: Commerce free-trial and subscription detail keys added but unset — confirm en-US fallback is acceptable

These are undefined. If fallback is intended, OK; otherwise, Greek translations would prevent English strings appearing in billing surfaces.

I can help populate Greek translations in this PR or a follow-up. Let me know your preference.

Also applies to: 115-115, 152-153, 160-161


820-823: Provide Greek values for create-organization fields under session task

Adds basic Greek for the new labels and placeholders.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Ο οργανισμός μου',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Όνομα',
+      formFieldLabel__slug: 'Συντόμευση URL',
packages/localizations/src/be-BY.ts (2)

78-81: New commerce keys (free-trial + subscription details) are placeholders

Leaving these undefined will fall back to en-US. If that’s expected for now, fine; otherwise, consider adding be-BY strings to avoid English leakage in commerce UIs.

Happy to propose Belarusian translations and stage a follow-up.

Also applies to: 115-115, 152-153, 160-161


823-826: Set create-organization labels/placeholders for the task screen (suggested be-BY)

Prevents fallback and keeps the flow localized.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Мая арганізацыя',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Назва',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/hu-HU.ts (2)

78-81: Commerce free-trial and subscription detail strings are undefined — verify fallback vs. localization

Undefined values will use en-US strings. Confirm that’s OK for this release or prefer adding Hungarian now.

I can provide Hungarian translations and include them here or in a follow-up changeset.

Also applies to: 115-115, 152-153, 160-161


817-820: Populate TaskChooseOrganization create-organization fields (suggested hu-HU)

Localized labels and placeholders for the updated screen.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Szervezetem',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Név',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/cs-CZ.ts (2)

156-158: subscriptionDetails additions are undefined — fill or rely on fallback

New keys:

  • commerce.subscriptionDetails.firstPaymentAmount, firstPaymentOn
  • commerce.subscriptionDetails.trialEndsOn, trialStartedOn

Same concern as above. If these are intended to ship in this release, provide Czech strings or confirm fallback to en-US is in place.

Also applies to: 164-166


829-833: TaskChooseOrganization.createOrganization fields are undefined but referenced by UI

The CreateOrganization screen in the session task flow now references:

  • taskChooseOrganization.createOrganization.formField(InputPlaceholder|Label)__{name,slug}

Leaving these undefined will likely produce missing labels/placeholders if fallback fails.

Would you like me to propose initial Czech translations or temporarily mirror en-US here to avoid runtime gaps?

packages/localizations/src/pt-BR.ts (2)

829-836: Unify “slug” label with existing terminology in pt-BR

Elsewhere in this file, organization slug uses “Rótulo do URL” (Line 248). Here it’s “Slug”. For consistency and clarity, align the new key to “Rótulo do URL”.

Apply:

-      formFieldLabel__slug: 'Slug',
+      formFieldLabel__slug: 'Rótulo do URL',

79-81: Commerce free-trial and subscriptionDetails keys added as undefined — confirm fallback or localize

Undefined keys:

  • commerce.cancelFreeTrial, cancelFreeTrialDescription, cancelFreeTrialTitle
  • commerce.keepFreeTrial
  • commerce.subscriptionDetails.firstPaymentAmount, firstPaymentOn
  • commerce.subscriptionDetails.trialEndsOn, trialStartedOn

If there’s no guaranteed fallback to en-US at runtime, please add pt-BR strings; otherwise confirm fallback coverage.

Also, consider adding a small test to assert that the four new taskChooseOrganization.createOrganization keys are present for en-US and pt-BR and that non-en locales fall back (not “undefined”) in the CreateOrganization screen.

Also applies to: 121-121, 158-160, 166-168

packages/localizations/src/es-MX.ts (2)

78-80: New commerce keys are undefined — add es-MX strings or verify fallback

Undefined keys:

  • commerce.cancelFreeTrial, cancelFreeTrialDescription, cancelFreeTrialTitle
  • commerce.keepFreeTrial
  • commerce.subscriptionDetails.firstPaymentAmount, firstPaymentOn, trialEndsOn, trialStartedOn

Please provide translations or confirm fallback behavior so users don’t see missing text.

Also applies to: 115-115, 152-154, 160-162


825-829: Provide es-MX translations for Create Organization form fields (used by UI)

These new keys are read by the CreateOrganization screen. Suggest filling them now to avoid relying on fallback:

Apply:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Mi organización',
+      formFieldInputPlaceholder__slug: 'mi-organizacion',
+      formFieldLabel__name: 'Nombre',
+      formFieldLabel__slug: 'Apodo',

If you prefer different wording (e.g., “Identificador” instead of “Apodo”), I can update accordingly.

packages/localizations/src/ru-RU.ts (3)

78-80: Commerce free-trial strings are undefined — add ru-RU translations or confirm fallback

Undefined:

  • commerce.cancelFreeTrial, cancelFreeTrialDescription, cancelFreeTrialTitle
  • commerce.keepFreeTrial

Shipping as-is is fine if en-US fallback is guaranteed; otherwise add Russian strings.

Also applies to: 115-115


152-154: subscriptionDetails new keys are undefined — add translations or rely on fallback

Undefined:

  • commerce.subscriptionDetails.firstPaymentAmount, firstPaymentOn
  • commerce.subscriptionDetails.trialEndsOn, trialStartedOn

Same fallback concern as above.

Also applies to: 160-162


830-834: Create Organization form field keys are undefined but used by UI

Keys:

  • taskChooseOrganization.createOrganization.formField(InputPlaceholder|Label)__{name,slug}

Please add Russian strings or confirm fallback to en-US is guaranteed so labels/placeholders don’t render blank/undefined.

packages/localizations/src/pt-PT.ts (3)

78-80: Commerce free-trial strings are undefined — add pt-PT translations or confirm fallback

Undefined:

  • commerce.cancelFreeTrial, cancelFreeTrialDescription, cancelFreeTrialTitle
  • commerce.keepFreeTrial

If fallback to en-US is not applied at runtime, these will surface to users. Please add pt-PT translations or confirm fallback.

Also applies to: 115-115


152-154: subscriptionDetails trial/payment keys are undefined — fill or rely on fallback

Undefined:

  • commerce.subscriptionDetails.firstPaymentAmount, firstPaymentOn
  • commerce.subscriptionDetails.trialEndsOn, trialStartedOn

Same fallback caveat as above.

Also applies to: 160-161


816-819: Create Organization form field keys are undefined but will be rendered by the UI

Please provide pt-PT translations for:

  • taskChooseOrganization.createOrganization.formField(InputPlaceholder|Label)__{name,slug}

Or confirm fallback to en-US is in place to avoid missing copy on the create organization screen.

packages/localizations/src/bg-BG.ts (3)

78-80: Add translations for free-trial cancel/keep actions

These are user-facing. Suggest localized strings.

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'Откажи безплатния пробен период',
+    cancelFreeTrialDescription: 'Отказвайки, пробният период ще бъде прекратен незабавно.',
+    cancelFreeTrialTitle: 'Отказ от безплатния пробен период?',
...
-    keepFreeTrial: undefined,
+    keepFreeTrial: 'Запази безплатния пробен период',

Also applies to: 115-115


152-154: Populate new subscriptionDetails fields

Fills newly added billing detail labels.

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'Сума на първото плащане',
+      firstPaymentOn: 'Първо плащане на',
...
-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'Пробният период приключва на',
+      trialStartedOn: 'Пробният период започна на',

Also applies to: 160-162


818-821: Add Bulgarian translations for CreateOrganization form fields

To prevent falling back to English, populate these keys in packages/localizations/src/bg-BG.ts (around lines 818–821):

• File: packages/localizations/src/bg-BG.ts (lines 818–821)

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Име на организацията',
+      formFieldInputPlaceholder__slug: 'my-organization',
+      formFieldLabel__name: 'Име',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/ja-JP.ts (3)

818-821: Define create-organization labels/placeholders (JP) to prevent fallback

These are shown on the create organization screen.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: '組織名',
+      formFieldInputPlaceholder__slug: 'my-organization',
+      formFieldLabel__name: '組織名',
+      formFieldLabel__slug: 'スラグURL',

78-80: Provide JP translations for free-trial actions

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: '無料トライアルをキャンセル',
+    cancelFreeTrialDescription: '無料トライアルをキャンセルすると、トライアル特典は直ちに終了します。',
+    cancelFreeTrialTitle: '無料トライアルをキャンセルしますか?',
...
-    keepFreeTrial: undefined,
+    keepFreeTrial: '無料トライアルを継続',

Also applies to: 115-115


152-154: Populate JP subscriptionDetails fields

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: '初回支払額',
+      firstPaymentOn: '初回支払日',
...
-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'トライアル終了日',
+      trialStartedOn: 'トライアル開始日',

Also applies to: 160-162

packages/localizations/src/kk-KZ.ts (3)

810-813: Translate create-organization field labels/placeholders (KK)

Avoids en-US fallback and keeps consistency with existing organizationName/Slug terms.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Менің ұйымым',
+      formFieldInputPlaceholder__slug: 'my-organization',
+      formFieldLabel__name: 'Ұйым атауы',
+      formFieldLabel__slug: 'Slug',

78-80: Add KK translations for free-trial cancel/keep

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'Тегін сынақты болдырмау',
+    cancelFreeTrialDescription: 'Болдырсаңыз, сынақ бірден аяқталады.',
+    cancelFreeTrialTitle: 'Тегін сынақты болдырмақсыз ба?',
...
-    keepFreeTrial: undefined,
+    keepFreeTrial: 'Тегін сынақты сақтау',

Also applies to: 115-115


152-154: Populate KK subscriptionDetails fields

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'Алғашқы төлем сомасы',
+      firstPaymentOn: 'Алғашқы төлем күні',
...
-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'Сынақ аяқталу күні',
+      trialStartedOn: 'Сынақ басталған күні',

Also applies to: 160-162

packages/localizations/src/fi-FI.ts (3)

819-822: Define create-organization labels/placeholders (FI)

These appear on the create org screen during the session task.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Organisaation nimi',
+      formFieldInputPlaceholder__slug: 'minun-org',
+      formFieldLabel__name: 'Nimi',
+      formFieldLabel__slug: 'Slug',

78-80: Translate free-trial actions (FI)

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'Peruuta ilmainen kokeilu',
+    cancelFreeTrialDescription: 'Jos peruutat, kokeilujakso päättyy heti.',
+    cancelFreeTrialTitle: 'Peruutetaanko ilmainen kokeilu?',
...
-    keepFreeTrial: undefined,
+    keepFreeTrial: 'Pidä ilmainen kokeilu',

Also applies to: 115-115


152-154: Populate FI subscriptionDetails fields

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'Ensimmäisen maksun määrä',
+      firstPaymentOn: 'Ensimmäinen maksupäivä',
...
-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'Kokeilu päättyy',
+      trialStartedOn: 'Kokeilu alkoi',

Also applies to: 160-162

packages/localizations/src/zh-CN.ts (3)

806-809: Set create-organization labels/placeholders (zh-CN)

Prevents fallback and aligns with existing organizationName/Slug terminology.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: '我的组织',
+      formFieldInputPlaceholder__slug: 'my-organization',
+      formFieldLabel__name: '组织名称',
+      formFieldLabel__slug: 'URL 简称',

78-80: Translate free-trial cancel/keep (zh-CN)

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: '取消免费试用',
+    cancelFreeTrialDescription: '取消后,免费试用将立即结束,相关权益将失效。',
+    cancelFreeTrialTitle: '确认取消免费试用?',
...
-    keepFreeTrial: undefined,
+    keepFreeTrial: '保留免费试用',

Also applies to: 115-115


152-154: Populate zh-CN subscriptionDetails fields

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: '首次付款金额',
+      firstPaymentOn: '首次付款日期',
...
-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: '试用结束日期',
+      trialStartedOn: '试用开始日期',

Also applies to: 160-162

packages/localizations/src/uk-UA.ts (2)

152-154: Subscription details keys added but undefined — fill translations and confirm formatting tokens.

Please add translations for first payment and trial timing keys. When translating, ensure any placeholders/formatting match en-US (e.g., numbers, dates).

Same script above will confirm these keys exist in en-US and are referenced correctly.

Happy to draft UA translations consistent with the rest of this file.

Also applies to: 160-162


815-819: Create-organization form keys added under taskChooseOrganization — populate to avoid fallback.

Keys are correct and match the new UI, but values are undefined. Consider mapping them to the existing organization name/slug wording used elsewhere in this locale to keep consistency on the session task screen.

I can submit a follow-up patch with proposed Ukrainian strings aligned to existing terminology here.

packages/localizations/src/sv-SE.ts (3)

78-81: New commerce free-trial strings are undefined — add translations or confirm fallback.

Keys are correct; leaving them undefined will fall back to en-US if configured.

Use the verification script in the uk-UA comment to ensure base/usage alignment.

I can add Swedish translations for these keys if desired.

Also applies to: 115-115


152-154: Undefined subscription details keys — add translations and keep placeholders consistent with en-US.

When translating dates/amounts, mirror en-US token usage.

I can draft Swedish translations for these lines.

See the verification script in the uk-UA comment.

Also applies to: 160-162


821-825: Populate create-organization form labels/placeholders to avoid runtime fallback.

The keys are correct for the new UI. Suggest reusing the existing Swedish wording for organization name/slug.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Ange organisationsnamn',
+      formFieldInputPlaceholder__slug: 'min-organisation',
+      formFieldLabel__name: 'Organisationsnamn',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/es-ES.ts (3)

78-81: Commerce free-trial keys added but undefined — fill translations or confirm fallback.

Key names look right. Please provide es-ES strings to avoid en-US fallback.

Use the verification script in the uk-UA comment to check base/types/UI.

I can propose Spanish (es-ES) translations if helpful.

Also applies to: 115-115


152-154: Undefined subscription details keys — add translations and ensure placeholders match en-US.

Maintain consistency for date/amount placeholders when you translate.

I can prepare es-ES translations aligned with the base strings.

See the script in the uk-UA comment.

Also applies to: 160-162


819-823: Populate create-organization name/slug labels and placeholders.

These are the strings end-users will see in the session task flow. Reuse existing es-ES wording for organization name/slug to keep consistency.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Ingrese el nombre de la organización',
+      formFieldInputPlaceholder__slug: 'Ingrese un slug único para la organización',
+      formFieldLabel__name: 'Nombre de la Organización',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/es-UY.ts (3)

78-81: Commerce free-trial keys are undefined — translate or accept en-US fallback.

Names align with base. Consider adding es-UY strings now to avoid fallback.

I can provide suggested es-UY phrasing if needed.

Use the script shared in the uk-UA comment to confirm base/types/UI coverage.

Also applies to: 115-115


152-154: Undefined subscription details keys — translate and keep placeholders consistent.

When localizing, ensure amount/date placeholders match the en-US patterns.

See the script in the uk-UA comment.

I can propose translations adapted to es-UY tone.

Also applies to: 160-162


825-829: Fill create-organization form labels/placeholders to match existing es-UY wording.

These keys are used in the session task flow. Map them to the existing organization name/slug wording for consistency.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Nombre de la organización',
+      formFieldInputPlaceholder__slug: 'mi-org',
+      formFieldLabel__name: 'Nombre',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/hi-IN.ts (3)

78-81: Commerce free-trial keys added but undefined — translate to avoid fallback to en-US.

Key naming looks correct. Consider adding Hindi translations for cancel/keep free trial now.

I can draft suggested hi-IN translations if you prefer.

Use the verification script in the uk-UA comment to confirm base/types/UI usage.

Also applies to: 115-115


152-154: Undefined subscription details keys — translate and validate placeholders.

Ensure the localized strings preserve any variable placeholders used by en-US.

I can help author suitable hi-IN strings for these.

See the script in the uk-UA comment.

Also applies to: 160-162


823-827: Populate create-organization form labels/placeholders to avoid fallback.

These keys are referenced by the updated CreateOrganizationScreen. Reuse existing hi-IN wording for organization name/slug for consistency.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'संगठन का नाम',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'नाम',
+      formFieldLabel__slug: 'स्लग',
packages/localizations/src/it-IT.ts (5)

79-81: Fill new free-trial cancellation strings to avoid fallback UI.

Provide Italian translations for the newly added keys to prevent falling back to en-US.

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'Annulla periodo di prova',
+    cancelFreeTrialDescription: "Se annulli la prova gratuita, al termine del periodo di prova perderai l'accesso alle funzionalità premium. Vuoi continuare?",
+    cancelFreeTrialTitle: 'Annullare la prova gratuita?',

121-121: Provide translation for “keepFreeTrial”.

Avoid undefined so users don’t see fallback copy.

-    keepFreeTrial: undefined,
+    keepFreeTrial: 'Mantieni la prova gratuita',

158-160: Translate subscription details fields.

These appear in billing UI; fill them for consistency.

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'Importo del primo pagamento',
+      firstPaymentOn: 'Primo pagamento il',

166-167: Translate trial period details.

-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'Fine del periodo di prova il',
+      trialStartedOn: 'Periodo di prova iniziato il',

826-830: Add create-organization field labels/placeholders (session task flow).

These are now referenced by CreateOrganizationScreen; translate to avoid mixed-language UI.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: "Inserisci il nome dell'organizzazione",
+      formFieldInputPlaceholder__slug: "Inserisci lo slug dell'organizzazione",
+      formFieldLabel__name: 'Nome organizzazione',
+      formFieldLabel__slug: 'Slug',
.changeset/fuzzy-trains-thank.md (1)

7-7: Polish the changeset summary for clarity.

Minor grammatical tweak for readability.

-Update copies for create organization screen on session tasks
+Update copy for the “Create organization” screen in session tasks

Also consider checking the boxes in the PR template (tests/build/JSDoc/docs) if applicable before merging.

packages/localizations/src/de-DE.ts (6)

78-81: Add German translations for free-trial cancellation strings.

These are user-facing and should not be left undefined.

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'Kostenlose Testphase beenden',
+    cancelFreeTrialDescription: 'Wenn Sie die kostenlose Testphase beenden, verlieren Sie nach Ablauf des Testzeitraums den Zugriff auf Premiumfunktionen. Möchten Sie fortfahren?',
+    cancelFreeTrialTitle: 'Kostenlose Testphase beenden?',

99-99: Translate “freeTrialEndsAt” line item title.

-        title__freeTrialEndsAt: undefined,
+        title__freeTrialEndsAt: 'Kostenlose Testphase endet am',

118-118: Provide translation for “keepFreeTrial”.

-    keepFreeTrial: undefined,
+    keepFreeTrial: 'Kostenlose Testphase beibehalten',

155-156: Translate first payment fields.

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'Betrag der ersten Zahlung',
+      firstPaymentOn: 'Erste Zahlung am',

163-164: Translate trial period fields.

-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'Testphase endet am',
+      trialStartedOn: 'Testphase gestartet am',

829-833: Translate create-organization task form fields.

These are now referenced by the UI.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Organisationsname eingeben',
+      formFieldInputPlaceholder__slug: 'Slug eingeben',
+      formFieldLabel__name: 'Organisationsname',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/nb-NO.ts (5)

78-81: Add Norwegian translations for free-trial cancellation strings.

-    cancelFreeTrial: undefined,
-    cancelFreeTrialDescription: undefined,
-    cancelFreeTrialTitle: undefined,
+    cancelFreeTrial: 'Avslutt gratis prøveperiode',
+    cancelFreeTrialDescription: 'Hvis du avslutter gratis prøveperioden, mister du tilgang til premiumfunksjoner når perioden utløper. Vil du fortsette?',
+    cancelFreeTrialTitle: 'Avslutte gratis prøveperiode?',

115-115: Provide translation for “keepFreeTrial”.

-    keepFreeTrial: undefined,
+    keepFreeTrial: 'Behold gratis prøveperiode',

152-154: Translate first payment subscription details.

-      firstPaymentAmount: undefined,
-      firstPaymentOn: undefined,
+      firstPaymentAmount: 'Beløp for første betaling',
+      firstPaymentOn: 'Første betaling den',

160-161: Translate trial period details.

-      trialEndsOn: undefined,
-      trialStartedOn: undefined,
+      trialEndsOn: 'Prøveperioden slutter den',
+      trialStartedOn: 'Prøveperioden startet den',

817-821: Translate create-organization task form fields.

These are referenced by CreateOrganizationScreen.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Skriv inn organisasjonsnavn',
+      formFieldInputPlaceholder__slug: 'Skriv inn slug',
+      formFieldLabel__name: 'Organisasjonsnavn',
+      formFieldLabel__slug: 'Slug',
packages/localizations/src/tr-TR.ts (1)

819-822: Create-organization form keys added — matches UI change.

The name/slug labels and placeholders under taskChooseOrganization.createOrganization look correct for the updated CreateOrganizationScreen usage.

If desirable, I can help draft Turkish translations for these four strings to avoid undefined fallbacks in screenshots/demos.

packages/localizations/src/th-TH.ts (1)

815-818: TaskChooseOrganization create form keys — aligned and scoped correctly.

New name/slug labels and placeholders are correctly placed under taskChooseOrganization.createOrganization.

Would you like a checklist PR comment generated to track filling these four translations across locales?

packages/localizations/src/en-US.ts (1)

815-822: Grammar nit: “Set up your organization”; align slug example with existing placeholder

  • Title should use the verb form “Set up” instead of the noun “Setup”.
  • Consider aligning the slug example with the existing global placeholder (my-org) for consistency with formFieldInputPlaceholder__organizationSlug above.

Apply this diff:

 createOrganization: {
   formButtonReset: 'Cancel',
   formButtonSubmit: 'Continue',
   formFieldInputPlaceholder__name: 'My Organization',
-  formFieldInputPlaceholder__slug: 'my-organization',
+  formFieldInputPlaceholder__slug: 'my-org',
   formFieldLabel__name: 'Name',
   formFieldLabel__slug: 'Slug',
   subtitle: 'Enter your organization details to continue',
-  title: 'Setup your organization',
+  title: 'Set up your organization',
 },
packages/localizations/src/te-IN.ts (1)

825-828: Fill name/slug labels and placeholders by reusing existing Telugu strings

We already have consistent translations for organization name/slug elsewhere in this file. Reusing them here improves UX immediately and keeps parity with existing UI text.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'సంస్థ పేరు',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'పేరు',
+      formFieldLabel__slug: 'స్లగ్',

If you want, I can sweep other locales to apply the same safe reuse where applicable and open a follow-up PR.

Comment on lines +31 to 38
label: localizationKeys('taskChooseOrganization.createOrganization.formFieldLabel__name'),
placeholder: localizationKeys('taskChooseOrganization.createOrganization.formFieldInputPlaceholder__name'),
});
const slugField = useFormControl('slug', '', {
type: 'text',
label: localizationKeys('formFieldLabel__organizationSlug'),
placeholder: localizationKeys('formFieldInputPlaceholder__organizationSlug'),
label: localizationKeys('taskChooseOrganization.createOrganization.formFieldLabel__slug'),
placeholder: localizationKeys('taskChooseOrganization.createOrganization.formFieldInputPlaceholder__slug'),
});
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

LGTM: localization keys correctly migrated to the new taskChooseOrganization path.

  • New label/placeholder keys align with the updated localization surface.
  • No logic changes; input validation and submission remain intact.

Run this quick check to ensure:

  • en-US has the new keys,
  • types include them,
  • no lingering references to the old keys in SessionTasks.

If you want, I can add a lightweight test that renders this screen with a mock localization to assert label/placeholder usage.


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Check en-US definitions for new keys:"
rg -nP "taskChooseOrganization\.createOrganization\.(formField(Label|InputPlaceholder)__(name|slug))\s*:" packages/localizations/src/en-US.ts -C2 || true

echo
echo "Check type surface includes the new keys:"
rg -nP "taskChooseOrganization.*createOrganization.*formFieldLabel__name" packages/types/src -n -C2 || true

echo
echo "Find any remaining references to old org name/slug keys in SessionTasks:"
rg -nP "formField(Label|InputPlaceholder)__organization(Name|Slug)" packages/clerk-js/src/ui/components/SessionTasks -n -C2 || true

Length of output: 765


Missing localization key definitions in en-US.ts and types

The new keys referenced in CreateOrganizationScreen.tsx aren’t defined in the localization files or the type surface, so they’ll break at runtime and in typing:

• packages/localizations/src/en-US.ts is missing:

  • taskChooseOrganization.createOrganization.formFieldLabel__name
  • taskChooseOrganization.createOrganization.formFieldInputPlaceholder__name
  • taskChooseOrganization.createOrganization.formFieldLabel__slug
  • taskChooseOrganization.createOrganization.formFieldInputPlaceholder__slug

• packages/types/src (your localization key union) needs to include those same four keys.

Suggested additions:

— packages/localizations/src/en-US.ts

export default {
  // …
  'taskChooseOrganization.createOrganization.formFieldLabel__name': 'Organization Name',
  'taskChooseOrganization.createOrganization.formFieldInputPlaceholder__name': 'Enter organization name',
  'taskChooseOrganization.createOrganization.formFieldLabel__slug': 'Organization Slug',
  'taskChooseOrganization.createOrganization.formFieldInputPlaceholder__slug': 'Enter organization slug',
  // …
}

— packages/types/src/index.ts (or wherever LocalizationKeys is defined)

export type LocalizationKeys =
  // …
  | 'taskChooseOrganization.createOrganization.formFieldLabel__name'
  | 'taskChooseOrganization.createOrganization.formFieldInputPlaceholder__name'
  | 'taskChooseOrganization.createOrganization.formFieldLabel__slug'
  | 'taskChooseOrganization.createOrganization.formFieldInputPlaceholder__slug'
  // …

Once those are in place, the labels and placeholders will resolve correctly.

🤖 Prompt for AI Agents
In
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/CreateOrganizationScreen.tsx
around lines 31-38, the localization keys referenced for the name and slug
labels/placeholders are missing from the English localization and the
LocalizationKeys type union; add the following four keys to
packages/localizations/src/en-US.ts with appropriate English strings:
taskChooseOrganization.createOrganization.formFieldLabel__name,
taskChooseOrganization.createOrganization.formFieldInputPlaceholder__name,
taskChooseOrganization.createOrganization.formFieldLabel__slug,
taskChooseOrganization.createOrganization.formFieldInputPlaceholder__slug; then
update the localization keys union in packages/types/src (where LocalizationKeys
is defined) to include the exact same four string literal types so TypeScript
recognizes them; finally run the type check/build to ensure the keys resolve
correctly.

Comment on lines +816 to +819
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Provide Danish labels/placeholders for create-organization fields in the task flow.

These are the keys directly tied to the PR objective. Recommend aligning with existing translations used elsewhere (e.g., organizationName/organizationSlug) for consistency.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Indtast organisationens navn',
+      formFieldInputPlaceholder__slug: 'Indtast slug URL',
+      formFieldLabel__name: 'Navn',
+      formFieldLabel__slug: 'Slug URL',

To verify the new keys exist in the base locale and are consumed consistently, run:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Locate files
EN_FILE="$(fd -t f 'en-US.ts' | head -n1)"
DK_FILE="$(fd -t f 'da-DK.ts' | head -n1)"

if [[ -z "${EN_FILE:-}" || -z "${DK_FILE:-}" ]]; then
  echo "Could not locate en-US.ts or da-DK.ts" >&2
  exit 1
fi

echo "en-US: $EN_FILE"
echo "da-DK: $DK_FILE"
echo

# Keys to verify across locales
keys=(
  'cancelFreeTrial:'
  'cancelFreeTrialDescription:'
  'cancelFreeTrialTitle:'
  'keepFreeTrial:'
  'firstPaymentAmount:'
  'firstPaymentOn:'
  'trialEndsOn:'
  'trialStartedOn:'
  'formFieldInputPlaceholder__name:'
  'formFieldInputPlaceholder__slug:'
  'formFieldLabel__name:'
  'formFieldLabel__slug:'
)

missing=false
for k in "${keys[@]}"; do
  echo "=== Key: $k"
  rg -nP "$k" "$EN_FILE" -C1 || { echo "Missing in en-US: $k"; missing=true; }
  rg -nP "$k" "$DK_FILE" -n || { echo "Missing in da-DK: $k"; missing=true; }
  echo
done

$missing && { echo "One or more keys missing. Please reconcile."; exit 1; } || echo "All keys present in en-US and da-DK."

Length of output: 6208



---

🏁 Script executed:

```shell
#!/bin/bash
set -euo pipefail

EN_FILE="packages/localizations/src/en-US.ts"
DK_FILE="packages/localizations/src/da-DK.ts"

echo "=== organizationName in en-US.ts ==="
rg -nP "organizationName:" "$EN_FILE" -C1 || echo "not found"
echo

echo "=== organizationName in da-DK.ts ==="
rg -nP "organizationName:" "$DK_FILE" -C1 || echo "not found"
echo

echo "=== organizationSlug in en-US.ts ==="
rg -nP "organizationSlug:" "$EN_FILE" -C1 || echo "not found"
echo

echo "=== organizationSlug in da-DK.ts ==="
rg -nP "organizationSlug:" "$DK_FILE" -C1 || echo "not found"
echo

echo "=== Context around other 'Slug' translations in da-DK.ts ==="
rg -nP "Slug" "$DK_FILE" -C2 | head -n20
```

Length of output: 3321

---



</details>

**Add Danish translations for create-organization placeholders and labels**

Please update packages/localizations/src/da-DK.ts around lines 816–819 to mirror the existing organizationName/organizationSlug translations:

```diff
@@ packages/localizations/src/da-DK.ts
-      formFieldInputPlaceholder__name: undefined,
+      formFieldInputPlaceholder__name: 'Indtast organisationens navn',
-      formFieldInputPlaceholder__slug: undefined,
+      formFieldInputPlaceholder__slug: 'Indtast slug URL',
-      formFieldLabel__name: undefined,
+      formFieldLabel__name: 'Organisationens navn',
-      formFieldLabel__slug: undefined,
+      formFieldLabel__slug: 'Slug URL',
```

• These keys already exist in en-US.ts and da-DK.ts but are currently undefined.  
• Aligning with the domain-verification translations ensures consistency.  
• Let me know if you’d like any help verifying or adjusting phrasing.

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

```suggestion
      formFieldInputPlaceholder__name: 'Indtast organisationens navn',
      formFieldInputPlaceholder__slug: 'Indtast slug URL',
      formFieldLabel__name: 'Organisationens navn',
      formFieldLabel__slug: 'Slug URL',
```

</details>

<!-- suggestion_end -->

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
In packages/localizations/src/da-DK.ts around lines 816 to 819, four keys
(formFieldInputPlaceholder__name, formFieldInputPlaceholder__slug,
formFieldLabel__name, formFieldLabel__slug) are set to undefined; replace the
undefined values with the Danish strings matching the existing
organizationName/organizationSlug translations (use the same phrasing used
elsewhere in this file for organizationName and organizationSlug), i.e. set the
placeholder keys to the Danish placeholder text and the label keys to the Danish
label text so they mirror en-US entries and maintain consistency with
domain-verification translations.
```

</details>

<!-- fingerprinting:phantom:poseidon:chinchilla -->

<!-- This is an auto-generated comment by CodeRabbit -->

Comment on lines +825 to +828
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Populate create-organization labels/placeholders for the session task (suggested es-CR)

Setting these avoids en-US fallback in the new Create Organization screen.

Apply:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Mi organización',
+      formFieldInputPlaceholder__slug: 'mi-organizacion',
+      formFieldLabel__name: 'Nombre',
+      formFieldLabel__slug: 'Apodo',

To verify usage aligns with the new path:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Check UI references the new taskChooseOrganization.createOrganization keys"
rg -nP "taskChooseOrganization\.createOrganization\.(formField(Label|InputPlaceholder)__(name|slug))" packages/clerk-js -C2

Length of output: 2075


Populate es-CR translations for Create Organization form fields

To prevent falling back to en-US in the new Create Organization screen, add the Spanish (Costa Rica) labels and placeholders for the taskChooseOrganization.createOrganization keys. Verified that CreateOrganizationScreen.tsx references all four keys.

File: packages/localizations/src/es-CR.ts (around lines 825–828)

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Mi organización',
+      formFieldInputPlaceholder__slug: 'mi-organizacion',
+      formFieldLabel__name: 'Nombre',
+      formFieldLabel__slug: 'Apodo',
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
formFieldInputPlaceholder__name: 'Mi organización',
formFieldInputPlaceholder__slug: 'mi-organizacion',
formFieldLabel__name: 'Nombre',
formFieldLabel__slug: 'Apodo',
🤖 Prompt for AI Agents
In packages/localizations/src/es-CR.ts around lines 825–828, the four keys for
taskChooseOrganization.createOrganization are left undefined causing fallback to
en-US; populate them with Spanish (Costa Rica) strings: set formFieldLabel__name
to "Nombre de la organización", formFieldInputPlaceholder__name to "Ingrese el
nombre de la organización", formFieldLabel__slug to "Slug de la organización",
and formFieldInputPlaceholder__slug to "Ingrese el slug de la organización" so
the Create Organization screen uses es-CR translations.

Comment on lines 78 to 80
cancelFreeTrial: undefined,
cancelFreeTrialDescription: undefined,
cancelFreeTrialTitle: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

New commerce keys are undefined; confirm fallback or add translations

The following keys are added as placeholders: cancelFreeTrial, cancelFreeTrialDescription, cancelFreeTrialTitle, keepFreeTrial, subscriptionDetails.firstPaymentAmount/On, trialEndsOn/StartedOn. If the runtime does not backfill undefined keys from en-US, these will render blank.

Run this to ensure en-US defines these keys and to confirm the fallback strategy:

Also applies to: 115-115, 152-154, 160-161


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Verify keys exist in en-US
fd -a en-US.ts | while read -r f; do
  echo "Checking $f"
  rg -n "taskChooseOrganization|formFieldLabel__name|formFieldInputPlaceholder__name|formFieldLabel__slug|formFieldInputPlaceholder__slug|cancelFreeTrial|cancelFreeTrialDescription|cancelFreeTrialTitle|keepFreeTrial|firstPaymentAmount|firstPaymentOn|trialEndsOn|trialStartedOn" "$f" -n -C2
done

# Try to locate localization merge/fallback logic (should not override with undefined)
rg -nP --type=ts -C2 "fallback|merge|local(e|ization)|defaultLocale"

Length of output: 268636


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Locate and display the parseLocalizationResource implementation
echo "Searching for parseLocalizationResource definition..."
rg -nP "parseLocalizationResource" -C5 packages/clerk-js/src/ui/localization/parseLocalization.ts || true

echo
echo "Printing first 200 lines of parseLocalization.ts for context..."
sed -n '1,200p' packages/clerk-js/src/ui/localization/parseLocalization.ts

Length of output: 2178


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Display fastDeepMergeAndReplace implementation
echo "Searching for fastDeepMergeAndReplace in shared utils..."
rg -n "fastDeepMergeAndReplace" -C5 packages/shared/src/utils/fastDeepMerge.ts || echo "Not found"

echo
echo "Printing entire fastDeepMerge file for context..."
sed -n '1,200p' packages/shared/src/utils/fastDeepMerge.ts

Length of output: 2775


Provide Dutch (nl-BE) translations for the new commerce keys (or remove the undefined placeholders to fall back to English)

The merge logic (fastDeepMergeAndReplace) will override the base en-US values with your explicit undefined, resulting in blank strings at runtime. Either supply Dutch translations or omit the undefined entries so the English defaults are used.

In packages/localizations/src/nl-BE.ts (nl-BE):

• Lines 78-80, 115, 152-154, 160-161
– cancelFreeTrial
– cancelFreeTrialDescription
– cancelFreeTrialTitle
– keepFreeTrial
– subscriptionDetails.firstPaymentAmount
– subscriptionDetails.firstPaymentOn
– subscriptionDetails.trialEndsOn
– subscriptionDetails.trialStartedOn

🤖 Prompt for AI Agents
In packages/localizations/src/nl-BE.ts around lines 78-80 (and also affecting
lines ~115, 152-154, 160-161), there are explicit undefined placeholders for
commerce keys (cancelFreeTrial, cancelFreeTrialDescription,
cancelFreeTrialTitle, keepFreeTrial, subscriptionDetails.firstPaymentAmount,
subscriptionDetails.firstPaymentOn, subscriptionDetails.trialEndsOn,
subscriptionDetails.trialStartedOn) which will overwrite English defaults with
blank values; either remove these undefined entries so the en-US strings are
used as fallback, or replace each undefined with the proper Dutch (nl-BE)
translation for the corresponding key, ensuring string values are provided
rather than undefined.

Comment on lines 152 to 154
firstPaymentAmount: undefined,
firstPaymentOn: undefined,
nextPaymentAmount: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

New subscriptionDetails date/amount keys — verify base and usages

These keys match the expanded surface. When localizing later, ensure placeholders mirror en-US (amounts and dates) and use the same formatting helpers. Also verify types and UI now reference these keys.

Run this script to confirm types, en-US base strings, and UI references exist for the new keys:

Also applies to: 160-162


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "1) Types include new taskChooseOrganization.createOrganization keys:"
rg -n -C2 -S $'formField(Label|InputPlaceholder)__name|formField(Label|InputPlaceholder)__slug' packages/types/src

echo
echo "2) en-US has base strings for new create-organization keys:"
rg -n -C2 -S $'taskChooseOrganization\\.createOrganization\\.(formFieldLabel__name|formFieldInputPlaceholder__name|formFieldLabel__slug|formFieldInputPlaceholder__slug)' packages/localizations/src/en-US.ts || true

echo
echo "3) UI references updated keys in CreateOrganization screen:"
rg -n -C3 -S $'taskChooseOrganization\\.createOrganization\\.(formFieldLabel__name|formFieldInputPlaceholder__name|formFieldLabel__slug|formFieldInputPlaceholder__slug)' packages/clerk-js/src

echo
echo "4) en-US/type/UI presence for new subscriptionDetails keys:"
rg -n -C2 -S $'subscriptionDetails\\.(firstPaymentAmount|firstPaymentOn|trialEndsOn|trialStartedOn)' packages/localizations/src/en-US.ts packages/types/src packages/clerk-js/src

Length of output: 5203


Missing base localization entries and type/UI references for new keys

We verified both taskChooseOrganization.createOrganization and commerce.subscriptionDetails additions:

  • Create Organization
    • types updated (packages/types/src/localization.ts)
    • UI references updated (CreateOrganizationScreen.tsx)
    Missing base strings in packages/localizations/src/en-US.ts for:

    • taskChooseOrganization.createOrganization.formFieldLabel__name
    • taskChooseOrganization.createOrganization.formFieldInputPlaceholder__name
    • taskChooseOrganization.createOrganization.formFieldLabel__slug
    • taskChooseOrganization.createOrganization.formFieldInputPlaceholder__slug
  • Subscription Details
    • Keys added in packages/localizations/src/sr-RS.ts:

    • firstPaymentAmount
    • firstPaymentOn
    • nextPaymentAmount
      Missing:
    • Base strings in packages/localizations/src/en-US.ts under commerce.subscriptionDetails
    • Type definitions in packages/types/src/localization.ts (firstPaymentAmount, firstPaymentOn, nextPaymentAmount)
    • UI references in packages/clerk-js/src/ui/components/SubscriptionDetails/index.tsx (e.g. localizationKeys('commerce.subscriptionDetails.firstPaymentAmount'), etc)

Also applies to lines 160–162. Please add the missing entries and update types/UI accordingly.

🤖 Prompt for AI Agents
In packages/localizations/src/sr-RS.ts around lines 152–154 (and similarly
160–162), new keys for commerce.subscriptionDetails (firstPaymentAmount,
firstPaymentOn, nextPaymentAmount) exist but corresponding base English entries
and type/UI references are missing; add these keys to
packages/localizations/src/en-US.ts under commerce.subscriptionDetails with
appropriate English strings, update the localization type definitions in
packages/types/src/localization.ts to include firstPaymentAmount,
firstPaymentOn, and nextPaymentAmount, and update UI usage in
packages/clerk-js/src/ui/components/SubscriptionDetails/index.tsx to reference
localizationKeys('commerce.subscriptionDetails.firstPaymentAmount'),
localizationKeys('commerce.subscriptionDetails.firstPaymentOn'), and
localizationKeys('commerce.subscriptionDetails.nextPaymentAmount'); also add the
missing taskChooseOrganization.createOrganization keys (formFieldLabel__name,
formFieldInputPlaceholder__name, formFieldLabel__slug,
formFieldInputPlaceholder__slug) to packages/localizations/src/en-US.ts and
ensure types and CreateOrganizationScreen.tsx reference the new keys.

Comment on lines 78 to 81
cancelFreeTrial: undefined,
cancelFreeTrialDescription: undefined,
cancelFreeTrialTitle: undefined,
cancelSubscription: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

New commerce free-trial keys added but left undefined — ensure base and types are in sync and fill translations.

The structure and key names align with the en-US surface, but all values are undefined. This will fall back to en-US at runtime (if fallback is configured) and ship untranslated UI.

Run this to verify the base locale and types surface include these keys and to locate UI references using them:

I can propose Ukrainian translations for these new strings if you want to avoid fallback behavior.

Also applies to: 115-115


🏁 Script executed:

#!/bin/bash
echo "Checking en-US base for new commerce keys…"
fd -a en-US.ts | xargs -I{} rg -nP -C1 'cancelFreeTrial|keepFreeTrial' {}

echo; echo "Checking types surface for new create-organization form keys…"
rg -nP -C2 'formField(InputPlaceholder|Label)__name|formField(InputPlaceholder|Label)__slug' packages/types || true

echo; echo "Checking UI references in CreateOrganizationScreen…"
rg -nP -C2 'formField(InputPlaceholder|Label)__name|formField(InputPlaceholder|Label)__slug' packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization || true

Length of output: 3703


🏁 Script executed:

#!/bin/bash
echo "Checking types surface for new commerce localization keys…"
rg -nP -C1 'cancelFreeTrial|cancelFreeTrialDescription|cancelFreeTrialTitle|cancelSubscription|keepFreeTrial|keepSubscription' packages/types/src/localization.ts || echo "No matches in types"

echo; echo "Checking UI references for commerce localization keys…"
rg -nP -n 'cancelFreeTrial|cancelFreeTrialDescription|cancelFreeTrialTitle|cancelSubscription|keepFreeTrial|keepSubscription' packages || echo "No matches in UI"

Length of output: 39748


Fill in Ukrainian translations for new commerce keys

The uk-UA.ts locale has correctly added the new commerce keys but all are undefined, causing a fallback to English at runtime. Please provide Ukrainian translations for these entries to ensure the UI is properly localized.

Points to address:

  • File packages/localizations/src/uk-UA.ts, lines 78–84 and 115–116:
    • cancelFreeTrial
    • cancelFreeTrialDescription
    • cancelFreeTrialTitle
    • cancelSubscription
    • cancelSubscriptionAccessUntil
    • cancelSubscriptionNoCharge
    • cancelSubscriptionTitle
    • keepFreeTrial
    • keepSubscription

Let me know if you’d like help drafting the Ukrainian translations.

🤖 Prompt for AI Agents
In packages/localizations/src/uk-UA.ts around lines 78–84 and 115–116, the new
commerce keys are set to undefined; replace each undefined value with the
appropriate Ukrainian translation for the keys: cancelFreeTrial,
cancelFreeTrialDescription, cancelFreeTrialTitle, cancelSubscription,
cancelSubscriptionAccessUntil, cancelSubscriptionNoCharge,
cancelSubscriptionTitle, keepFreeTrial, and keepSubscription; ensure each value
is a UTF-8 string in Ukrainian that matches the English intent and tone used in
other locale files and save the file so the runtime no longer falls back to
English.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (4)
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx (4)

25-26: Copy expectations updated — OK; prefer role-based query for the title for robustness

The assertions are correct for the new copy. For better accessibility alignment and resilience against non-title text collisions, prefer querying the title via role.

-      expect(queryByText('Setup your organization')).not.toBeInTheDocument();
+      expect(queryByRole('heading', { name: /setup your organization/i })).not.toBeInTheDocument();

45-46: Use role-based query for the title

This anchors the assertion to the actual heading element and is less brittle than a raw text query.

-      expect(getByText('Setup your organization')).toBeInTheDocument();
+      expect(getByRole('heading', { name: /setup your organization/i })).toBeInTheDocument();

25-26: Nit: “Setup” vs “Set up”

If the product copy isn’t finalized by Content/UX, consider “Set up your organization” (verb) instead of “Setup your organization” (noun). If “Setup” is intentional branding, ignore.

Also applies to: 45-46


66-66: Assert the submit action via role, not text

Using role ensures we’re checking the actionable element and not another text node. Also future-proofs against minor copy tweaks while keeping semantic intent.

-      expect(getByText('Continue')).toBeInTheDocument();
+      expect(getByRole('button', { name: /continue/i })).toBeInTheDocument();
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 2a1d4ba and 9c5dd7b.

📒 Files selected for processing (1)
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx (4 hunks)
🧰 Additional context used
📓 Path-based instructions (14)
packages/clerk-js/src/ui/**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/clerk-js-ui.mdc)

packages/clerk-js/src/ui/**/*.{ts,tsx}: Element descriptors should always be camelCase
Use element descriptors in UI components to enable consistent theming and styling via appearance.elements
Element descriptors should generate unique, stable CSS classes for theming
Element descriptors should handle state classes (e.g., cl-loading, cl-active, cl-error, cl-open) automatically based on component state
Do not render hard-coded values; all user-facing strings must be localized using provided localization methods
Use the useLocalizations hook and localizationKeys utility for all text and error messages
Use the styled system (sx prop, theme tokens, responsive values) for custom component styling
Use useCardState for card-level state, useFormState for form-level state, and useLoadingStatus for loading states
Always use handleError utility for API errors and use translateError for localized error messages
Use useFormControl for form field state, implement proper validation, and handle loading and error states in forms
Use localization keys for all form labels and placeholders
Use element descriptors for consistent styling and follow the theme token system
Use the Card and FormContainer patterns for consistent UI structure

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

**/*.{js,jsx,ts,tsx}: All code must pass ESLint checks with the project's configuration
Follow established naming conventions (PascalCase for components, camelCase for variables)
Maintain comprehensive JSDoc comments for public APIs
Use dynamic imports for optional features
All public APIs must be documented with JSDoc
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
Profile and optimize critical paths
Validate all inputs and sanitize outputs
Implement proper logging with different levels

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.{js,jsx,ts,tsx,json,css,scss,md,yaml,yml}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Use Prettier for consistent code formatting

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
packages/**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

TypeScript is required for all packages

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
packages/**/*.{ts,tsx,d.ts}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Packages should export TypeScript types alongside runtime code

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Use proper TypeScript error types

**/*.{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
Avoid any type - prefer unknown when type is uncertain, then narrow with type guards
Use interface for object shapes that might be extended
Use type for unions, primitives, and computed types
Prefer readonly properties for immutable data structures
Use private for internal implementation details
Use protected for inheritance hierarchies
Use public explicitly for clarity in public APIs
Prefer readonly for properties that shouldn't change after construction
Prefer composition and interfaces over deep inheritance chains
Use mixins for shared behavior across unrelated classes
Implement dependency injection for loose coupling
Let TypeScript infer when types are obvious
Use const assertions for literal types: as const
Use satisfies operator for type checking without widening
Use mapped types for transforming object types
Use conditional types for type-level logic
Leverage template literal types for string manipulation
Use ES6 imports/exports consistently
Use default exports sparingly, prefer named exports
Use type-only imports: import type { ... } from ...
No any types without justification
Proper error handling with typed errors
Consistent use of readonly for immutable data
Proper generic constraints
No unused type parameters
Proper use of utility types instead of manual type construction
Type-only imports where possible
Proper tree-shaking friendly exports
No circular dependencies
Efficient type computations (avoid deep recursion)

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.{jsx,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

**/*.{jsx,tsx}: Use error boundaries in React components
Minimize re-renders in React components

**/*.{jsx,tsx}: Always use functional components with hooks instead of class components
Follow PascalCase naming for components: UserProfile, NavigationMenu
Keep components focused on a single responsibility - split large components
Limit component size to 150-200 lines; extract logic into custom hooks
Use composition over inheritance - prefer smaller, composable components
Export components as named exports for better tree-shaking
One component per file with matching filename and component name
Use useState for simple state management
Use useReducer for complex state logic
Implement proper state initialization
Use proper state updates with callbacks
Implement proper state cleanup
Use Context API for theme/authentication
Implement proper state selectors
Use proper state normalization
Implement proper state persistence
Use React.memo for expensive components
Implement proper useCallback for handlers
Use proper useMemo for expensive computations
Implement proper virtualization for lists
Use proper code splitting with React.lazy
Implement proper cleanup in useEffect
Use proper refs for DOM access
Implement proper event listener cleanup
Use proper abort controllers for fetch
Implement proper subscription cleanup
Use proper HTML elements
Implement proper ARIA attributes
Use proper heading hierarchy
Implement proper form labels
Use proper button types
Implement proper focus management
Use proper keyboard shortcuts
Implement proper tab order
Use proper skip links
Implement proper focus traps
Implement proper error boundaries
Use proper error logging
Implement proper error recovery
Use proper error messages
Implement proper error fallbacks
Use proper form validation
Implement proper error states
Use proper error messages
Implement proper form submission
Use proper form reset
Use proper component naming
Implement proper file naming
Use proper prop naming
Implement proper...

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
packages/**/*.{test,spec}.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Unit tests should use Jest or Vitest as the test runner.

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
packages/{clerk-js,elements,themes}/**/*.{test,spec}.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Visual regression testing should be performed for UI components.

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.{js,ts,tsx,jsx}

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Support multiple Clerk environment variables (CLERK_, NEXT_PUBLIC_CLERK_, etc.) for configuration.

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.tsx

📄 CodeRabbit Inference Engine (.cursor/rules/react.mdc)

**/*.tsx: Use proper type definitions for props and state
Leverage TypeScript's type inference where possible
Use proper event types for handlers
Implement proper generic types for reusable components
Use proper type guards for conditional rendering

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.test.{jsx,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/react.mdc)

**/*.test.{jsx,tsx}: Use React Testing Library
Test component behavior, not implementation
Use proper test queries
Implement proper test isolation
Use proper test coverage
Test component interactions
Use proper test data
Implement proper test setup
Use proper test cleanup
Implement proper test assertions
Use proper test structure

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/__tests__/**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/typescript.mdc)

**/__tests__/**/*.{ts,tsx}: Create type-safe test builders/factories
Use branded types for test isolation
Implement proper mock types that match interfaces

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*

⚙️ CodeRabbit Configuration File

If there are no tests added or modified as part of the PR, please suggest that tests be added to cover the changes.

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
⏰ 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). (2)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
🔇 Additional comments (1)
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx (1)

155-155: LGTM: “Continue” button assertion via role

Good use of role-based query with a case-insensitive name.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
packages/testing/src/playwright/unstable/page-objects/sessionTask.ts (2)

12-20: Scope the “Continue” selector to the form and assert enabled after filling to reduce flakiness

Avoid matching an unrelated “Continue” button elsewhere on the page and ensure the button is actionable after inputs are filled.

Apply this diff:

-      const createOrganizationButton = page.getByRole('button', { name: /continue/i });
-
-      await expect(createOrganizationButton).toBeVisible();
-
-      await page.locator('input[name=name]').fill(fakeOrganization.name);
-      await page.locator('input[name=slug]').fill(fakeOrganization.slug);
-
-      await createOrganizationButton.click();
+      const form = page.locator('form').filter({ has: page.locator('input[name=name]') });
+      const createOrganizationButton = form.getByRole('button', { name: /continue/i });
+
+      await form.locator('input[name=name]').fill(fakeOrganization.name);
+      await form.locator('input[name=slug]').fill(fakeOrganization.slug);
+      await expect(createOrganizationButton).toBeEnabled();
+      await createOrganizationButton.click();

6-6: Add explicit return type for the exported factory and a brief JSDoc

Keeps the API surface typed and documented per repo guidelines.

Apply this diff to the function signature:

-export const createSessionTaskComponentPageObject = (testArgs: { page: EnhancedPage }) => {
+export const createSessionTaskComponentPageObject = (testArgs: { page: EnhancedPage }): SessionTaskComponentPageObject => {

Add the following near the imports:

/**
 * Factory for the Session Task page-object.
 * Note: Selector relies on localized button text ("Continue"). Prefer test IDs or stable localization keys if available.
 */
type SessionTaskComponentPageObject = ReturnType<typeof common> & {
  resolveForceOrganizationSelectionTask(fakeOrganization: { name: string; slug: string }): Promise<void>;
};
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 9c5dd7b and ce40ac4.

📒 Files selected for processing (2)
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx (4 hunks)
  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/tests/TaskChooseOrganization.test.tsx
🧰 Additional context used
📓 Path-based instructions (7)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

**/*.{js,jsx,ts,tsx}: All code must pass ESLint checks with the project's configuration
Follow established naming conventions (PascalCase for components, camelCase for variables)
Maintain comprehensive JSDoc comments for public APIs
Use dynamic imports for optional features
All public APIs must be documented with JSDoc
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
Profile and optimize critical paths
Validate all inputs and sanitize outputs
Implement proper logging with different levels

Files:

  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts
**/*.{js,jsx,ts,tsx,json,css,scss,md,yaml,yml}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Use Prettier for consistent code formatting

Files:

  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts
packages/**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

TypeScript is required for all packages

Files:

  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts
packages/**/*.{ts,tsx,d.ts}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Packages should export TypeScript types alongside runtime code

Files:

  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts
**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Use proper TypeScript error types

**/*.{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
Avoid any type - prefer unknown when type is uncertain, then narrow with type guards
Use interface for object shapes that might be extended
Use type for unions, primitives, and computed types
Prefer readonly properties for immutable data structures
Use private for internal implementation details
Use protected for inheritance hierarchies
Use public explicitly for clarity in public APIs
Prefer readonly for properties that shouldn't change after construction
Prefer composition and interfaces over deep inheritance chains
Use mixins for shared behavior across unrelated classes
Implement dependency injection for loose coupling
Let TypeScript infer when types are obvious
Use const assertions for literal types: as const
Use satisfies operator for type checking without widening
Use mapped types for transforming object types
Use conditional types for type-level logic
Leverage template literal types for string manipulation
Use ES6 imports/exports consistently
Use default exports sparingly, prefer named exports
Use type-only imports: import type { ... } from ...
No any types without justification
Proper error handling with typed errors
Consistent use of readonly for immutable data
Proper generic constraints
No unused type parameters
Proper use of utility types instead of manual type construction
Type-only imports where possible
Proper tree-shaking friendly exports
No circular dependencies
Efficient type computations (avoid deep recursion)

Files:

  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts
**/*.{js,ts,tsx,jsx}

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Support multiple Clerk environment variables (CLERK_, NEXT_PUBLIC_CLERK_, etc.) for configuration.

Files:

  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts
**/*

⚙️ CodeRabbit Configuration File

If there are no tests added or modified as part of the PR, please suggest that tests be added to cover the changes.

Files:

  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.changeset/fuzzy-trains-thank.md (1)

8-8: Polish wording for clarity and grammar (“copy” is uncountable; refine flow reference).

Suggested rephrase:

  • “Update copy for the Create Organization screen in the TaskChooseOrganization flow”

Apply this diff:

-Update copies for create organization screen on session tasks
+Update copy for the Create Organization screen in the TaskChooseOrganization flow
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between ce40ac4 and 9a70ff5.

📒 Files selected for processing (1)
  • .changeset/fuzzy-trains-thank.md (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
.changeset/**

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/fuzzy-trains-thank.md
🪛 LanguageTool
.changeset/fuzzy-trains-thank.md

[grammar] ~8-~8: There might be a mistake here.
Context: ...lerk/testing': patch --- Update copies for create organization screen on session t...

(QB_NEW_EN)

🔇 Additional comments (1)
.changeset/fuzzy-trains-thank.md (1)

1-6: Changeset frontmatter looks correct (patch bumps for all impacted packages).

The packages and bump levels align with the described scope of changes.

@iagodahlem iagodahlem force-pushed the iago/update-create-organization-copies branch from 9a70ff5 to fe1d07f Compare August 20, 2025 17:18
@LauraBeatris LauraBeatris changed the title chore(clerk-js,localizations): Update TaskChooseOrganization copies for create organization screen chore(clerk-js,localizations): Update TaskChooseOrganization copies for create organization screen Aug 20, 2025
@iagodahlem iagodahlem force-pushed the iago/update-create-organization-copies branch from fe1d07f to 2f8cde7 Compare August 20, 2025 17:19
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (2)
packages/localizations/src/es-CR.ts (1)

825-828: Populate create-organization field labels/placeholders to avoid en-US fallback

These four new keys are left undefined; users will see en-US copy in the Create Organization step. Recommend filling them now for es-CR. Keeping “Apodo” for slug aligns with existing es-CR usage (see formFieldLabel__organizationSlug above). Use ASCII in the slug placeholder to match typical slug constraints.

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Mi organización',
+      formFieldInputPlaceholder__slug: 'mi-organizacion',
+      formFieldLabel__name: 'Nombre',
+      formFieldLabel__slug: 'Apodo',
#!/bin/bash
set -euo pipefail

echo "Check UI references to the new createOrganization field keys"
rg -nP --type=ts --type=tsx -C2 \
  "taskChooseOrganization\.createOrganization\.(formField(Label|InputPlaceholder)__(name|slug))"

echo
echo "Confirm es-CR now defines all four keys"
rg -nP -C1 "formField(InputPlaceholder|Label)__(name|slug)" packages/localizations/src/es-CR.ts

echo
echo "Confirm the keys exist in the base en-US locale for alignment"
rg -nP -n -C1 \
  "formFieldInputPlaceholder__name|formFieldInputPlaceholder__slug|formFieldLabel__name|formFieldLabel__slug" \
  packages/localizations/src/en-US.ts
packages/localizations/src/nl-BE.ts (1)

818-821: Undefined placeholders will wipe en-US fallback; fill values or delete the keys.

Same class of issue noted previously for this locale: explicit undefined in localized resources overrides base values, causing blank UI strings. Provide Dutch values now or remove the keys to inherit en-US.

Preferred quick fix: remove to allow fallback

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,

Alternative: add NL-BE translations

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Voer organisatienaam in',
+      formFieldInputPlaceholder__slug: 'mijn-org',
+      formFieldLabel__name: 'Naam',
+      formFieldLabel__slug: 'Slug',
#!/bin/bash
set -euo pipefail

# 1) Confirm en-US defines these keys for fallback
fd -a en-US.ts | while read -r f; do
  rg -n -C2 "taskChooseOrganization|formFieldLabel__name|formFieldInputPlaceholder__name|formFieldLabel__slug|formFieldInputPlaceholder__slug" "$f" || true
done

# 2) Surface merge logic to validate undefined-replacement behavior
rg -n -C3 "parseLocalizationResource|fastDeepMerge" packages -g '!**/dist/**' -g '!**/build/**' || true
🧹 Nitpick comments (11)
packages/localizations/src/zh-TW.ts (1)

807-810: Add zh-TW translations for the new name/slug fields

The four new keys in packages/localizations/src/zh-TW.ts (lines 807–810) are currently undefined, falling back to en-US:

  • formFieldInputPlaceholder__name
  • formFieldInputPlaceholder__slug
  • formFieldLabel__name
  • formFieldLabel__slug

To keep zh-TW UX consistent, you can replace the undefineds with:

--- a/packages/localizations/src/zh-TW.ts
+++ b/packages/localizations/src/zh-TW.ts
@@ –807,4 +807,4 @@
-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: '請輸入組織名稱',
+      formFieldInputPlaceholder__slug: '請輸入 URL 代稱',
+      formFieldLabel__name: '組織名稱',
+      formFieldLabel__slug: 'URL 代稱',

• If you’d prefer example-based placeholders (to mirror “My Organization” / “my-organization”), let me know and I can adjust these.
• The PR notes the submit button copy switched to “Continue” (en-US uses formButtonSubmit: 'Continue'). In zh-TW, createOrganization.formButtonSubmit is currently “創建組織” – you may want to align this to “繼續” for consistency.

packages/localizations/src/es-CR.ts (1)

823-824: Optional: Translate the buttons to avoid fallback (“Continue”/“Reset”)

If you want to eliminate en-US fallback on the new step entirely, provide es-CR here too. Suggest “Continuar” (consistent with formButtonPrimary) and “Saltar” (matches existing usage in invitePage).

-      formButtonReset: undefined,
-      formButtonSubmit: undefined,
+      formButtonReset: 'Saltar',
+      formButtonSubmit: 'Continuar',
packages/localizations/src/fi-FI.ts (3)

819-822: Translate the newly added name/slug labels and placeholders

These four keys were added but left undefined. Providing Finnish strings keeps the UX consistent and avoids English fallbacks in the create-organization flow.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Esimerkki Oy',
+      formFieldInputPlaceholder__slug: 'minun-org',
+      formFieldLabel__name: 'Nimi',
+      formFieldLabel__slug: 'Slug',

818-818: Localize the submit button to match en-US “Continue”

en-US changed this to “Continue.” In Finnish locales elsewhere, “Jatka” is used consistently. Suggest localizing here to avoid fallback.

-      formButtonSubmit: undefined,
+      formButtonSubmit: 'Jatka',

823-825: Add title and subtitle for the updated create-organization copy

Align with the new en-US copy (“Set up your organization” / “Enter your organization details to continue”). Suggested Finnish is semi-formal and consistent with existing tone.

-      subtitle: undefined,
-      title: undefined,
+      subtitle: 'Syötä organisaatiosi tiedot jatkaaksesi.',
+      title: 'Määritä organisaatiosi',
packages/localizations/src/hr-HR.ts (1)

820-823: Fill the new Create Organization field labels/placeholders (fallbacks are currently English).

These four new keys are undefined, so users will see English fallbacks. Recommend adding Croatian translations now for consistency with the rest of this locale.

Proposed translations (aligned with existing terms like "Naziv" and slug examples in this file):

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Moja organizacija',
+      formFieldInputPlaceholder__slug: 'moja-organizacija',
+      formFieldLabel__name: 'Naziv',
+      formFieldLabel__slug: 'Slug',

If you prefer different vocabulary for "organization" in this locale, I can adjust accordingly. Also validate that these match the updated en-US intent in packages/localizations/src/en-US.ts.

.changeset/curvy-shoes-create.md (1)

8-8: Tighten up the changeset description grammar.

Minor copy edit for clarity.

-Update copies for create organization screen on session tasks
+Update copy for the create-organization screen in session tasks
packages/localizations/src/bn-IN.ts (1)

823-826: Provide Bengali translations for the new Create Organization fields.

Leaving these undefined forces English fallbacks. Add localized strings for a consistent experience.

Suggested values (consistent with existing terminology in this file, e.g., “সংগঠন”):

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'আমার সংগঠন',
+      formFieldInputPlaceholder__slug: 'my-organization',
+      formFieldLabel__name: 'নাম',
+      formFieldLabel__slug: 'স্লাগ',

Note: slug placeholders elsewhere in this locale use 'my-org'. Keeping 'my-organization' aligns with the updated en-US for this screen, but creates a small inconsistency. If you want global consistency, we can standardize both to the same pattern.

packages/localizations/src/hi-IN.ts (1)

823-826: Add Hindi translations for the new Create Organization field labels/placeholders.

Undefined values will fall back to English; add localized text for this flow.

Recommended translations:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'मेरा संगठन',
+      formFieldInputPlaceholder__slug: 'my-organization',
+      formFieldLabel__name: 'नाम',
+      formFieldLabel__slug: 'स्लग',

Slug uses Latin characters intentionally for URL familiarity; if you prefer Devanagari, we can revisit.

packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx (2)

25-27: Use the correct role for “Sign out” (link, not button).

In this app, “Sign out” is rendered as a link elsewhere in the tests. Make the non-render assertion consistent to avoid false negatives.

-      expect(queryByRole('button', { name: /sign out/i })).not.toBeInTheDocument();
+      expect(queryByRole('link', { name: /sign out/i })).not.toBeInTheDocument();

62-67: Prefer role-based query for the “Continue” CTA for better resilience.

Querying by role and accessible name is more robust than plain text in case layout or surrounding text changes.

-    const { getByRole, getByText } = render(<TaskChooseOrganization />, { wrapper });
+    const { getByRole, getByText } = render(<TaskChooseOrganization />, { wrapper });
@@
-      expect(getByText('Continue')).toBeInTheDocument();
+      expect(getByRole('button', { name: /continue/i })).toBeInTheDocument();

Optional: consider adding an assertion for the field label/placeholder coming from the new localization keys (e.g., that the “Name” label/placeholder is present), to cover the intent of this PR change.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 9a70ff5 and 2f8cde7.

📒 Files selected for processing (54)
  • .changeset/curvy-shoes-create.md (1 hunks)
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/CreateOrganizationScreen.tsx (1 hunks)
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx (4 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/de-DE.ts (1 hunks)
  • packages/localizations/src/el-GR.ts (1 hunks)
  • packages/localizations/src/en-GB.ts (1 hunks)
  • packages/localizations/src/en-US.ts (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)
  • packages/localizations/src/fa-IR.ts (1 hunks)
  • packages/localizations/src/fi-FI.ts (1 hunks)
  • packages/localizations/src/fr-FR.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/ja-JP.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/pl-PL.ts (1 hunks)
  • packages/localizations/src/pt-BR.ts (1 hunks)
  • packages/localizations/src/pt-PT.ts (1 hunks)
  • packages/localizations/src/ro-RO.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/th-TH.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)
  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts (1 hunks)
  • packages/types/src/localization.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (43)
  • packages/localizations/src/ko-KR.ts
  • packages/localizations/src/sr-RS.ts
  • packages/localizations/src/pt-PT.ts
  • packages/localizations/src/es-UY.ts
  • packages/localizations/src/zh-CN.ts
  • packages/types/src/localization.ts
  • packages/localizations/src/ms-MY.ts
  • packages/localizations/src/nb-NO.ts
  • packages/localizations/src/cs-CZ.ts
  • packages/localizations/src/sv-SE.ts
  • packages/localizations/src/pl-PL.ts
  • packages/localizations/src/ar-SA.ts
  • packages/localizations/src/uk-UA.ts
  • packages/localizations/src/mn-MN.ts
  • packages/localizations/src/te-IN.ts
  • packages/localizations/src/es-ES.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/CreateOrganizationScreen.tsx
  • packages/localizations/src/es-MX.ts
  • packages/localizations/src/en-GB.ts
  • packages/localizations/src/it-IT.ts
  • packages/localizations/src/th-TH.ts
  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/nl-NL.ts
  • packages/localizations/src/vi-VN.ts
  • packages/localizations/src/id-ID.ts
  • packages/localizations/src/be-BY.ts
  • packages/localizations/src/fa-IR.ts
  • packages/localizations/src/ja-JP.ts
  • packages/localizations/src/tr-TR.ts
  • packages/localizations/src/ru-RU.ts
  • packages/localizations/src/el-GR.ts
  • packages/localizations/src/he-IL.ts
  • packages/localizations/src/ca-ES.ts
  • packages/localizations/src/fr-FR.ts
  • packages/localizations/src/sk-SK.ts
  • packages/localizations/src/bg-BG.ts
  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts
  • packages/localizations/src/pt-BR.ts
  • packages/localizations/src/hu-HU.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/is-IS.ts
  • packages/localizations/src/en-US.ts
  • packages/localizations/src/ta-IN.ts
🧰 Additional context used
📓 Path-based instructions (17)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

**/*.{js,jsx,ts,tsx}: All code must pass ESLint checks with the project's configuration
Follow established naming conventions (PascalCase for components, camelCase for variables)
Maintain comprehensive JSDoc comments for public APIs
Use dynamic imports for optional features
All public APIs must be documented with JSDoc
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
Profile and optimize critical paths
Validate all inputs and sanitize outputs
Implement proper logging with different levels

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
**/*.{js,jsx,ts,tsx,json,css,scss,md,yaml,yml}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Use Prettier for consistent code formatting

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
packages/**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

TypeScript is required for all packages

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
packages/**/*.{ts,tsx,d.ts}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Packages should export TypeScript types alongside runtime code

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Use proper TypeScript error types

**/*.{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
Avoid any type - prefer unknown when type is uncertain, then narrow with type guards
Use interface for object shapes that might be extended
Use type for unions, primitives, and computed types
Prefer readonly properties for immutable data structures
Use private for internal implementation details
Use protected for inheritance hierarchies
Use public explicitly for clarity in public APIs
Prefer readonly for properties that shouldn't change after construction
Prefer composition and interfaces over deep inheritance chains
Use mixins for shared behavior across unrelated classes
Implement dependency injection for loose coupling
Let TypeScript infer when types are obvious
Use const assertions for literal types: as const
Use satisfies operator for type checking without widening
Use mapped types for transforming object types
Use conditional types for type-level logic
Leverage template literal types for string manipulation
Use ES6 imports/exports consistently
Use default exports sparingly, prefer named exports
Use type-only imports: import type { ... } from ...
No any types without justification
Proper error handling with typed errors
Consistent use of readonly for immutable data
Proper generic constraints
No unused type parameters
Proper use of utility types instead of manual type construction
Type-only imports where possible
Proper tree-shaking friendly exports
No circular dependencies
Efficient type computations (avoid deep recursion)

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
packages/localizations/**/*

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Localization files must be placed in 'packages/localizations/'.

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
**/*.{js,ts,tsx,jsx}

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Support multiple Clerk environment variables (CLERK_, NEXT_PUBLIC_CLERK_, etc.) for configuration.

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
**/*

⚙️ CodeRabbit Configuration File

If there are no tests added or modified as part of the PR, please suggest that tests be added to cover the changes.

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
**/localizations/**/*.ts

⚙️ CodeRabbit Configuration File

**/localizations/**/*.ts: Review the changes to localization files with the following guidelines:

  • Ensure that no existing translations are accidentally removed unless they are being replaced or fixed. If a string is removed, verify that it is intentional and justified.
  • Check that all translations are friendly, formal, or semi-formal. Explicit, offensive, or inappropriate language is not allowed. If you find any potentially offensive language or are unsure, tag the @clerk/sdk-infra team in a separate comment. If you do not intend to tag the team, refer to it as "Clerk SDK Infra team" instead.
  • Use the most up-to-date base localization file (https://github.com/clerk/javascript/blob/main/packages/localizations/src/en-US.ts) to validate changes, ensuring consistency and completeness.
  • Confirm that new translations are accurate, contextually appropriate, and match the intent of the original English strings.
  • Check for formatting issues, such as missing placeholders, incorrect variable usage, or syntax errors.
  • Ensure that all keys are unique and that there are no duplicate or conflicting entries.
  • If you notice missing translations for new keys, flag them for completion.

Files:

  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/hr-HR.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/bn-IN.ts
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/nl-BE.ts
packages/clerk-js/src/ui/**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/clerk-js-ui.mdc)

packages/clerk-js/src/ui/**/*.{ts,tsx}: Element descriptors should always be camelCase
Use element descriptors in UI components to enable consistent theming and styling via appearance.elements
Element descriptors should generate unique, stable CSS classes for theming
Element descriptors should handle state classes (e.g., cl-loading, cl-active, cl-error, cl-open) automatically based on component state
Do not render hard-coded values; all user-facing strings must be localized using provided localization methods
Use the useLocalizations hook and localizationKeys utility for all text and error messages
Use the styled system (sx prop, theme tokens, responsive values) for custom component styling
Use useCardState for card-level state, useFormState for form-level state, and useLoadingStatus for loading states
Always use handleError utility for API errors and use translateError for localized error messages
Use useFormControl for form field state, implement proper validation, and handle loading and error states in forms
Use localization keys for all form labels and placeholders
Use element descriptors for consistent styling and follow the theme token system
Use the Card and FormContainer patterns for consistent UI structure

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.{jsx,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

**/*.{jsx,tsx}: Use error boundaries in React components
Minimize re-renders in React components

**/*.{jsx,tsx}: Always use functional components with hooks instead of class components
Follow PascalCase naming for components: UserProfile, NavigationMenu
Keep components focused on a single responsibility - split large components
Limit component size to 150-200 lines; extract logic into custom hooks
Use composition over inheritance - prefer smaller, composable components
Export components as named exports for better tree-shaking
One component per file with matching filename and component name
Use useState for simple state management
Use useReducer for complex state logic
Implement proper state initialization
Use proper state updates with callbacks
Implement proper state cleanup
Use Context API for theme/authentication
Implement proper state selectors
Use proper state normalization
Implement proper state persistence
Use React.memo for expensive components
Implement proper useCallback for handlers
Use proper useMemo for expensive computations
Implement proper virtualization for lists
Use proper code splitting with React.lazy
Implement proper cleanup in useEffect
Use proper refs for DOM access
Implement proper event listener cleanup
Use proper abort controllers for fetch
Implement proper subscription cleanup
Use proper HTML elements
Implement proper ARIA attributes
Use proper heading hierarchy
Implement proper form labels
Use proper button types
Implement proper focus management
Use proper keyboard shortcuts
Implement proper tab order
Use proper skip links
Implement proper focus traps
Implement proper error boundaries
Use proper error logging
Implement proper error recovery
Use proper error messages
Implement proper error fallbacks
Use proper form validation
Implement proper error states
Use proper error messages
Implement proper form submission
Use proper form reset
Use proper component naming
Implement proper file naming
Use proper prop naming
Implement proper...

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
packages/**/*.{test,spec}.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Unit tests should use Jest or Vitest as the test runner.

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
packages/{clerk-js,elements,themes}/**/*.{test,spec}.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Visual regression testing should be performed for UI components.

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.tsx

📄 CodeRabbit Inference Engine (.cursor/rules/react.mdc)

**/*.tsx: Use proper type definitions for props and state
Leverage TypeScript's type inference where possible
Use proper event types for handlers
Implement proper generic types for reusable components
Use proper type guards for conditional rendering

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/*.test.{jsx,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/react.mdc)

**/*.test.{jsx,tsx}: Use React Testing Library
Test component behavior, not implementation
Use proper test queries
Implement proper test isolation
Use proper test coverage
Test component interactions
Use proper test data
Implement proper test setup
Use proper test cleanup
Implement proper test assertions
Use proper test structure

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
**/__tests__/**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/typescript.mdc)

**/__tests__/**/*.{ts,tsx}: Create type-safe test builders/factories
Use branded types for test isolation
Implement proper mock types that match interfaces

Files:

  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx
.changeset/**

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/curvy-shoes-create.md
🪛 LanguageTool
.changeset/curvy-shoes-create.md

[grammar] ~8-~8: There might be a mistake here.
Context: ...@clerk/types': patch --- Update copies for create organization screen on session t...

(QB_NEW_EN)

⏰ 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). (5)
  • GitHub Check: Integration Tests (nextjs, chrome, 14)
  • GitHub Check: Integration Tests (nextjs, chrome, 15)
  • GitHub Check: Integration Tests (billing, chrome)
  • GitHub Check: Integration Tests (sessions, chrome)
  • GitHub Check: Integration Tests (generic, chrome)
🔇 Additional comments (2)
packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx (2)

45-46: LGTM: updated headings and subtitle assertions match the new copy.

Assertions now align with “Setup your organization” and “Enter your organization details to continue”.


154-155: LGTM: updated to assert the “Continue” button in the create flow.

This matches the new copy and improves selector stability by using role+name.

Comment on lines +829 to +832
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Do not set new create-organization field keys to undefined (breaks fallback, renders blanks).

Explicit undefined will override the en-US base during deep-merge, yielding empty labels/placeholders in the UI. Either provide German translations or remove these entries so the runtime falls back to en-US.

Preferred quick fix: remove to allow fallback

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,

Alternative: add translations now

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Name der Organisation eingeben',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Name',
+      formFieldLabel__slug: 'Slug',

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) Confirm en-US has the new keys for fallback
fd -a en-US.ts | while read -r f; do
  echo "Checking keys in $f"
  rg -n -C2 "taskChooseOrganization|formFieldLabel__name|formFieldInputPlaceholder__name|formFieldLabel__slug|formFieldInputPlaceholder__slug" "$f" || true
done

# 2) Inspect localization merge to verify that explicit `undefined` overrides base strings
rg -n -C3 "parseLocalizationResource|fastDeepMerge" packages -g '!**/dist/**' -g '!**/build/**' || true

Length of output: 16516


Remove undefined create-organization keys in de-DE localization

Explicit undefined entries in the German resource will override the en-US defaults (via fastDeepMergeAndReplace), resulting in blank labels/placeholders in the UI. Either supply valid German strings now or delete these lines so the runtime can fall back to en-US.

• File: packages/localizations/src/de-DE.ts
Lines: 829–832

Preferred quick fix – allow fallback:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,

Alternative – add German translations:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Name der Organisation eingeben',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Name',
+      formFieldLabel__slug: 'Slug',
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
🤖 Prompt for AI Agents
In packages/localizations/src/de-DE.ts around lines 829 to 832, the four
create-organization keys are explicitly set to undefined which overrides en-US
defaults and causes blank UI labels; either remove these four entries
(formFieldInputPlaceholder__name, formFieldInputPlaceholder__slug,
formFieldLabel__name, formFieldLabel__slug) so the runtime falls back to en-US,
or replace each undefined with the appropriate German translation strings (e.g.,
placeholders/labels in German) ensuring no undefined values remain.

Comment on lines +810 to +813
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Avoid undefined on new create-organization keys; fallback will be overridden and UI will be blank.

Provide Kazakh strings or remove these keys to inherit en-US.

Preferred quick fix: remove to allow fallback

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,

Alternative: add Kazakh translations

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Ұйым атауын енгізіңіз',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Атауы',
+      formFieldLabel__slug: 'Slug',

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) Confirm en-US has the keys present for fallback
fd -a en-US.ts | while read -r f; do
  rg -n -C2 "taskChooseOrganization|formFieldLabel__name|formFieldInputPlaceholder__name|formFieldLabel__slug|formFieldInputPlaceholder__slug" "$f" || true
done

# 2) Inspect merge behavior to ensure undefined overrides base (helps decide remove vs translate)
rg -n -C3 "parseLocalizationResource|fastDeepMerge" packages -g '!**/dist/**' -g '!**/build/**' || true

Length of output: 16363


Remove undefined overrides in kk-KZ localization

The four undefined entries in packages/localizations/src/kk-KZ.ts (lines 810–813) will override the en-US defaults and result in blank placeholders/labels. Either remove them to inherit the English fallback or supply proper Kazakh strings.

• File: packages/localizations/src/kk-KZ.ts (lines 810–813)
Preferred quick fix – remove keys to allow fallback:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,

Alternative – add Kazakh translations:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Ұйым атауын енгізіңіз',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'Атауы',
+      formFieldLabel__slug: 'Slug',
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
🤖 Prompt for AI Agents
In packages/localizations/src/kk-KZ.ts around lines 810 to 813, four entries
(formFieldInputPlaceholder__name, formFieldInputPlaceholder__slug,
formFieldLabel__name, formFieldLabel__slug) are set to undefined which overrides
the en-US defaults and yields blank UI; remove these four key lines to allow the
English fallback, or replace each undefined with the appropriate Kazakh string
if translations are available.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

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

⚠️ Outside diff range comments (1)
packages/localizations/src/ro-RO.ts (1)

186-186: Fix typo: extra closing brace in dates.numeric breaks interpolation.

The triple “}}}” will break the templating pipeline.

-    numeric: "{{ date | numeric('en-US') }}}",
+    numeric: "{{ date | numeric('en-US') }}",
♻️ Duplicate comments (1)
packages/localizations/src/da-DK.ts (1)

816-819: Provide Danish placeholders and labels for create-organization fields (align with existing organizationName/organizationSlug translations).

These new keys are currently undefined and will fall back to English at runtime. Recommend filling them to match the established phrasing used elsewhere in this locale.

Apply this diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Indtast organisationens navn',
+      formFieldInputPlaceholder__slug: 'Indtast slug URL',
+      formFieldLabel__name: 'Organisationens navn',
+      formFieldLabel__slug: 'Slug URL',

To verify consistency with the base locale and ensure these keys exist there as well, you can run:

#!/bin/bash
set -euo pipefail

EN_FILE="$(fd -t f 'en-US.ts' | head -n1)"
DK_FILE="$(fd -t f 'da-DK.ts' | head -n1)"

echo "en-US: $EN_FILE"
echo "da-DK: $DK_FILE"
echo

# Ensure taskChooseOrganization.createOrganization block and keys exist in en-US and da-DK
rg -nP -C2 $'taskChooseOrganization:\\s*\\{' "$EN_FILE" "$DK_FILE" || true
echo

for k in \
  'formFieldInputPlaceholder__name:' \
  'formFieldInputPlaceholder__slug:' \
  'formFieldLabel__name:' \
  'formFieldLabel__slug:'
do
  echo "=== Key: $k"
  rg -nP -C1 "$k" "$EN_FILE" || echo "Missing in en-US: $k"
  rg -nP -C1 "$k" "$DK_FILE"  || echo "Missing in da-DK: $k"
  echo
done
🧹 Nitpick comments (4)
packages/localizations/src/hi-IN.ts (1)

823-826: Add Hindi translations for ‘name’ and ‘slug’ to hi-IN locale

The following four keys in packages/localizations/src/hi-IN.ts (lines 823–826) are undefined, causing an English fallback. Please add Hindi values consistent with existing organizationName/organizationSlug entries:

• formFieldInputPlaceholder__name
• formFieldInputPlaceholder__slug
• formFieldLabel__name
• formFieldLabel__slug

Suggested diff:

-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'संगठन का नाम',
+      formFieldInputPlaceholder__slug: 'my-org',
+      formFieldLabel__name: 'नाम',
+      formFieldLabel__slug: 'स्लग',

If you prefer to land these as undefined and backfill later, please file a follow-up issue so we don’t leave this surface partially localized.

.changeset/curvy-shoes-create.md (1)

1-8: Polish changeset summary for clarity/grammar

Minor copyedit to read more naturally.

-Update copies for create organization screen on session tasks
+Update copy for the create-organization screen in session tasks
packages/localizations/src/es-ES.ts (1)

816-825: Provide Spanish translations for new create-organization fields (and align title/subtitle/CTA with en-US)

The four newly added keys are left undefined. Suggest filling them plus aligning formButtonSubmit, title, and subtitle to match the updated en-US copy for this screen. This keeps the TaskChooseOrganization flow consistent and avoids fallback to English.

     createOrganization: {
       formButtonReset: undefined,
-      formButtonSubmit: undefined,
+      formButtonSubmit: 'Continuar',
-      formFieldInputPlaceholder__name: undefined,
-      formFieldInputPlaceholder__slug: undefined,
-      formFieldLabel__name: undefined,
-      formFieldLabel__slug: undefined,
+      formFieldInputPlaceholder__name: 'Mi organización',
+      formFieldInputPlaceholder__slug: 'mi-organizacion',
+      formFieldLabel__name: 'Nombre',
+      formFieldLabel__slug: 'Slug',
-      subtitle: undefined,
-      title: undefined,
+      subtitle: 'Introduce los detalles de la organización para continuar.',
+      title: 'Configura tu organización',
     },

Notes:

  • Placeholder for slug intentionally without accent to reflect valid URL slugs.
  • Using "Configura" and "Introduce" matches existing es-ES tone elsewhere in this file.
packages/localizations/src/ro-RO.ts (1)

199-200: Revisit ‘matchingPasswords’ error string; it reads like a success message.

Having an error message that says “Parolele se potrivesc.” is misleading, especially since the “notMatchingPasswords” key exists correctly below.

If this key is unused, safest is to fallback to base:

-  formFieldError__matchingPasswords: 'Parolele se potrivesc.',
+  formFieldError__matchingPasswords: undefined,

Alternatively, if it is used for a positive validation state, consider moving it under a non-error key or renaming in types for clarity.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 2f8cde7 and db9f39d.

📒 Files selected for processing (54)
  • .changeset/curvy-shoes-create.md (1 hunks)
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/CreateOrganizationScreen.tsx (1 hunks)
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/__tests__/TaskChooseOrganization.test.tsx (4 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/de-DE.ts (1 hunks)
  • packages/localizations/src/el-GR.ts (1 hunks)
  • packages/localizations/src/en-GB.ts (1 hunks)
  • packages/localizations/src/en-US.ts (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)
  • packages/localizations/src/fa-IR.ts (1 hunks)
  • packages/localizations/src/fi-FI.ts (1 hunks)
  • packages/localizations/src/fr-FR.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/ja-JP.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/pl-PL.ts (1 hunks)
  • packages/localizations/src/pt-BR.ts (1 hunks)
  • packages/localizations/src/pt-PT.ts (1 hunks)
  • packages/localizations/src/ro-RO.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/th-TH.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)
  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts (1 hunks)
  • packages/types/src/localization.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (49)
  • packages/localizations/src/ko-KR.ts
  • packages/localizations/src/ru-RU.ts
  • packages/localizations/src/ca-ES.ts
  • packages/localizations/src/cs-CZ.ts
  • packages/localizations/src/ar-SA.ts
  • packages/localizations/src/it-IT.ts
  • packages/localizations/src/nb-NO.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/CreateOrganizationScreen.tsx
  • packages/localizations/src/be-BY.ts
  • packages/localizations/src/sk-SK.ts
  • packages/localizations/src/he-IL.ts
  • packages/localizations/src/nl-NL.ts
  • packages/localizations/src/hr-HR.ts
  • packages/testing/src/playwright/unstable/page-objects/sessionTask.ts
  • packages/localizations/src/es-MX.ts
  • packages/localizations/src/nl-BE.ts
  • packages/localizations/src/ta-IN.ts
  • packages/localizations/src/zh-TW.ts
  • packages/localizations/src/es-CR.ts
  • packages/localizations/src/th-TH.ts
  • packages/localizations/src/pt-BR.ts
  • packages/localizations/src/sr-RS.ts
  • packages/types/src/localization.ts
  • packages/localizations/src/fr-FR.ts
  • packages/localizations/src/en-GB.ts
  • packages/localizations/src/is-IS.ts
  • packages/localizations/src/zh-CN.ts
  • packages/localizations/src/bn-IN.ts
  • packages/localizations/src/kk-KZ.ts
  • packages/clerk-js/src/ui/components/SessionTasks/tasks/TaskChooseOrganization/tests/TaskChooseOrganization.test.tsx
  • packages/localizations/src/es-UY.ts
  • packages/localizations/src/mn-MN.ts
  • packages/localizations/src/sv-SE.ts
  • packages/localizations/src/hu-HU.ts
  • packages/localizations/src/vi-VN.ts
  • packages/localizations/src/fi-FI.ts
  • packages/localizations/src/pl-PL.ts
  • packages/localizations/src/ms-MY.ts
  • packages/localizations/src/id-ID.ts
  • packages/localizations/src/pt-PT.ts
  • packages/localizations/src/te-IN.ts
  • packages/localizations/src/tr-TR.ts
  • packages/localizations/src/uk-UA.ts
  • packages/localizations/src/el-GR.ts
  • packages/localizations/src/en-US.ts
  • packages/localizations/src/bg-BG.ts
  • packages/localizations/src/ja-JP.ts
  • packages/localizations/src/de-DE.ts
  • packages/localizations/src/fa-IR.ts
🧰 Additional context used
📓 Path-based instructions (10)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

**/*.{js,jsx,ts,tsx}: All code must pass ESLint checks with the project's configuration
Follow established naming conventions (PascalCase for components, camelCase for variables)
Maintain comprehensive JSDoc comments for public APIs
Use dynamic imports for optional features
All public APIs must be documented with JSDoc
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
Profile and optimize critical paths
Validate all inputs and sanitize outputs
Implement proper logging with different levels

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
**/*.{js,jsx,ts,tsx,json,css,scss,md,yaml,yml}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Use Prettier for consistent code formatting

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
packages/**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

TypeScript is required for all packages

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
packages/**/*.{ts,tsx,d.ts}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Packages should export TypeScript types alongside runtime code

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
**/*.{ts,tsx}

📄 CodeRabbit Inference Engine (.cursor/rules/development.mdc)

Use proper TypeScript error types

**/*.{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
Avoid any type - prefer unknown when type is uncertain, then narrow with type guards
Use interface for object shapes that might be extended
Use type for unions, primitives, and computed types
Prefer readonly properties for immutable data structures
Use private for internal implementation details
Use protected for inheritance hierarchies
Use public explicitly for clarity in public APIs
Prefer readonly for properties that shouldn't change after construction
Prefer composition and interfaces over deep inheritance chains
Use mixins for shared behavior across unrelated classes
Implement dependency injection for loose coupling
Let TypeScript infer when types are obvious
Use const assertions for literal types: as const
Use satisfies operator for type checking without widening
Use mapped types for transforming object types
Use conditional types for type-level logic
Leverage template literal types for string manipulation
Use ES6 imports/exports consistently
Use default exports sparingly, prefer named exports
Use type-only imports: import type { ... } from ...
No any types without justification
Proper error handling with typed errors
Consistent use of readonly for immutable data
Proper generic constraints
No unused type parameters
Proper use of utility types instead of manual type construction
Type-only imports where possible
Proper tree-shaking friendly exports
No circular dependencies
Efficient type computations (avoid deep recursion)

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
packages/localizations/**/*

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Localization files must be placed in 'packages/localizations/'.

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
**/*.{js,ts,tsx,jsx}

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Support multiple Clerk environment variables (CLERK_, NEXT_PUBLIC_CLERK_, etc.) for configuration.

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
**/*

⚙️ CodeRabbit Configuration File

If there are no tests added or modified as part of the PR, please suggest that tests be added to cover the changes.

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
**/localizations/**/*.ts

⚙️ CodeRabbit Configuration File

**/localizations/**/*.ts: Review the changes to localization files with the following guidelines:

  • Ensure that no existing translations are accidentally removed unless they are being replaced or fixed. If a string is removed, verify that it is intentional and justified.
  • Check that all translations are friendly, formal, or semi-formal. Explicit, offensive, or inappropriate language is not allowed. If you find any potentially offensive language or are unsure, tag the @clerk/sdk-infra team in a separate comment. If you do not intend to tag the team, refer to it as "Clerk SDK Infra team" instead.
  • Use the most up-to-date base localization file (https://github.com/clerk/javascript/blob/main/packages/localizations/src/en-US.ts) to validate changes, ensuring consistency and completeness.
  • Confirm that new translations are accurate, contextually appropriate, and match the intent of the original English strings.
  • Check for formatting issues, such as missing placeholders, incorrect variable usage, or syntax errors.
  • Ensure that all keys are unique and that there are no duplicate or conflicting entries.
  • If you notice missing translations for new keys, flag them for completion.

Files:

  • packages/localizations/src/da-DK.ts
  • packages/localizations/src/hi-IN.ts
  • packages/localizations/src/ro-RO.ts
  • packages/localizations/src/es-ES.ts
.changeset/**

📄 CodeRabbit Inference Engine (.cursor/rules/monorepo.mdc)

Automated releases must use Changesets.

Files:

  • .changeset/curvy-shoes-create.md
🪛 LanguageTool
.changeset/curvy-shoes-create.md

[grammar] ~8-~8: There might be a mistake here.
Context: ...@clerk/types': patch --- Update copies for create organization screen on session t...

(QB_NEW_EN)

Comment on lines +819 to +822
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

LGTM on key naming/location; values need completion

The new keys are correctly scoped under taskChooseOrganization.createOrganization and match the types introduced in packages/types/src/localization.ts. Only the values are missing.

Run the following to verify type coverage and en-US baseline values for these keys:


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Check that types include the new keys:"
rg -n "formField(InputPlaceholder|Label)__name|formField(InputPlaceholder|Label)__slug" packages/types/src/localization.ts -C3 --type=ts

echo
echo "Show en-US values for the same keys (should be defined):"
rg -n "formField(InputPlaceholder|Label)__name|formField(InputPlaceholder|Label)__slug" packages/localizations/src/en-US.ts -C3 --type=ts

echo
echo "Scan all locales for missing values on the new keys (undefined):"
rg -nP --type=ts "taskChooseOrganization[\s\S]*createOrganization[\s\S]*formField(InputPlaceholder|Label)__(name|slug)\s*:\s*undefined" packages/localizations/src | sed 's/^/undefined: /'

echo
echo "Optional: list locales that already translated them (non-undefined):"
rg -nP --type=ts "taskChooseOrganization[\s\S]*createOrganization[\s\S]*formField(InputPlaceholder|Label)__(name|slug)\s*:\s*'[^']+'" packages/localizations/src | sed 's/^/translated: /'

Length of output: 1731


Complete missing translations for new localization keys

The new keys are correctly defined in the types and the en-US locale provides baseline values. Please supply translations for these keys in all non-en locale files—currently they’re left as undefined in es-ES:

• packages/localizations/src/es-ES.ts (lines 819–822):

  • formFieldInputPlaceholder__name
  • formFieldInputPlaceholder__slug
  • formFieldLabel__name
  • formFieldLabel__slug

Ensure no locale leaves these values undefined.

🤖 Prompt for AI Agents
In packages/localizations/src/es-ES.ts around lines 819–822, four localization
keys are left undefined; replace them with Spanish translations mirroring the
en-US intent: set formFieldInputPlaceholder__name to "Introduce el nombre" (or
simply "Nombre" if placeholder is short), formFieldInputPlaceholder__slug to
"Introduce el slug" (or "Slug"), formFieldLabel__name to "Nombre" and
formFieldLabel__slug to "Slug"; ensure none remain undefined and follow the same
quoting/formatting style as the surrounding entries.

Comment on lines 817 to 825
formButtonReset: undefined,
formButtonSubmit: undefined,
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
subtitle: undefined,
title: undefined,
},
Copy link
Contributor

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Fill in Romanian translations for the new create-organization fields (and align title/subtitle/submit).

Leaving these as undefined will fall back to English in UI; since en-US now ships the new copy ("Continue", updated title/subtitle), we should localize them here for consistency.

Apply this diff within the createOrganization block:

-      formButtonSubmit: undefined,
+      formButtonSubmit: 'Continuați',
-      formFieldInputPlaceholder__name: undefined,
+      formFieldInputPlaceholder__name: 'Introduceți numele organizației',
-      formFieldInputPlaceholder__slug: undefined,
+      formFieldInputPlaceholder__slug: 'ex.: acme-co',
-      formFieldLabel__name: undefined,
+      formFieldLabel__name: 'Nume',
-      formFieldLabel__slug: undefined,
+      formFieldLabel__slug: 'Slug URL',
-      subtitle: undefined,
+      subtitle: 'Introduceți detaliile organizației pentru a continua',
-      title: undefined,
+      title: 'Configurați-vă organizația',

If you prefer more explicit labeling, we can set formFieldLabel__name to “Numele organizației” to mirror the existing organizationName label elsewhere in this file—say the word and I’ll update accordingly.


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Checking new keys exist and values in en-US:"
rg -n "(formFieldLabel__name|formFieldLabel__slug|formFieldInputPlaceholder__name|formFieldInputPlaceholder__slug)\s*:" packages/localizations/src/en-US.ts -n

echo
echo "Current values in ro-RO:"
rg -n "(formFieldLabel__name|formFieldLabel__slug|formFieldInputPlaceholder__name|formFieldInputPlaceholder__slug)\s*:" packages/localizations/src/ro-RO.ts

echo
echo "Sanity check: no placeholder syntax typos (}}}) in ro-RO:"
rg -nP "\}\}\}" packages/localizations/src/ro-RO.ts || true

Length of output: 1140


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== en-US: 'createOrganization' block context ==="
rg -n "createOrganization" -C5 packages/localizations/src/en-US.ts

echo
echo "=== en-US: key values ==="
rg -nE "formButtonReset|formButtonSubmit|subtitle|title" -n packages/localizations/src/en-US.ts

echo
echo "=== ro-RO: 'createOrganization' block context ==="
rg -n "createOrganization" -C5 packages/localizations/src/ro-RO.ts

echo
echo "=== ro-RO: key values ==="
rg -nE "formButtonReset|formButtonSubmit|subtitle|title" -n packages/localizations/src/ro-RO.ts

Length of output: 2842


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "=== en-US: taskChooseOrganization and nested createOrganization (±10 lines) ==="
rg -n "taskChooseOrganization" -C10 packages/localizations/src/en-US.ts

echo
echo "=== ro-RO: taskChooseOrganization and nested createOrganization (±10 lines) ==="
rg -n "taskChooseOrganization" -C10 packages/localizations/src/ro-RO.ts

Length of output: 2272


Localize Romanian for createOrganization fields
The taskChooseOrganization.createOrganization block in packages/localizations/src/ro-RO.ts still falls back to English because these keys are undefined. Please provide Romanian translations for consistency with en-US:

Apply this diff in packages/localizations/src/ro-RO.ts:

  taskChooseOrganization: {
    createOrganization: {
-      formButtonReset: undefined,
+      formButtonReset: 'Anulează',
-      formButtonSubmit: undefined,
+      formButtonSubmit: 'Continuați',
-      formFieldInputPlaceholder__name: undefined,
+      formFieldInputPlaceholder__name: 'Introduceți numele organizației',
-      formFieldInputPlaceholder__slug: undefined,
+      formFieldInputPlaceholder__slug: 'ex.: acme-co',
-      formFieldLabel__name: undefined,
+      formFieldLabel__name: 'Nume',
-      formFieldLabel__slug: undefined,
+      formFieldLabel__slug: 'Slug URL',
-      subtitle: undefined,
+      subtitle: 'Introduceți detaliile organizației pentru a continua',
-      title: undefined,
+      title: 'Configurați-vă organizația',

If you’d prefer a more explicit label for the name field (e.g. "Numele organizației"), let me know and I can update it.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
formButtonReset: undefined,
formButtonSubmit: undefined,
formFieldInputPlaceholder__name: undefined,
formFieldInputPlaceholder__slug: undefined,
formFieldLabel__name: undefined,
formFieldLabel__slug: undefined,
subtitle: undefined,
title: undefined,
},
taskChooseOrganization: {
createOrganization: {
formButtonReset: 'Anulează',
formButtonSubmit: 'Continuați',
formFieldInputPlaceholder__name: 'Introduceți numele organizației',
formFieldInputPlaceholder__slug: 'ex.: acme-co',
formFieldLabel__name: 'Nume',
formFieldLabel__slug: 'Slug URL',
subtitle: 'Introduceți detaliile organizației pentru a continua',
title: 'Configurați-vă organizația',
},
🤖 Prompt for AI Agents
In packages/localizations/src/ro-RO.ts around lines 817 to 825, the keys for
taskChooseOrganization.createOrganization are set to undefined and fall back to
English; replace the following keys with Romanian translations: formButtonReset,
formButtonSubmit, formFieldInputPlaceholder__name,
formFieldInputPlaceholder__slug, formFieldLabel__name, formFieldLabel__slug,
subtitle, and title. Use appropriate Romanian strings (for example:
formButtonReset -> "Resetează", formButtonSubmit -> "Trimite", name label ->
"Nume" or explicitly "Numele organizației" if preferred, slug label -> "Slug",
placeholders -> matching hint text, and translate subtitle and title into
Romanian) and ensure they follow the same key structure and quoting style as
surrounding entries.

@LauraBeatris LauraBeatris merged commit c043c19 into main Aug 20, 2025
39 checks passed
@LauraBeatris LauraBeatris deleted the iago/update-create-organization-copies branch August 20, 2025 17:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants