vue-translate-auto
Version:
Vue 国际化自动翻译工具 - 自动提取 $t 包裹的字符串并生成多语言文件,支持增量翻译和多种翻译API
225 lines (169 loc) • 5.92 kB
Markdown
# vue-translate-auto
🚀 **Vue 国际化自动翻译工具** - 自动提取 `$t` 包裹的字符串并生成多语言文件,支持增量翻译和多种翻译API
[](https://badge.fury.io/js/vue-translate-auto)
[](https://gitee.com/D5498543/vue-translate-auto/blob/main/LICENSE)
## ✨ 特性
- 🔍 **智能提取**:自动识别 `$t()`、`t()`、`this.$t()` 等翻译函数
- 🌍 **多语言支持**:支持英语、日语、韩语等多种语言
- 📈 **增量翻译**:只翻译新增词汇,保留已有翻译
- 🔄 **多种API**:支持有道翻译、Google翻译、百度翻译
- ⚡ **高性能**:智能重试机制,确保翻译成功率
- 🎯 **配置灵活**:支持自定义提取关键词和翻译参数
## 📦 安装
```bash
npm install -D vue-translate-auto
```
或者
```bash
yarn add -D vue-translate-auto
```
## 🚀 快速开始
### 1. 创建配置文件
在项目根目录创建 `vue-translate-config.json` 文件:
```json
{
"targetPath": "src/lang.json",
"filePath": "src",
"fileSuffix": [".vue", ".js", ".jsx", ".ts", ".tsx"],
"excludes": ["node_modules", "dist"],
"extractKeywords": ["$t", "t", "this.$t", "this.t"],
"translation": {
"enabled": true,
"targetLanguages": ["en", "ja", "ko", "zh-CN"],
"sourceLanguage": "zh-CN",
"outputDir": "src/langs",
"api": {
"provider": "youdao",
"apiKey": "your-api-key",
"apiSecret": "your-api-secret"
}
}
}
```
### 2. 运行翻译
```bash
# 启用翻译功能
npx vue-translate-auto
# 或者禁用翻译,只提取词汇
# 在配置中设置 "enabled": false
```
## ⚙️ 配置说明
### 核心配置
- `targetPath`: 词汇提取文件输出路径(当翻译功能禁用时)
- `filePath`: 需要扫描的源代码目录
- `fileSuffix`: 支持的文件扩展名
- `excludes`: 排除的目录列表
- `extractKeywords`: 需要提取的翻译函数关键字
### 翻译配置
- `enabled`: 是否启用翻译功能
- `targetLanguages`: 目标语言列表
- `sourceLanguage`: 源语言(提取的字符串语言)
- `outputDir`: 翻译文件输出目录
- `api`: 翻译服务配置
### 关键字提取示例
配置 `["$t", "t", "this.$t"]` 会提取以下格式的字符串:
```javascript
// 模板中的使用
$t('welcome.message')
t('button.submit')
this.$t('form.title')
// JavaScript 中的使用
const message = this.$t('notification.success')
const label = t('field.name')
```
## 🌍 翻译功能
### 支持的语言
| 语言代码 | 语言名称 | 支持状态 |
|----------|----------|----------|
| `en` | 英语 | ✅ 完全支持 |
| `ja` | 日语 | ✅ 完全支持 |
| `ko` | 韩语 | ✅ 完全支持 |
| `zh-CN` | 简体中文 | ✅ 完全支持 |
| `fr` | 法语 | 🔄 部分支持 |
| `de` | 德语 | 🔄 部分支持 |
| `es` | 西班牙语 | 🔄 部分支持 |
| `ru` | 俄语 | 🔄 部分支持 |
### 翻译服务
| 服务商 | 特点 | API密钥 | 推荐度 |
|--------|------|----------|--------|
| **有道翻译** | 翻译质量高,支持语言多 | 需要 | ⭐⭐⭐⭐⭐ |
| **Google翻译** | 免费,无需密钥 | 无需 | ⭐⭐⭐⭐ |
| **百度翻译** | 中文翻译质量好 | 需要 | ⭐⭐⭐ |
### 增量翻译
- 🚀 **智能检测**:自动识别已有翻译和新词汇
- 💾 **内容保护**:保留所有已有翻译,永不覆盖
- ⚡ **性能提升**:只翻译新增内容,大幅减少等待时间
### 输出文件结构
```
src/
├── lang.json # 词汇提取文件(翻译功能禁用时)
└── langs/ # 翻译文件目录(翻译功能启用时)
├── zh-CN.json # 源语言(中文)
├── en.json # 英语翻译
├── ja.json # 日语翻译
├── ko.json # 韩语翻译
├── fr.json # 法语翻译
└── de.json # 德语翻译
```
### 文件内容示例
**zh-CN.json (源语言)**
```json
{
"welcome": "欢迎",
"login": "登录",
"register": "注册"
}
```
**en.json (英语翻译)**
```json
{
"welcome": "Welcome",
"login": "Login",
"register": "Register"
}
```
## 🚀 使用方法
### 命令行执行
```bash
# 启用翻译功能
npx vue-translate-auto
# 或者禁用翻译,只提取词汇
# 在配置中设置 "enabled": false
```
### 执行流程
#### 翻译功能启用时:
1. 🔍 扫描指定目录下的源代码文件
2. 📝 提取所有翻译函数包裹的字符串
3. 🌍 自动翻译成配置的目标语言
4. 💾 在 `outputDir` 目录下生成各语言的JSON文件
5. 📊 显示详细的翻译统计和进度
#### 翻译功能禁用时:
1. 🔍 扫描指定目录下的源代码文件
2. 📝 提取所有翻译函数包裹的字符串
3. 💾 生成词汇提取文件到 `targetPath`
4. 📊 显示提取统计信息
## 📊 性能特性
- ⚡ **智能重试**:自动重试失败的翻译请求
- 🕐 **指数退避**:智能延迟策略,避免API限制
- 📈 **进度显示**:实时进度条和详细统计信息
- 💾 **缓存机制**:避免重复翻译相同内容
- 🔄 **增量更新**:只处理新增内容,大幅提升效率
## 📝 更新日志
### v2.0.1
- ✨ 新增增量翻译功能
- 🚀 优化翻译性能,支持智能重试
- 📊 改进进度显示和统计信息
- 🎯 支持禁用翻译功能,仅提取词汇
### v1.0.7
- 🎉 初始版本发布
- 🔍 支持多种翻译函数提取
- 🌍 集成多种翻译API服务
## 🤝 贡献
欢迎提交 Issue 和 Pull Request!
## 📄 许可证
本项目基于 [ISC License](LICENSE) 开源。
## 📞 联系作者
如有问题或建议,请备注来意,谢谢!
- **QQ**: 2636530781
- **Email**: 2636530781@qq.com
- **Gitee**: [@D5498543](https://gitee.com/D5498543)