返回

用 Node.js 打造谷歌翻译字幕命令行小工具

前端

Node.js 是一款灵活强大的编程语言,非常适合开发命令行工具。命令行工具能帮助我们解决各种问题,例如处理文件、自动化任务以及与其他程序进行交互。在这个项目中,我们将使用 Node.js 开发一个谷歌翻译字幕命令行小工具,用于将 .srt 格式的字幕文件翻译成中文和外语的双语字幕,然后将其发布到 npm 仓库。

打造谷歌翻译字幕命令行小工具的步骤

  1. 创建项目

    首先,创建一个新的 Node.js 项目。您可以使用以下命令:

    mkdir google-translate-subtitles
    cd google-translate-subtitles
    npm init -y
    
  2. 安装依赖项

    接下来,我们需要安装一些依赖项。使用以下命令安装:

    npm install google-cloud-translate
    
  3. 创建主脚本文件

    现在,创建一个名为 index.js 的主脚本文件。在此文件中,我们将编写我们的命令行工具的代码。

  4. 编写代码

    在 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);
        });
    });
    
  5. 发布到 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 仓库。希望这个工具能帮助您轻松翻译字幕文件,以便更好地理解和欣赏外国电影和电视剧。