使用Google Docs脚本翻译文本的逻辑

时间:2015-08-26 15:36:56

标签: javascript google-apps-script

源自previous question,我正在为Google文档创建一个Add On,它接收文档正文并将其翻译为同一文档中的新页面。我已经运行了脚本并且它正确地进行了翻译,但是我在修改格式时遇到了麻烦。

使用相同语言复制元素时,

This post from last year 效果很好。但是,Google中的LanguageApp要求string进行翻译。

我简化了上面链接的脚本以复制文档:

function simpleTranslate() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();

  Logger.log(body.getAttributes());
  var elements = body.getNumChildren();
  for (var i = 0; i<elements; ++i) {
    var element = body.getChild(i).copy();

    var type = element.getType();
    if(type == DocumentApp.ElementType.PARAGRAPH) {
      // This block copies formatting correctly
      // Pastes English and Spanish into the doc (see img 1).
      body.appendParagraph(element);
      var spn = LanguageApp.translate(element.getText(), 'en', 'es');
      body.appendParagraph(spn);

      // This block pastes Spanish only with no formatting (see img 2)
      // This block is normally commented out when the script runs for testing
      var spn = LanguageApp.translate(element.getText(), 'en', 'es');
      body.appendParagraph(spn)
    }
  }
}

Img1 - 正确的文字格式,粘贴英语和西班牙语

Img1 http://www.brianbennett.org/images/coderesult1.png

Img2 - 删除英语附加内容,西班牙语仍会翻译但由于string要求而失去格式。

Img2 http://www.brianbennett.org/images/coderesult2.png

我想帮助函数中的逻辑。我认为这样做的唯一方法 - 因为string要求 - 是逐行,复制英语,翻译新行,然后删除英语。 有没有更好的方法来翻译文字并保留格式?

0 个答案:

没有答案