2015-11-26 2 views
1

Кто-нибудь знает, есть ли возможность исключить части текста из обработки с помощью инструментария переводчика google?google translator toolkit - как исключить части текста из обрабатываемых

Огромное преимущество этого инструмента заключается в том, что он предлагает переводы предложений, которые уже были переведены в другом контексте. Однако, если в текст добавлена ​​какая-либо дополнительная сноска и/или примечание, она не будет распознана как совпадение. Я ищу возможность вложить такой текст в «скобки», в котором он будет проигнорирован.

Например, следующие две строки должны быть признаны как идентичные:

"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} 

благодарит много заранее, Марсель

ответ

0

Добавить поверочного тег с классом «» skiptranslate к битам, что вы не хотите быть переведено, как это:

«Это <span class="skiptranslate">this text will be ignored</span> один непрерывный приговор.»

0

Класс «skiptranslate» не работал для меня в файлах po, которые я отправил в gtt. Гтт продолжал переводить все. Я заметил, что gtt не переводит что-либо внутри атрибута href, поэтому я сделал предварительный процесс для моего файла .po (используя задачу «копирования»), изменив строки типа {{my_expr}} на строки <a href='{{my_expr}}/>, а затем изменив их на {{my_expr}} после перевода gtt (с использованием другой задачи «копирования»).

Я не уверен, как это влияет на семантику перевода, но, по крайней мере, результирующий перевод не нарушает мой код шаблонов.

Вот моя хрюкать копия задача конфигурации с указанием регулярных выражений, которые я использовал:

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'); 
 
      } 
 
     } 
 
     } 
 
    }