unplugin-i18n-translation
简体中文 | English
介绍
一个支持多打包工具的自动翻译国际化文件的插件,使用 unplugin
支持Vite
、Webpack
、Rollup
、ESBuild
、Rspack
等打包工具
将国际化插件的本地语言文件翻译并生成其它语言的翻译文件
Vue2项目推荐使用vue-18n
Vue3项目推荐使用vue-i18n-next
在线翻译由 腾讯机器翻译 提供
必需
在使用之前请确保已经安装并配置了国际化插件(比如vue-18n),而且已经有一个默认语言的本地化文件作为翻译的源文件
此外,还需要申请一个腾讯云API密匙
安装
# npm
npm install @sunly95/webpack-plugin-translation --save-dev
# yarn
yarn add @sunly95/webpack-plugin-translation --dev
使用
webpack
在webpack.config.js
中配置插件,传入的配置参数详情见配置
// webpack.config.js
// 引入插件
const { UnpluginAutoTranslation } = require("@sunly95/unplugin-i18n-translation");
module.exports = {
plugins: [
// 注册插件
UnpluginAutoTranslation.webpack({
id: secretId, // 腾讯云API密钥ID
key: secretKey, // 腾讯云API密钥Key
originLang: "zh", // 源语言
targetLangs: [
{ lang: "en", filename: "en-US" },
], // 要翻译的语言列表
originFilePath: "./src/locales/zh-CN.json", // 翻译原始文本文件,即vue-i18n的本地化文件
targetDirPath: "./src/locales" // 翻译后的文件存放目录
})
]
}
vue-cli
在vue.config.js
中配置插件,传入的配置参数详情见配置
// vue.config.js
// 引入插件
const { UnpluginAutoTranslation } = require("@sunly95/unplugin-i18n-translation");
module.exports = {
// 注册插件
config.plugin("AutoTranslation").use(
UnpluginAutoTranslation.webpack({
id: secretId, // 腾讯云API密钥ID
key: secretKey, // 腾讯云API密钥Key
originLang: "zh", // 源语言
targetLangs: [
{ lang: "en", filename: "en-US" },
], // 要翻译的语言列表
originFilePath: "./src/locales/zh-CN.json", // 翻译原始文本文件,即vue-i18n的本地化文件
targetDirPath: "./src/locales" // 翻译后的文件存放目录
})
);
}
Vite
在vite.config.js
中配置插件,传入的配置参数详情见配置
// vite.config.js
// 引入插件
import { UnpluginAutoTranslation } from "@sunly95/unplugin-i18n-translation";
export default defineConfig({
plugins: [
UnpluginAutoTranslation.vite({
id: secretId, // 腾讯云API密钥ID
key: secretKey, // 腾讯云API密钥Key
originLang: "zh", // 源语言
targetLangs: [
{ lang: "en", filename: "en-US" },
], // 要翻译的语言列表
originFilePath: "./src/locales/zh-CN.json", // 翻译原始文本文件,即vue-i18n的本地化文件
targetDirPath: "./src/locales" // 翻译后的文件存放目录
})
]
});
配置完成后,在打包时会自动读取originFilePath
指定的文件作为翻译的原始文本,根据传入的targetLangs
自动翻译并生成翻译文件,存放在targetDirPath
指定的目录下
配置
参数 | 类型 | 是否必需 | 说明 |
---|---|---|---|
id | string | ✅ | 腾讯云API密匙ID |
key | string | ✅ | 腾讯云API密匙key |
originLang | string | ✅ | 原始翻译文本语言,取值见输入参数的Source字段 |
targetLangs | { lang: string, filename: string }[] | ✅ | 需要翻译成的目标语言列表,lang 字段表示要翻译成的语言,取值见输入参数的Target字段,filename 字段表示翻译后生成的i18n文件的文件名 |
originFilePath | string | ✅ | 原始翻译文本的绝对路径 |
targetDirPath | string | ✅ | 翻译后生成的目标翻译文件的存储目录 |
spaceWidth | number? | 翻译后后生成的json文件的缩进空格数,默认为2 |