One UI

国际化(i18n)

One UI 内置 zh-CN 与 en 两套消息字典,覆盖占位符、aria 标签、校验消息、分页文本和空状态等组件默认文案。全局单例 oneI18n 默认使用 zh-CN。

import { oneI18n } from '@geektech/one';

oneI18n.setLocale('en');

切换语言后,已挂载组件的默认文案会自动重渲染为英文;显式传入的 props 始终优先于翻译后的默认值。

翻译组件默认文案

import { OneEmpty, oneI18n } from '@geektech/one';

const empty = new OneEmpty(); // 内置中文默认 / built-in zh-CN default
const custom = new OneEmpty({ description: 'No results' }); // prop 优先 / prop wins
oneI18n.setLocale('en');

自定义消息

通过 mergeMessages 合并进内置字典,或使用 createOneI18n 创建完全隔离的实例。

import { createOneI18n, oneI18n } from '@geektech/one';

oneI18n.mergeMessages({
  'zh-CN': { 'app.greeting': '你好,{name}!' },
  en: { 'app.greeting': 'Hello, {name}!' },
});
console.log(oneI18n.t('app.greeting', { name: 'One' }));

const custom = createOneI18n({ locale: 'en' }); // 隔离实例 / isolated instance