Google 文档实时翻译
Google docs live translation
我有一份 google 一种语言的文档,需要翻译。
我知道有 "Tools > Translate document" 选项,但这意味着我每次进行更改时都必须手动翻译它。
有没有办法让翻译后的文档与原始文档同步,这样每次我对原始文档进行更改时,翻译后的文档也会进行适当的更改?
在电子表格中有 GOOGLETRANSLATE
函数
我认为可以通过应用程序脚本命令实现 LanguageApp.translate
但我不知道如何从原始文档中导入该内容
---编辑---
目前我在目标文档上设置了这个脚本
function translate() {
var original = DocumentApp.openById('Oringinal document id');
var translated = LanguageApp.translate(original, 'zh', 'en');
Logger.log(translated);
return translated;
}
我不确定它是翻译还是什么,日志只显示文档,我不知道如何获取变量的内容,我也不知道如何将变量打印到新文档。
在触发器中我只看到时间驱动的触发器?我应该在原始文档上设置脚本吗?
这只是概念验证。该脚本有效,但不会保留格式或图像。请记住,Google 文档没有 onEdit
触发器。您可以创建自定义时间触发器,但如果您的文档未更新,它将在后台继续 运行,这可能是理想的,也可能不是。
// Grab the document body. No formatting, tables, etc are kept.
function getText() {
var sourceDoc = DocumentApp.openById('idHere');
var sourceBody = sourceDoc.getBody();
// Push the body to an array for translating in the destination
var array = [];
array.push(sourceBody.getText());
translateText(array);
}
// Take the array and translate to Spanish.
function translateText(e) {
// Translate the array
var es = LanguageApp.translate(e, 'en', 'es');
// Open the doc to hold the translation
var childDoc = DocumentApp.getActiveDocument();
// Clear out any previously-held text and then append the updated text from source.
childDoc.getBody().clear();
childDoc.getBody().appendParagraph(es);
}
这很粗糙,但是如果您将它添加到您的子文档并从脚本编辑器中 运行,它就会起作用。您还可以重构它以从源代码开始工作,然后推送到子文档。它还可以设置一个变量来保存文档的原始 ID,这样您就不必使用 PropertiesService
对其进行硬编码。只是一些改进它的想法。不要忘记这只会抓取正文,none 格式。
我有一份 google 一种语言的文档,需要翻译。
我知道有 "Tools > Translate document" 选项,但这意味着我每次进行更改时都必须手动翻译它。
有没有办法让翻译后的文档与原始文档同步,这样每次我对原始文档进行更改时,翻译后的文档也会进行适当的更改?
在电子表格中有 GOOGLETRANSLATE
函数
我认为可以通过应用程序脚本命令实现 LanguageApp.translate
但我不知道如何从原始文档中导入该内容
---编辑---
目前我在目标文档上设置了这个脚本
function translate() {
var original = DocumentApp.openById('Oringinal document id');
var translated = LanguageApp.translate(original, 'zh', 'en');
Logger.log(translated);
return translated;
}
我不确定它是翻译还是什么,日志只显示文档,我不知道如何获取变量的内容,我也不知道如何将变量打印到新文档。
在触发器中我只看到时间驱动的触发器?我应该在原始文档上设置脚本吗?
这只是概念验证。该脚本有效,但不会保留格式或图像。请记住,Google 文档没有 onEdit
触发器。您可以创建自定义时间触发器,但如果您的文档未更新,它将在后台继续 运行,这可能是理想的,也可能不是。
// Grab the document body. No formatting, tables, etc are kept.
function getText() {
var sourceDoc = DocumentApp.openById('idHere');
var sourceBody = sourceDoc.getBody();
// Push the body to an array for translating in the destination
var array = [];
array.push(sourceBody.getText());
translateText(array);
}
// Take the array and translate to Spanish.
function translateText(e) {
// Translate the array
var es = LanguageApp.translate(e, 'en', 'es');
// Open the doc to hold the translation
var childDoc = DocumentApp.getActiveDocument();
// Clear out any previously-held text and then append the updated text from source.
childDoc.getBody().clear();
childDoc.getBody().appendParagraph(es);
}
这很粗糙,但是如果您将它添加到您的子文档并从脚本编辑器中 运行,它就会起作用。您还可以重构它以从源代码开始工作,然后推送到子文档。它还可以设置一个变量来保存文档的原始 ID,这样您就不必使用 PropertiesService
对其进行硬编码。只是一些改进它的想法。不要忘记这只会抓取正文,none 格式。