allinssl/frontend/plugin/vite-plugin-i18n
chenzhihua d8f4ee0e80 【调整】微信公众号图标调整 2025-06-10 16:35:11 +08:00
..
__tests__ 【调整】微信公众号图标调整 2025-06-10 16:35:11 +08:00
src 【修复】雷池参数问题,Let's Encrypt 申请通配符限制,以及其他已知问题 2025-05-19 09:51:50 +08:00
README.md 【新增】插件git同步模块,用于同步项目内容,加速项目开发 2025-05-14 16:50:56 +08:00
eslint.config.js 【新增】插件git同步模块,用于同步项目内容,加速项目开发 2025-05-14 16:50:56 +08:00
index.md 【新增】插件git同步模块,用于同步项目内容,加速项目开发 2025-05-14 16:50:56 +08:00
package.json 【新增】插件git同步模块,用于同步项目内容,加速项目开发 2025-05-14 16:50:56 +08:00
prettier.config.js 【新增】插件git同步模块,用于同步项目内容,加速项目开发 2025-05-14 16:50:56 +08:00

README.md

vite-plugin-i18n-ai-translate

一个基于Vite的i18n自动化翻译插件支持智谱AI等多种翻译服务。

特性

  • 支持智谱AI和传统API多种翻译服务
  • 自动扫描并提取vue-i18n的$t模板变量中的中文内容
  • 并发翻译处理,提高效率
  • 智能缓存机制,避免重复翻译
  • 完善的错误处理和重试机制
  • 支持文件变更监听,实时翻译
  • 可扩展的翻译适配器设计

安装

npm install vite-plugin-i18n-ai-translate

配置

在vite.config.js中配置插件

import i18nAiTranslate from 'vite-plugin-i18n-ai-translate'

export default {
	plugins: [
		i18nAiTranslate({
			apiKey: {
				zhipuAI: 'your-zhipu-api-key',
				api1: 'your-api1-key',
			},
			languages: ['zhCN', 'zhTW', 'enUS', 'jaJP', 'koKR'],
			translateMethod: 'zhipuAI',
			// 其他配置项...
		}),
	],
}

配置选项

配置项 类型 默认值 说明
projectPath string './src' 项目扫描路径
outputPath string './locales' 翻译文件输出路径
cachePath string './cache/translation_cache.json' 缓存文件路径
logPath string './logs' 日志文件路径
apiKey object {} 各翻译服务的API密钥
languages string[] ['zhCN', 'zhTW', 'enUS', 'jaJP', 'koKR'] 目标语言列表
concurrency number 100 并发翻译数量
templateRegex string '$t\("'["']\)' 模板变量正则表达式
fileExtensions string[] ['.vue', '.js', '.ts'] 扫描的文件类型
interval number 5000 文件监听间隔(ms)
requestInterval number 100 请求间隔时间(ms)
maxRetries number 3 最大重试次数
translateMethod string 'zhipuAI' 使用的翻译服务
cacheLifetime number 7 缓存保留天数
logRetention number 30 日志保留天数

工作流程

  1. 扫描项目文件,提取需要翻译的中文文本
  2. 检查翻译缓存,跳过已翻译内容
  3. 使用配置的翻译服务进行并发翻译
  4. 更新翻译缓存
  5. 生成翻译文件
  6. 监听文件变更,触发实时翻译

支持的翻译服务

  • 智谱AI翻译服务

    • 支持多语言批量翻译
    • 基于GLM大语言模型
    • 高质量翻译结果
  • 传统API翻译服务

    • 可扩展的适配器设计
    • 支持添加自定义翻译服务

API 参考

核心类

TranslationAdapter

翻译适配器基类,定义统一的翻译接口。

方法:

  • translate(text, apiKey, languages, maxRetries)
  • validateApiKey(apiKey)
  • getSupportedLanguages()
  • isLanguageSupported(language)

CacheManager

缓存管理类,处理翻译结果的缓存。

方法:

  • initCache()
  • getCachedTranslations(texts, languages)
  • updateCache(texts, translations, languages)
  • cleanCache(validTexts)

LogManager

日志管理类,处理系统日志。

方法:

  • init()
  • logError(error)
  • logInfo(message)
  • cleanLogs(days)
  • getLogs(logType, lines)

错误处理

插件包含完善的错误处理机制:

  • 翻译失败自动重试
  • 详细的错误日志记录
  • 可配置的最大重试次数
  • 翻译服务异常处理
  • API密钥验证

开发扩展

添加新的翻译服务

  1. 在 src/translation/traditional 或 src/translation/ai 目录下创建新的翻译服务模块
  2. 实现必要的翻译接口
  3. 创建对应的适配器类
  4. 在配置中添加新的翻译方法

自定义适配器示例

const TranslationAdapter = require('./index')

class CustomAdapter extends TranslationAdapter {
	async translate(text, apiKey, languages, maxRetries) {
		// 实现翻译逻辑
	}

	async validateApiKey(apiKey) {
		// 实现密钥验证
	}

	getSupportedLanguages() {
		// 返回支持的语言列表
	}
}

常见问题

  1. 翻译服务不可用

    • 检查API密钥是否正确
    • 确认网络连接正常
    • 查看错误日志获取详细信息
  2. 翻译缓存问题

    • 检查缓存文件权限
    • 适当调整缓存保留时间
    • 可以手动清理缓存目录
  3. 文件监听不生效

    • 确认配置的文件扩展名正确
    • 检查监听间隔设置
    • 验证文件路径配置

License

MIT License