0 Star 1 Fork 0

Eyelly Wu / i18n-pro

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

logo

English | 简体中文

适用于 JavaScript 的轻量、简单、灵活、自动翻译的国际化工具

npm-version npm-download

github-stars last-commit github-issues codecov

demo

目录

愿景
特性
Live Demo
原理
帮助文档
License

愿景

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

特性

  • 轻量bundlesize
  • 简单:学习成本低,易上手
  • 灵活:支持 变量插值 、以及独特的类型标记和格式化回调(数字、货币、日期、时间、复数)
  • 自动翻译:一个命令即可自动提取文案并翻译生成语言包
    • 支持增量翻译模式:只翻译新增文案,智能移除未使用文案
    • 支持多翻译平台:谷歌X、OpenAI、谷歌、微软、腾讯、阿里云、有道、百度(除谷歌X外,其他平台需自行注册账号)
    • 支持多种翻译日志:多种类型翻译日志的输出,便于追踪与定位翻译问题
  • keyless:无需手动定义key, 翻译文案 即key

Live Demo

原理

翻译文案 作为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:将国际化语言包接入到项目中,由 initI18ntsetI18nwithI18n 构成

  • initI18n:用于初始化固定配置,最后返回包含如下 3 个 API 的对象
  • t:用于包裹 翻译文案 实现国际化,也作为命令行匹配 翻译文案 规则的标识
  • setI18n:设置语言、语言包
  • withI18n:适用于服务端,每个接口响应需要做国际化的处理

所以 命令行工具函数API 这两者搭配使用效果更佳,也正是由于这样的结构设计,使得 i18n-pro 库可以很方便集成到任何的 JavaScript 项目中

帮助文档

License

MIT

Copyright (c) 2022-present Eyelly Wu

MIT License Copyright (c) 2022-present Eyelly Wu Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

适用于 JavaScript 的轻量、简单、灵活、自动翻译的国际化工具 展开 收起
TypeScript 等 3 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
TypeScript
1
https://gitee.com/eyelly/i18n-pro.git
git@gitee.com:eyelly/i18n-pro.git
eyelly
i18n-pro
i18n-pro
main

搜索帮助