[WEB] zh-CN greeting spliced from fragments + more hardcoded UI strings (i18n batch 3)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 59.6k
- Forks
- 5.8k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 49
Description
Description
Third pass of zh-CN i18n completions, follow-up to #9781 / #9782.
1. Greeting splicing bug
apps/web/core/components/home/user-greetings.tsx and apps/web/core/components/user/user-greetings.tsx render {t("good")} {t(greeting)}. This works for English ("Good afternoon") but concatenates nonsense in Chinese: zh-CN values are 「早上」+「下午」, producing 「早上 下午, 」.
Fix: replace the fragment keys good/morning/afternoon/evening with whole-phrase keys good_morning/good_afternoon/good_evening (en: "Good morning" etc.; zh-CN: 「早上好」「下午好」「晚上好」; zh-TW: 「早安」「午安」「晚安」; other locales mirror English per the sync-check contract). Both components now make a single t() call. The old keys have no other references and are removed.
2. More hardcoded English strings routed through i18n
User-facing leftovers found by static scan, high-traffic surfaces only:
- Module link modal (title, labels, placeholders, buttons, toasts — via existing
common.*shared keys, mirroring the issue-detail link modal) - Cycles "Transfer work items" modal: title, search placeholder, empty state, loading state, success/error toasts (new
cycle.transfer_issues_modal.*) - Delete/leave project confirmation modals: title, description, instructions (ICU
{name}/{value}), placeholders, buttons, toasts (newproject.modals.*). The typed confirmation literals (delete my project,Leave Project) intentionally stay English — they are compared against code constants. - Project state create/update form: placeholders, cancel button, required validation
- 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, inbox duplicate picker (reuse
common.search.label)
Type of Change
- Bug fix (non-breaking change which fixes an issue)
Environment
- Plane version: preview (post v1.4.2)
- Browser: any (locale-dependent)
Checklist
- I have searched existing issues to avoid duplicates (follow-up to #9781)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with apps/web/core/components/home/user-greetings.tsx and apps/web/core/components/user/user-greetings.tsx, then search the web surfaces listed in the issue for the remaining hardcoded strings and old greeting keys. Check the locale entries against the stated English, zh-CN, and zh-TW wording and the sync-check contract; done means the listed UI text is routed through i18n and the obsolete keys have no references.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend, internationalization, localization
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100