i18n-pro: 轻量、简单、灵活的自动翻译工具

·  阅读 40

logo.png
轻量、简单、灵活的自动翻译工具

愿景

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

特性

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

Live Demo

写了个 JavaScript 的国际化工具,轻量、简单、灵活且可自动翻译_i18n

原理

该库主要由两部分构成

  • 命令行工具
  • 函数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. ​码云​
分类:
前端
标签:
收藏成功!
已添加到「」, 点击更改