Skip to content

子应用国际化说明(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-USEnglish英文
ja-JP日本語日语
id-IDBahasa Indonesia印尼语
tr-TRTü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}" }

基于飞书知识库同步生成,内容以飞书源文档为准