乐趣区

关于前端:i18npro轻量简单灵活的自动翻译工具

轻量、简略、灵便的主动翻译工具

愿景

为了让接入国际化成为轻松且欢快的事😄💪🏻

个性

  • 轻量:​ ​minzipped size 1.5kb​​
  • 简略:学习成本低,易上手
  • 灵便:反对动静参数、以及独特的类型标记和格式化回调(数字、货币、日期、工夫、复数)
  • 主动翻译:一个命令即可主动提取文本并翻译生成语言包
  • keyless:无需手动定义 key,待翻译文本即 key

Live Demo

  • ​ ​Open in CodeSandbox​​
  • ​ ​Open in StackBlitz​​
  • 以后库命令行工具也做了国际化,成果如下

原理

该库次要由两局部形成

  • 命令行工具
  • 函数 API

命令行工具:依据指定规定解析出须要翻译的文本,并通过翻译平台将文本翻译到指定目标语言,最初生成语言包文件

解析文本的匹配规定繁难示例如下

// 一般字符串
i18n('xxx')
i18n("xxx")
i18n(`xxx`)

// 反对动静参数
i18n('xxx{0}xxx', param1)
i18n('xxx{0}xxx{1}xxx{2}xxx', param1, param2, param3)

// 动静参数类型标记
i18n('用户数达到了{n0}', 100000000) // 数字类型
i18n('售价为{c0}', 14999) // 货币类型
i18n('明天的日期是{d0}', new Date()) // 日期类型
i18n('以后工夫:{t0}', new Date()) // 工夫类型
i18n('我有 {p0 个苹果},{p1 个香蕉} 和{p2 个梨}', 5, 4, 3) // 复数类型
复制代码

函数 API:将国际化语言包接入到我的项目中,由 ​​i18n​​​、​​setI18N​​​ 和 ​​withI18N​​ 形成

  • i18n:用于包裹被翻译文本实现国际化,也作为命令行匹配翻译文本规定的标识
  • setI18N:设置语言、语言包及其他配置项
  • withI18N: 实用于服务端,每个接口响应须要做国际化的解决

所以 ​​命令行工具​​​ 和 ​​函数 API​​​ 这两者搭配应用成果更佳,也正是因为这样的结构设计,使得 ​​i18n-pro​​​ 库能够很不便集成到任何的 ​​JavaScript​​ 我的项目中

结语

本文只做简略的介绍,看到这里如果你感觉还感兴趣的话,能够拜访以下任意链接获取具体的文档内容

  1. ​ ​npm​​
  2. ​ ​GitHub​​
  3. ​ ​码云​​
退出移动版