uni-app 实现指定locale下已写好的语言json文件,一键翻译成其他语言,并生成对应文件
uni-app 实现指定locale下已写好的语言json文件,一键翻译成其他语言,并生成对应文件
1 回复
实现 uni-app
中指定 locale
下已写好的语言 JSON 文件一键翻译成其他语言并生成对应文件的功能,通常需要借助第三方翻译 API(如 Google Translate API 或 阿里云翻译 API)。以下是一个使用 Google Translate API 的示例代码,该代码会读取已有的 JSON 文件,将其翻译成目标语言,并生成新的 JSON 文件。
前提条件
- 确保你已经安装了
axios
和@google-cloud/translate
这两个 npm 包。 - 获取 Google Cloud Translate API 的密钥。
示例代码
- 安装依赖
npm install axios @google-cloud/translate
- 读取 JSON 文件、翻译并生成新文件
const fs = require('fs');
const axios = require('axios');
const { Translate } = require('@google-cloud/translate').v2;
// 配置 Google Translate API
const projectId = 'your-google-cloud-project-id';
const keyFilename = 'path/to/your/service-account-file.json';
const translate = new Translate({ projectId, keyFilename });
// 读取 JSON 文件
const readFile = (filePath) => {
return new Promise((resolve, reject) => {
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) reject(err);
resolve(JSON.parse(data));
});
});
};
// 写入 JSON 文件
const writeFile = (filePath, data) => {
return new Promise((resolve, reject) => {
fs.writeFile(filePath, JSON.stringify(data, null, 2), 'utf8', (err) => {
if (err) reject(err);
resolve();
});
});
};
// 翻译文本
const translateText = async (text, targetLang) => {
const [translations] = await translate.translate(text, targetLang);
return translations;
};
// 主函数
const main = async () => {
const sourceLang = 'en'; // 源语言
const targetLang = 'zh'; // 目标语言
const sourceFilePath = 'path/to/your/source-lang.json';
const targetFilePath = `path/to/your/${targetLang}-lang.json`;
try {
const sourceData = await readFile(sourceFilePath);
const translatedData = {};
for (const key in sourceData) {
translatedData[key] = await translateText(sourceData[key], targetLang);
}
await writeFile(targetFilePath, translatedData);
console.log('Translation completed and file written successfully.');
} catch (error) {
console.error('Error:', error);
}
};
main();
注意事项
- 你需要替换
your-google-cloud-project-id
和path/to/your/service-account-file.json
为你的 Google Cloud 项目 ID 和服务账号文件路径。 - 上述代码假设 JSON 文件是简单的键值对结构。如果 JSON 结构更复杂,你可能需要调整
translateText
函数的调用逻辑。 - 使用第三方 API 时,请注意 API 调用限制和费用。
通过上述代码,你可以实现 uni-app
中语言 JSON 文件的一键翻译和生成。