The text options started with Japanese only. Chinese and Korean reused
its controls and helpers, which kept Japanese names, and some rules got
a copy per language.
- Rename text-japanese-layout to text-cjk-controls: the controls every
language panel shares. The Japanese panel and its own controls move to
text-language-layout, next to the Chinese and Korean ones.
- Share one option row, one writing mode row (languages add their radio
groups to it), and one emphasis and clearance select per language.
- Rename the selection, plugin and HTML style helpers from japanese to
cjk, `schema:jl-enum` to `schema:cjk-enum`, and the stored writing
mode helpers to `stored-writing-mode` and `stored-vertical?`, apart
from the rendered ones in writing-mode.
- Build the language label and dropdown from one table of languages,
and rename the profile-* translation keys to language-*.
- Decide the attrs each language renders from one table per level
(root, paragraph, span).
- Serialize korean-wrap through the CJK enum table and RawKoreanWrap.
- Compare the CJK option attrs in a loop in the text menu.
AI-assisted-by: claude-opus-5-5