谷歌翻译工具包 - 如何排除部分文本被处理

时间:2015-11-26 15:57:59

标签: translation google-translate machine-translation

是否有人知道是否有可能排除部分文本被谷歌翻译工具包处理?

这个工具的一个很大的优点是它建议已经在另一个环境中翻译的句子的翻译。但是,如果文本中添加了任何其他脚注和/或注释,则不会将其识别为匹配项。我正在寻找将这样的文本括在“括号”中的可能性,在其中它将被忽略。

例如,以下两个字符串应该被识别为相同:

"This is one continuous sentence."
"This is {this text will be ignored}one continuous sentence."

并被翻译成德语:

"Dies ist ein zusammenhängender Satz."
"Dies is {this text will be ignored}ein zusammenhängender Satz."

如果需要,我可以对这些插入进行编号,并将其内容放入其他段落中,如:

"This is one continuous sentence."
"This is {1}one continuous sentence."
"{1 this text will be ignored}

提前多多感谢, 烫发

3 个答案:

答案 0 :(得分:1)

添加一个span标签,其类别为' skiptranslate'对于你不想翻译的位,如下所示:

&#34;这是<span class="skiptranslate">this text will be ignored</span>一个连续的句子。&#34;

答案 1 :(得分:0)

“skiptranslate”类在我提交给gtt的po文件中对我不起作用。 Gtt继续翻译一切。我注意到gtt没有翻译href属性中的任何内容,所以我做的是通过将{{my_expr}}类型字符串更改为<a href='{{my_expr}}/>来预处理我的.po文件(使用“复制”grunt任务)字符串,然后在gtt转换后将它们更改回{{my_expr}}(使用另一个“复制”grunt任务)。

我不确定这会如何影响翻译的语义,但至少结果翻译不会破坏我的模板代码。

这是我的grunt复制任务配置,显示我使用的正则表达式:

    copy: {
   
      fixupPoFileForTranslation: {
        src: [],   // Fill in src and dest!
        dest: '',  
        options : {
          process: function (content, srcpath) {

            return content.replace(/"Go page"/g, '"Go"')
            // Change handlebars {{<name>}} to <a ref='<name>'/> to stop
            // machine translation from translating them.
            return content.replace(/(\{\{[a-zA-Z_\$].*?\}\})/g, '<a href=\'$1\'/>')
              // Same thing for our js .format {0}, {1}, ...
                          .replace(/(\{\d*?\})/g, '<a href=\'$1\'/>');
          }
        }
      },

      fixupPoFileForMerge: {
        src: [],
        dest: '',
        options : {
          process: function (content, srcpath) {

            // Restore <a href=... back to {{<name>}}
            return content..replace(/<a href='(\{\{[a-zA-Z_\$].*?\}\})'(\/>|)/gi, '$1')
            // Same thing for {0} constructs
                          .replace(/<a href=' *(\{.\d?\})('\/>|)/gi, '$1');
          }
        }
      }
    }

答案 2 :(得分:0)

Google Translate FAQ引用...

  

我如何告诉Cloud Translation API不要翻译某些内容?

     

您可以使用以下HTML标签:

     
<span translate="no"> </span>
<span class="notranslate"> </span>
     

此功能要求源文本以HTML提交。

如果它“对您不起作用”,可能的原因是您请求的是TEXT翻译而不是HTML翻译。如果只希望进行TEXT翻译,则可以将计划文本包装在HTML标记中(如上所述,带有<span>标记),然后在翻译后将其解包。