Files
Bohan Jiang 176e8c684f MUL-6050: feat(onboarding): romanize Chinese workspace names into a slug (#6823)
* feat(onboarding): romanize Chinese workspace names into a slug

A Chinese name still left the create form half empty: nameToWorkspaceSlug
strips every non-Latin character, so 蜘蛛侠 produced no URL, and with no
URL there was nothing to derive an issue prefix from either. The user had
to invent both fields by hand — the fields that make a workspace
identifiable.

Han runs are now romanized before slugifying: 蜘蛛侠 → "zhizhuxia", which
carries into the prefix through the existing slug rule → ZHIZ. Each run is
converted whole so pinyin-pro's phrase dictionary resolves 多音字 from
context (长沙 → "changsha", not "zhangsha"; 重庆 → "chongqing"; 银行 →
"yinhang") — the objection that killed the original pinyin proposal, which
per-character conversion really does hit.

This is a derived default the user can edit before creating, not the
hardcoded "workspace" fallback that was rejected earlier: it picks a
meaningful URL and two differently-named workspaces don't collide.

pinyin-pro was already a packages/views dependency (editor pinyin search),
so nothing new is added to the tree. Names with nothing to romanize —
kana, Hangul, emoji — still derive no slug and keep the empty-prefix hint
from #6819.

Co-authored-by: multica-agent <github@multica.ai>

* fix(onboarding): keep pinyin off Japanese and Korean names

Review nit on #6823: Han characters are shared, their readings are not.
東京 is "dongjing" in Mandarin and "tokyo" in Japanese, so romanizing a
Japanese name produced a wrong slug — and the slug is permanent once the
workspace is created, unlike the editable default it looks like.

Romanization is now skipped when the text or the reader's language says
the name isn't Chinese: kana anywhere in the name (a certain signal, in
any UI language) or a ja/ko UI locale (for all-kanji names, which carry no
signal of their own). Those names fall back to the empty slug the form
already handles, which is a blank field the user fills in rather than a
wrong reading they have to notice and undo.

A Japanese all-kanji name typed into a non-Japanese UI still romanizes.
Fixing that one needs real Japanese romaji — a segmenter plus a reading
dictionary — rather than another heuristic.

Co-authored-by: multica-agent <github@multica.ai>

---------

Co-authored-by: Bohan-J <bohan@devv.ai>
Co-authored-by: multica-agent <github@multica.ai>
2026-08-12 17:37:09 +08:00
..