LocaleProvider
为下方所有组件提供语言。
书写中
形状
配色
添加语言与覆盖单条文案见国际化。
标识符的显示名
形状、墨色、状态的标识符是 API——'blob'、'blue'、'thinking'——永远不翻译。翻译的是它们的显示名,语言表把这些显示名按 id 驱动的族存放:shape.*、color.*、state.*、stateDesc.*(每个状态的一句话描述)、belt.*、hud.*、mouth.*、expression.*,加上线条脸用的 face.*、nose.*,以及四个状态分组的 state.group.*。
useLabel() 把这些族包成函数,于是遍历 SHAPE_IDS 的组件不必拼 'shape.' + id 再强转成键:
mochi → 麻薯、思考、进度circle → 圆形、思考、进度blob → 果冻、思考、进度mochi → 麻薯、思考、进度circle → 圆形、思考、进度blob → 果冻、思考、进度HUD 的名字来自引擎自己的 HUD_KIND_LABELS,那里已经带了两种语言;语言表直接转出,而不是再存一份。
键的族
标识符族之外,表按读取它的界面分组:picker.*、editor.*、activity.*、template.*、avatar.*、occupancy.*、restricted.*、boot.* 与 loading.label、cast.*、walkthrough.*、sprite.*。LocaleKey 是覆盖所有键的封闭联合类型,所以拼错键的覆盖是类型错误,而不是悄无声息地不起作用。
API
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
children* | string | number | bigint | boolean | ReactElement<unknown, string | JSXElementConstructor<any>> | Iterable<ReactNode> | ReactPortal | Promise<AwaitedReactNode> | null | — | — |
locale | "en-US" | "zh-CN" | 'en-US' | Language for every component below this point. |
overrides | Partial<Locale> | — | Override individual strings without replacing the whole table. |