feat(localizations): complete uk-UA (Ukrainian) translations - #9344
feat(localizations): complete uk-UA (Ukrainian) translations#9344ex-vi wants to merge 4 commits into
Conversation
🦋 Changeset detectedLatest commit: a3203ef The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
@ex-vi is attempting to deploy a commit to the Clerk Production Team on Vercel. A member of the Team first needs to authorize it. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review. 📝 WalkthroughWalkthroughCompletes Ukrainian translations in Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This PR completes the Ukrainian localization without any supplied actionable merge-blocking risk; it is merge-ready after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/localizations/src/uk-UA.ts`:
- Line 896: Update the footerActionLink__alternativePhoneCodeProvider
translation to explicitly convey “instead” by using the specified Ukrainian
wording, and validate it against the current en-US base localization entry.
- Around line 184-187: Update the Ukrainian seatBreakdownIncludedPlural and
seatBreakdownPlural translations to avoid inflecting “місце” based on the
variable chargeable count, using wording that is grammatically valid for both
2–4 and 5+ seats while preserving the existing rate and total/included context.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository YAML (base), Organization UI (inherited)
Review profile: CHILL
Plan: Pro Plus
Run ID: e5a8041c-f37a-4f25-ac42-1ab55ee60ce5
📒 Files selected for processing (2)
.changeset/uk-ua-complete-translations.mdpackages/localizations/src/uk-UA.ts
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
clerk/clerk_go(manual)clerk/dashboard(manual)clerk/accounts(manual)clerk/backoffice(manual)clerk/clerk(manual)clerk/clerk-docs(manual)clerk/cloudflare-workers(manual)
…instead sense Ukrainian inflects the noun after a number: 2-4 takes one form and 5+ takes another. One plural key cannot serve both, so the seat breakdown now uses a count and a rate without the noun. Five action links dropped the word instead from the base string. They now keep that sense.
Resolve the conflicts in packages/localizations/src/uk-UA.ts and translate the keys main added since the last sync: - billing.checkout: addPromoCode, applyPromoCode, discount, promoCodePlaceholder, removePromoCode (clerk#9316) - billing: discountAmount, discountCyclesRemaining, discountDuration, months, years (clerk#9316) - unstable__errors.form_password_matches_identifier (clerk#9453) - oauthConsent.scopeList.privateMetadata (clerk#9226) billing.months and billing.years render only after a numeric count, via getBillingPeriodLabel. Ukrainian takes one noun form after 2-4 and another after 5+, so a single key cannot serve both. They use the invariant abbreviations «міс.» and «р.», which are correct after any count. This follows the convention already used for the seat-breakdown strings.
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
Description
Completes the Ukrainian (uk-UA) localization: fills all 837 keys that were
undefinedinuk-UA.ts, bringing it to full parity withen-US.ts(1445/1445 keys). The only values leftundefinedare those that areundefinedinen-USitself (server-fallbackunstable__errorsentries andsignIn.start.subtitleCombined), so Clerk's fallback behavior is preserved.Covered areas:
configureSSO(full wizard, incl. Okta / Entra / Google / custom OIDC+SAML steps),billing(checkout, promo codes and discounts, subscription details, pricing table, payment methods),organizationProfile(billing + security pages),userProfile(billing page),oauthConsent,unstable__errors,reverification,taskSetupMfa,taskResetPassword,apiKeys,signIn/signUp, and the remaining top-level keys.Conventions used:
{{placeholders}}and markup are preserved verbatim, verified per key againsten-US.'uk-UA', following the cs-CZ / pl-PL precedent.billing.months/billing.yearsuse the invariant abbreviations «міс.» / «р.».pnpm --filter @clerk/localizations generateis idempotent on this branch, and the community-contribution disclaimer comment is intact.Rebased on latest
mainSynced with
mainand translated the keys added since the last sync:billing.checkout.addPromoCode,applyPromoCode,discount,promoCodePlaceholder,removePromoCode, andbilling.discountAmount,discountCyclesRemaining,discountDuration,months,years.unstable__errors.form_password_matches_identifierfrom fix(ui): render a message for password errors the UI does not map #9453.oauthConsent.scopeList.privateMetadatafrom fix(ui): clarify private metadata OAuth consent copy #9226.billing.months/billing.yearsare only ever rendered after a numeric count, throughgetBillingPeriodLabel, which is why they take the abbreviated form described above.Both review comments from the earlier pass (seat-count pluralization and the dropped “instead” sense in
footerActionLink__alternativePhoneCodeProvider) are addressed and unchanged by the sync.Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change