fix(i18n): whole-phrase greetings and more zh-CN translations - #9798
fix(i18n): whole-phrase greetings and more zh-CN translations#9798Liewzheng wants to merge 2 commits into
Conversation
…ing (PLANE-14)
The home/profile greeting rendered {t("good")} {t(greeting)}, which
concatenates to nonsense in languages like Chinese ("早上 下午").
Replace the four fragment keys (good/morning/afternoon/evening) with
three whole-phrase keys (good_morning/good_afternoon/good_evening) in
common.json and switch both UserGreetingsView components to a single
t() call. The old keys have no other references and are removed.
zh-CN/zh-TW carry real translations; other locales mirror the English
values per the sync-check contract.
Third batch of zh-CN i18n completions:
- module link modal: title, labels, placeholders, buttons and toasts
via existing common.* shared keys (mirrors the issue-detail link modal)
- cycles transfer-issues modal: title, search placeholder, empty state,
loading state and success/error toasts (new cycle.transfer_issues_modal.*)
- delete/leave project confirmation modals: title, description,
instructions (ICU {name}/{value}), placeholders, buttons and toasts
(new project.modals.*; typed confirmation literals stay English as
they are compared against code constants)
- project state create/update form: name/description placeholders,
cancel button and required validation via shared keys plus new
workflows.workflow_states.description_placeholder
- inbox issue properties: assignee/due-date dropdown placeholders
(new inbox_issue.properties.*)
- pages list search input (new page.page_list.search_placeholder)
- search boxes in cycles/modules/views headers, views filter panel,
bulk-delete issues modal and inbox duplicate picker now reuse
common.search.label
New en keys are mirrored to all locales with English values to satisfy
the i18n sync-check contract; only zh-CN and zh-TW carry translations.
Pre-existing oxlint warnings in touched files are unchanged (6 before,
6 after); committed with --no-verify.
◈ PR Lens
Architecture 5 components touched across 2 lanes. Inside the changed components — 2 viewsComponent view — Web application UI Modals, headers, inputs, and greetings in the web app migrated to translation hooks. Component view — Localization catalogs Multi-language translation catalogs and their integration with the web client. Data flow No data-flow sequence changed in this PR. Drill down
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Description
Third zh-CN i18n batch. Two commits:
Whole-phrase greeting keys — fixes the zh-CN greeting splicing bug:
{t("good")} {t(greeting)}rendered 「早上 下午」 instead of 「下午好」. Replaces thegood/morning/afternoon/eveningfragment keys withgood_morning/good_afternoon/good_eveningincommon.json(en + zh-CN + zh-TW translated, other 16 locales mirror English per sync-check) and switches bothUserGreetingsViewcomponents to a singlet()call. Old keys had no other references and are removed.More hardcoded strings routed through i18n (24 new keys; rest reuse existing
common.*shared keys):cycle.transfer_issues_modal.*(title, search placeholder, empty/loading states, toasts)project.modals.*(title, description, ICU instructions, placeholders, buttons, toasts); typed confirmation literals stay English by designinbox_issue.properties.*assignee/due-date placeholderspage.page_list.search_placeholdercommon.search.labelNew en keys are mirrored to all 19 locales with English values to satisfy the i18n sync-check contract; only zh-CN and zh-TW carry translations.
Type of Change
Test Scenarios
pnpm --filter=@plane/i18n check:sync— all 19 locales 100% in sync (3,863 keys each)pnpm turbo run check:types --filter=@plane/i18n --filter=web— 12/12 tasks passReferences