子应用国际化说明(for开发者)
安装
用任意包管理器在项目中安装npm包:bun i @lovrabet/i18n or pnpm i @lovrabet/i18n
@lovrabet/i18n 极简说明
Java
// 0. 安装
bun i @lovrabet/i18n
// 1. 初始化, 并设置本地词包
const $i18n = new I18n({
locale: {
"en-US": {"welcome": "Welcome to yt-i18n"},
"zh-CN": {"welcome": "欢迎使用 yt-i18n 国际化库"},
"ja-JP": {"welcome": "yt-i18n へようこそ"},
},
});
// 2. 判断当前语种
$i18n.getLang();
// 3. 设置当前语种
$i18n.setLang("zh-CN");
// 4. 一些配置
$i18n.setConfig({
defaultLang: "zh-CN",
langList: ["zh-CN", "en-US", "ja-JP"],
});
// 5. 编码使用 .t .get 均可, 推荐 .t
$i18n.t("welcome"); // 最简单的使用
$i18n.t("welcome", "欢迎"); // welcome key不存在的时候, 用"欢迎"替代
$i18n.t({ id: "welcome", dm: "欢迎" }); // 完整写法, 同上
// 带参数
$i18n.t("hello", { name: "Jeffery" });
// 带参数完整写法, 同上
$i18n.t(
{ id: "hello", dm: "Hello, {name}!" },
{ name: "Jeffery" }
)JSON
{
"welcome": "Welcome to yt-i18n",
"hello": "Hello: {name}", // 接收参数
// 支持 ID 嵌套, 使用时 $i18n.t("index.welcome", "欢迎")
// 推荐采用这种方式, 按工程文件目录结构存放
"index": {
"welcome": "Welcome to yt-i18n"
}
}语种说明
| 语种编码 | 语种名称 | 中文名称 |
|---|---|---|
| zh-CN | 中文(简体) | 中文(简体) |
| en-US | English | 英文 |
| ja-JP | 日本語 | 日语 |
| id-ID | Bahasa Indonesia | 印尼语 |
| tr-TR | Türkçe | 土耳其语 |
| …… |
sub-app 使用 demo
参考项目:https://github.com/lovrabet/sub-app-react-demo/tree/i18n (注意在i18n分支)
语言设置会在主应用统一做,因此子应用只需要做文案翻译,提取到词包即可
重点关注:
src/i18n:包含 i18n 配置和实例src/locales:包含所有语言的词包文件src/layouts:用于示例的已进行国际化提取的文件,其他文件可参考
完成项目配置后,可用任意 Agent 对项目做整体国际化,参考prompt:
Plain
对项目中所有文件进行 i18n 国际化处理,需要支持中文和英文,提取的词包放在 src/locales 目录下。参考方法:
$i18n.t("welcome", "欢迎"); // welcome key不存在的时候, 用"欢迎"替代
// 带参数
$i18n.t("hello", { name: "Jeffery" });
// 词包接收参数
{ "hello": "你好: {name}" }