Определение параметров перевода

Завершено

Функция перевода API поддерживает множество параметров, влияющих на выходные данные.

Выравнивание слов

В письменном английском языке (основанном на латинском алфавите) для разделения слов используются пробелы. Однако в некоторых других языках (в частности, использующих иероглифы) это не всегда так.

Например, перевод "Smart Services" с en (английский) на zh (упрощенный китайский) создает результат "智能服务", и трудно понять связь между символами в исходном тексте и соответствующими символами в переводе. Чтобы устранить эту проблему, можно указать параметр includeAlignment со значением true в вызове, чтобы получить следующий результат:

[
   {
      "translations":[
         {
            "text":"智能服务",
            "to":"zh-Hans",
            "alignment":{
               "proj":"0:4-0:1 6:13-2:3"
            }
         }
      ]
   }
]

Эти результаты говорят нам, что символы от 0 до 4 в источнике соответствуют символам от 0 до 1 в переводе, а символы от 6 до 13 в источнике соответствуют символам 2–3 в переводе.

Длина предложения

Иногда бывает полезно узнать длину переведенного текста, например чтобы определить, как лучше его отображать в пользовательском интерфейсе. Эти сведения можно получить, задав для параметра includeSentenceLength значение true.

Например, при переводе английского (en) текста Hello world на французский (fr) этот параметр приводит к следующим результатам:

[
   {
      "translations":[
         {
            "text":"Salut tout le monde",
            "to":"fr",
            "sentLen":{"srcSentLen":[12],"transSentLen":[20]}
         }
      ]
   }
]

Фильтрация ненормативной лексики

Иногда текст содержит ненормативную лексику, которую может потребоваться скрыть или полностью пропустить в переводе. Для обработки ненормативной лексики можно указать параметр profanityAction с одним из следующих значений:

  • NoAction — ненормативная лексика переводится вместе с остальной частью текста.
  • Deleted — ненормативная лексика пропускается при переводе.
  • Marked — ненормативная лексика помечается с помощью метода, указанного с использованием параметра profanityMarker (если он предоставлен). Значение этого параметра по умолчанию — Asterisk, при котором символы в словах ненормативной лексики заменяются знаком "*". Как альтернативный вариант, вы можете указать для параметра profanityMarker значение Tag, чтобы слова ненормативной лексики заключались в теги XML.

Например, перевод английского текста (en) "JSON имеет значение ▇▇▇▇▇ отличный!" (где заблокированное слово является ненормативным) для немецкого (de) с ненормативным выражением"Отмечено ", а ненормативноевыражение "Звездочка " приводит к следующему результату:

[
   {
      "translations":[
         {
            "text":"JSON ist *** erstaunlich.",
            "to":"de"
         }
      ]
   }
]

Примечание.

Дополнительные сведения о вариантах перевода, включая некоторые не описанные здесь, см. в документации по API Переводчик Azure.