返回
用 Node.js 打造谷歌翻译字幕命令行小工具
前端
2023-10-18 12:12:55
Node.js 是一款灵活强大的编程语言,非常适合开发命令行工具。命令行工具能帮助我们解决各种问题,例如处理文件、自动化任务以及与其他程序进行交互。在这个项目中,我们将使用 Node.js 开发一个谷歌翻译字幕命令行小工具,用于将 .srt 格式的字幕文件翻译成中文和外语的双语字幕,然后将其发布到 npm 仓库。
打造谷歌翻译字幕命令行小工具的步骤
-
创建项目
首先,创建一个新的 Node.js 项目。您可以使用以下命令:
mkdir google-translate-subtitles cd google-translate-subtitles npm init -y
-
安装依赖项
接下来,我们需要安装一些依赖项。使用以下命令安装:
npm install google-cloud-translate
-
创建主脚本文件
现在,创建一个名为 index.js 的主脚本文件。在此文件中,我们将编写我们的命令行工具的代码。
-
编写代码
在 index.js 文件中,编写以下代码:
const {Translate} = require('@google-cloud/translate').v2; const translate = new Translate(); const fs = require('fs'); const args = process.argv.slice(2); if (args.length < 3) { console.log('Usage: node index.js <source-language> <target-language> <input-file> <output-file>'); process.exit(1); } const sourceLanguage = args[0]; const targetLanguage = args[1]; const inputFile = args[2]; const outputFile = args[3]; fs.readFile(inputFile, 'utf8', (err, data) => { if (err) { console.log(`Error reading input file: ${err.message}`); process.exit(1); } translate.translate(data, targetLanguage, {from: sourceLanguage}) .then((results) => { const translatedText = results[0].text; fs.writeFile(outputFile, translatedText, (err) => { if (err) { console.log(`Error writing output file: ${err.message}`); process.exit(1); } console.log(`Translation complete! Translated file saved to ${outputFile}`); }); }) .catch((err) => { console.log(`Error translating text: ${err.message}`); process.exit(1); }); });
-
发布到 npm 仓库
完成以上步骤后,您可以将您的工具发布到 npm 仓库。使用以下命令:
npm publish
运行工具
现在,您可以使用以下命令运行工具:
node index.js <source-language> <target-language> <input-file> <output-file>
例如,以下命令将把名为 input.srt 的字幕文件从英语翻译成中文,并将其保存为 output.srt:
node index.js en zh-CN input.srt output.srt
总结
在这个项目中,我们学习了如何使用 Node.js 开发一个谷歌翻译字幕命令行小工具,并将其发布到 npm 仓库。希望这个工具能帮助您轻松翻译字幕文件,以便更好地理解和欣赏外国电影和电视剧。