为了让接入国际化成为轻松且愉快的事😄💪🏻
- 轻量:
- 简单:学习成本低,易上手
- 灵活:支持
变量插值
、以及独特的类型标记和格式化回调(数字、货币、日期、时间、复数) - 自动翻译:一个命令即可自动提取文案并翻译生成语言包
- 支持增量翻译模式:只翻译新增文案,智能移除未使用文案
- 支持多翻译平台:谷歌X、OpenAI、谷歌、微软、腾讯、阿里云、有道、百度(除谷歌X外,其他平台需自行注册账号)
- 支持多种翻译日志:多种类型翻译日志的输出,便于追踪与定位翻译问题
- keyless:无需手动定义key,
翻译文案
即key
以
翻译文案
作为key是该库所有功能实现的关键,如果对此有任何疑问,请查看
该库主要由两部分构成
- 命令行工具
- 函数API
命令行工具:根据指定规则(正则匹配)解析出需要翻译的文案,并通过翻译平台将文案翻译到指定目标语言,最后生成语言包文件
解析文案的 匹配规则 简易示例如下
/** 普通字符串 */
t('hello world')
t("hello world")
t(`hello world`)
/** 支持变量插值 */
t('hello {0}', '开发者朋友们'),
t('这是{0},欢迎{1},如果你觉得{2},请给予{3}支持', ' `i18n-pro` ', '使用', `对你有帮助`, ' ⭐️ ')
/** 插值变量类型标记,需配合对应的格式化回调 */
// 数字类型
t('用户数达到了{n0}', 100000000)
// 货币类型
t('售价为{c0}', 14999)
// 日期类型
t(`今天的日期是{d0}`, new Date())
// 时间类型
t('当前时间:{t0}', new Date())
// 复数类型
t('我有{p0个苹果},{p1个香蕉}和{p2个梨}', 5, 4, 3)
函数API:将国际化语言包接入到项目中,由 initI18n
、 t
、 setI18n
和 withI18n
构成
- initI18n:用于初始化固定配置,最后返回包含如下 3 个 API 的对象
- t:用于包裹
翻译文案
实现国际化,也作为命令行匹配翻译文案
规则的标识 - setI18n:设置语言、语言包
- withI18n:适用于服务端,每个接口响应需要做国际化的处理
所以 命令行工具
和 函数API
这两者搭配使用效果更佳,也正是由于这样的结构设计,使得 i18n-pro
库可以很方便集成到任何的 JavaScript
项目中
Copyright (c) 2022-present Eyelly Wu