# vue-translate-auto **Repository Path**: D5498543/vue-translate-auto ## Basic Information - **Project Name**: vue-translate-auto - **Description**: 已发布至npm 作用:将指定目录下的文件中的 $t 包裹的字符串提取出来,并生成对应的语言文件 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-11-06 - **Last Updated**: 2025-08-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vue-translate-auto 🚀 **Vue 国际化自动翻译工具** - 自动提取 `$t` 包裹的字符串并生成多语言文件,支持增量翻译和多种翻译API [![npm version](https://badge.fury.io/js/vue-translate-auto.svg)](https://badge.fury.io/js/vue-translate-auto) [![license](https://img.shields.io/npm/l/vue-translate-auto.svg)](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)