Определение параметров перевода
Функция перевода 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.