google 应用脚本未呈现我翻译的消息

google app script not rendering my translated message

function enes() {   
var doc = DocumentApp.getActiveDocument()   
var text = doc.getSelection()   
var sourceLanguage = 'en'   
var targetLanguage = 'es'   
var replacement = LanguageApp.translate(text, sourceLanguage, 
targetLanguage)   
console.log(text + '=' + replacement)
}

这应该会在控制台中记录所选文本并翻译成西班牙语,但由于某种原因不是。请帮忙!

您的代码存在的问题是 LanguageApp.translate() 的第一个参数需要字符串类型,而 Document.getSelection() return 需要一个范围对象。要使文本字符串超出范围,您可以使用以下代码:

function enes() {   
var doc = DocumentApp.getActiveDocument()   
var text = doc.getSelection()
.getRangeElements()[0]
.getElement()
.asText()
.getText();
var sourceLanguage = 'en'   
var targetLanguage = 'es'   
var replacement = LanguageApp.translate(text, sourceLanguage, 
targetLanguage)   
Logger.log(text + '=' + replacement)
}

注意:为了测试方便,我用原生 Logger.log() 替换了 console.log()。

另外注意:这只会 return 第一个 RangeElement。如果你有更多,你可以用类似的东西循环它们:

function enes() {   
var doc = DocumentApp.getActiveDocument()   
var text = doc.getSelection()
.getRangeElements().getRangeElements().reduce(function(acc,rangeElement){
    return acc+rangeElement
    .getElement()
    .asText()
    .getText();
},"");
var sourceLanguage = 'en'   
var targetLanguage = 'es'   
var replacement = LanguageApp.translate(text, sourceLanguage, 
targetLanguage)   
Logger.log(text + '=' + replacement)
}