i18n-automatically-cli
v1.0.18
Published
国际化多语言自动生成替换CLI工具
Maintainers
Readme
i18n-automatically CLI
🌍 国际化多语言自动生成替换CLI工具
一个强大的命令行工具,可以自动扫描您的项目中的中文文本,并将其替换为国际化调用,同时支持自动翻译生成多语言包。
vscode 插件:https://github.com/wu529778790/i18n-automatically
特性
- 🔍 智能扫描: 自动扫描 JavaScript、TypeScript、Vue 文件中的中文文本
- 🔄 自动替换: 将中文文本替换为 i18n 调用
- 🌐 多语言生成: 支持自动翻译生成多语言包
- 🛠 灵活配置: 支持自定义配置文件
- 📦 批量处理: 支持批量扫描和处理多个文件
- 🎯 智能过滤: 可配置排除特定文件类型和字符串
安装
npm install -g i18n-automatically-cli运行环境要求: Node.js >= 16.0.0
快速开始
1. 初始化项目
cd your-project
i18n-auto init这会创建配置文件和基本的目录结构。
2. 扫描单个文件
i18n-auto scan src/components/Header.vue3. 批量扫描项目
i18n-auto batch4. 生成多语言包
i18n-auto generate -l en ja ko命令详解
i18n-auto init
初始化项目国际化配置,会交互式地引导您完成配置。
i18n-auto initi18n-auto config
打开配置文件进行编辑。
i18n-auto configi18n-auto scan [filePath]
扫描指定文件中的中文并替换为 i18n 调用。
# 扫描指定文件
i18n-auto scan src/App.vue
# 使用选项指定文件
i18n-auto scan --file src/components/Button.tsxi18n-auto scan:batch (或 i18n-auto batch)
批量扫描项目中的文件。
# 扫描当前目录
i18n-auto batch
# 指定目录
i18n-auto batch --dir src/
# 排除特定模式
i18n-auto batch --exclude node_modules test选项:
-d, --dir <directory>: 指定要扫描的目录 (默认: 当前目录)-e, --exclude <patterns...>: 排除的文件或目录模式
i18n-auto generate (或 i18n-auto gen)
生成多语言包,支持自动翻译。
# 生成英文语言包
i18n-auto generate
# 生成多个语言包
i18n-auto generate -l en ja ko es
# 使用指定翻译服务
i18n-auto generate -s baidu -l en
# 只生成模板,不翻译
i18n-auto generate --no-translate -l en选项:
-s, --service <service>: 翻译服务 (google|baidu|deepl, 默认: google)-l, --languages <langs...>: 目标语言列表 (默认: ['en'])--no-translate: 不进行翻译,仅生成模板
i18n-auto switch <language>
切换并查看指定语言包的内容。
i18n-auto switch en
i18n-auto switch zh配置文件
运行 i18n-auto init 后,会在项目根目录生成 automatically-i18n-config.json 配置文件:
{
"i18nFilePath": "/src/i18n",
"autoImportI18n": true,
"i18nImportPath": "@/i18n",
"templateI18nCall": "$t",
"scriptI18nCall": "i18n.global.t",
"keyFilePathLevel": 2,
"excludedExtensions": [
".svg", ".png", ".jpg", ".jpeg", ".gif",
".bmp", ".ico", ".md", ".txt", ".json",
".css", ".scss", ".less", ".sass", ".styl"
],
"excludedStrings": [
"宋体", "黑体", "楷体", "仿宋", "微软雅黑",
"华文", "方正", "苹方", "思源", "YYYY年MM月DD日"
],
"debug": false,
"freeGoogle": true,
"baidu": {
"appid": "",
"secretKey": ""
},
"deepl": {
"authKey": "",
"isPro": false
}
}提示:
- Windows 下无需以根路径开头,工具会自动规范化
i18nFilePath,避免错误指向磁盘根目录。 - 生成的翻译键采用
i18n-auto-前缀加 8 位 MD5,便于一致性与去重。
配置项说明
i18nFilePath: i18n 文件存放路径autoImportI18n: 是否自动导入 i18ni18nImportPath: i18n 导入路径templateI18nCall: 模板中的 i18n 调用方法scriptI18nCall: 脚本中的 i18n 调用方法excludedExtensions: 排除的文件扩展名excludedStrings: 排除的字符串freeGoogle: 是否启用免费谷歌翻译baidu: 百度翻译配置deepl: DeepL 翻译配置
翻译服务配置
免费谷歌翻译 (默认)
无需配置,直接使用。
百度翻译
- 在 百度翻译开放平台 注册账号
- 创建应用获取 APP ID 和密钥
- 在配置文件中填入:
{
"baidu": {
"appid": "你的APP_ID",
"secretKey": "你的密钥"
}
}DeepL 翻译
- 在 DeepL API 注册账号
- 获取 Auth Key
- 在配置文件中填入:
{
"deepl": {
"authKey": "你的Auth_Key",
"isPro": false
}
}支持的文件类型
- JavaScript (
.js) - TypeScript (
.ts) - JSX (
.jsx) - TSX (
.tsx) - Vue (
.vue)
目录结构
扫描后的项目结构:
your-project/
├── src/
│ └── i18n/
│ └── locale/
│ ├── zh.json # 中文语言包
│ ├── en.json # 英文语言包
│ └── ... # 其他语言包
├── automatically-i18n-config.json
└── ...示例
扫描前的代码
// src/App.js
function App() {
return (
<div>
<h1>欢迎使用我的应用</h1>
<button>点击这里</button>
</div>
);
}扫描后的代码
// src/App.js
import i18n from '@/i18n';
function App() {
return (
<div>
<h1>{i18n.global.t('i18n-auto-6ab12cde')}</h1>
<button>{i18n.global.t('i18n-auto-54f0a1b2')}</button>
</div>
);
}生成的语言包
// src/i18n/locale/zh.json
{
"i18n-auto-6ab12cde": "欢迎使用我的应用",
"i18n-auto-54f0a1b2": "点击这里"
}
// src/i18n/locale/en.json
{
"i18n-auto-6ab12cde": "Welcome to my app",
"i18n-auto-54f0a1b2": "Click here"
}常见问题
Q: 如何排除某些文件或目录?
A: 使用 --exclude 选项或在配置文件中设置 excludedExtensions。
Q: 翻译质量不理想怎么办?
A: 可以手动编辑生成的语言包文件,或尝试不同的翻译服务。
Q: 支持哪些语言代码?
A: 支持标准的 ISO 639-1 语言代码,如:en, zh, ja, ko, es, fr, de 等。
许可证
MIT
贡献
欢迎提交 Issue 和 Pull Request!
更新日志
v1.0.0
- 初始版本发布
- 支持 JavaScript/TypeScript/Vue 文件扫描
- 支持多种翻译服务
- 支持批量处理
