node-Translate-i18n 是一个用于多语言国际化的工具,能够轻松地将本地化文件翻译成其他语言,例如为
en-US.js
翻译一份中文本地化文件zh-CN.js
。通过简单的命令行界面,您可以快速将项目的本地化文件转换成所需的目标语言,实现 NodeJS 项目跨语言的国际化支持。
npm install @kabeep/node-translate-i18n --save
yarn add @kabeep/node-translate-i18n
pnpm add @kabeep/node-translate-i18n
import localize from '@kabeep/node-translate-i18n';
localize({
_: ['./src/locale/en-US.ts'],
to: ['zh-CN', 'ja-JP'],
rewrite: true,
})
.then(console.log)
.catch(console.error);
localize ./en-US.ts -t "zh-CN" "ja-JP" -r
用法: localize <路径> [选项]
选项:
-t, --to 目标语言,指定为ISO 639-1代码或与 ISO-3166 代码的组合
[数组] [必需]
-r, --rewrite 当文件或短语存在时进行覆写 [布尔] [默认值: false]
-v, --version 显示版本号 [布尔]
-h, --help 显示帮助信息 [布尔]
示例:
localize ./en-US.js -t zh-CN 使用 javascript locale 文件
localize ./en-US.ts -t zh-CN 使用 typescript locale 文件
localize ./en-US.json -t zh-CN 使用 json locale 文件
localize ./en-US.ts -t zh-CN -r 覆写已存在的文件或短语
对于不存在的本地化文件,cli 会使用由源文件翻译的译本创建并写入新的文件 (文件名来自 to 参数)。
# locale
# ├── en-US.js (1 row)
# =>
# locale
# ├── en-US.js (1 row)
# + ├── zh-CN.js (1 row)
localize ./locale/en-US.js -t "zh-CN"
当
to
参数中的本地化文件已存在时,会通过diff
仅写入新增的短语。 这在已经通过更准确的翻译结果手动修改过某些短语时非常实用。
# locale
# ├── en-US.js (2 row)
# ├── zh-CN.js (1 row)
# ├── ja-JP.js (2 row)
# =>
# locale
# ├── en-US.js (2 row)
# M ├── zh-CN.js (2 row)
# ├── ja-JP.js (2 row)
localize ./locale/en-US.js -t "zh-CN" "ja-JP"
当
to
参数中的本地化文件已存在时,会覆写已存在的短语。
# locale
# ├── en-US.js (2 row)
# ├── zh-CN.js (2 row)
# ├── ja-JP.js (2 row)
# =>
# locale
# ├── en-US.js (2 row)
# M ├── zh-CN.js (2 row)
# M ├── ja-JP.js (2 row)
localize ./locale/en-US.js -t "zh-CN" "ja-JP" -r
en, zh, ru, ...
- RFC 4647 (ISO 639-1, ISO 15924 与 ISO 3166-1 的任意组合)
en-US, zh-CN, zh-TW, ru-RU, ...
- 自定义的文件后缀
en-US.locale, zh-CN.locale, zh-TW.locale, ru-RU.locale, ...
- Javascript
- Typescript
- JSON
不限制层级的键值对,可以参考 format.js document 或者 polyglot.js document
以下是一个示例:
{
"GREETING": "Hello {name}!"
}
或者
export default {
"GREETING": "Hello world!",
"DICTIONARY": {
"GRETTING": "Hello {{name}}!"
}
}
- i18n-cli - 一个 CLI 工具,利用 OpenAI API 翻译基于 JSON 的语言环境文件
- locize-cli - locize cli 导入/导出语言环境、添加/编辑/删除、同步片段
- node-polyglot - 让您的 JavaScript 能够讲多种语言。
- node-translate - 🦜 一个强大、安全且功能丰富的 API,通过 Google 翻译。
- node-translate-cli - > 一个强大、安全且功能丰富的终端工具,通过 Google 翻译。_
欢迎通过 Pull Requests 或 Issues 来贡献你的想法和代码。
本项目采用 MIT 许可证。详情请见 LICENSE 文件。