愿景
September 6, 2025 · View on GitHub
愿景
让国际化变得轻松且愉快😄💪🏻
特性
- 轻量:
- 简单:简单配置,快速启用
- 灵活:支持变量插值、以及独特的类型标记和格式化器
- 自动翻译:一键提取文案并生成语言包
- 增量翻译:只翻译新增文案,移除未使用文案
- 多平台支持:例如谷歌X、OpenAI、谷歌、微软、腾讯、阿里云、有道、百度等翻译平台
- 翻译日志:多种日志输出,便于追踪问题
- keyless:文案即 key,部分特殊场景需要自定义 key(例如:一词多义)
Live Demo
原理
自动翻译是当前库的核心特性之一,了解更多
该库主要由两部分构成
- 命令行工具
- 函数 API
命令行工具:根据指定规则(正则匹配)解析出需要翻译的文案,并通过翻译平台将文案翻译到指定目标语言,最后生成语言包文件
解析文案的 匹配规则 简易示例如下
以下为 文案即 key 的示例
// 普通字符串
t('你好世界')
t("你好世界")
t(`你好世界`)
// 变量插值
t('嗨,{0}', '开发者朋友们')
t('这是{0},欢迎{1},如果你觉得{2},请给予{3}支持', ' `i18n-pro` ', '使用', `对你有帮助`, ' ⭐️ ')
// 类型标记
t('i18n-pro 用户数达到了{n0}', 100000000) // 数字
t('售价为{c0}', 14999) // 货币
t(`今天的日期是{d0}`, new Date()) // 日期
t('当前时间:{t0}', new Date()) // 时间
t('我有{p0个苹果},{p1个香蕉}和{p2个梨}', 5, 4, 3) // 复数
以下为 自定义 key 的示例
// 普通字符串
t.t('custom-key', '你好世界')
t.t('custom-key', "你好世界")
t.t('custom-key', `你好世界`)
// 变量插值
t.t('custom-key', '嗨,{0}', '开发者朋友们')
t.t('custom-key', '这是{0},欢迎{1},如果你觉得{2},请给予{3}支持', ' `i18n-pro` ', '使用', `对你有帮助`, ' ⭐️ ')
// 类型标记
t.t('custom-key', 'i18n-pro 用户数达到了{n0}', 100000000) // 数字
t.t('custom-key', '售价为{c0}', 14999) // 货币
t.t('custom-key', `今天的日期是{d0}`, new Date()) // 日期
t.t('custom-key', '当前时间:{t0}', new Date()) // 时间
t.t('custom-key', '我有{p0个苹果},{p1个香蕉}和{p2个梨}', 5, 4, 3) // 复数
函数 API:通过 initI18n 、 t 、 setI18n 接入多语言支持
- initI18n:初始化配置,返回 API 对象
- t:包裹
文案实现国际化,也是命令行匹配标识 - setI18n:设置语言、语言包
命令行工具 与 函数 API 搭配使用,轻松集成到任何 JavaScript 项目中
帮助文档
License
© 2022-present Eyelly Wu