Перейти к содержимому

Добавление языка IVR

Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию

IVR-приложения говорят на каждом языке, набор голосовых подсказок и правила речи которого установлены на коммутаторе. Для нового языка нужны три вещи: переведённые фразы, правила озвучивания чисел, длительностей и дат на этом языке и записи. Эта страница предназначена для переводчика и разработчика, которые их готовят; результат устанавливает служба поддержки.

  1. Каждая фраза, которую может произнести приложение, перечислена в файле перевода в формате gettext PO: английский текст и пустой перевод.
  2. Фразы с переменными частями содержат теги подстановки; языковой модуль превращает числа, длительности и даты в слова языка.
  3. Диктор записывает каждую фразу и каждое слово, которое использует языковой модуль. Записи образуют набор голосовых подсказок языка.
  4. После установки язык можно выбрать в разделе Type & Languages (тип и языки) приложения и как IVR-язык аккаунта.

Вы получаете PO-файл; редактируйте его в PO-редакторе, например Poedit. Переведите каждую фразу и сохраните каждый тег подстановки; тег можно перемещать внутри предложения.

Тег Заменяется на
%n Число
%[H]n Порядковое числительное: “first”, “twenty third”
%[D]n Цифры по одной: 1234 → “one two three four”
%d Длительность
%D Дата и время
%s Текст

Имена в скобках, как в %(number)n или %(duration)d, - это внутренние имена переменных: никогда их не переводите. Например, "You have %(number)n new messages" на украинском становится "У вас %(number)n нових повідомлень".

Фраза "For English press %n" особая: переведите её на ваш язык как “For press %n”, ведь это пункт вашего языка в меню выбора языка.

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

Правило Что описать Пример на английском
Числа Как составляются числа, включая падежи и роды 12345 → “twelve thousand three hundred forty five”; слова от one до nineteen, десятки, hundred, thousand, million, minus
Порядковые числительные Порядковые формы “first”, “second”, “twenty seventh”
Последовательности цифр Особые прочтения “one oh two” для 102, “double oh” для 00
Длительности Единицы со всеми формами множественного числа “one hour twenty four minutes and thirty seconds”
Даты и время Порядок, месяцы, дни недели, относительные дни “October twenty first, two fifty five PM”; “today”, “yesterday”, “tomorrow”

Для языков без форм множественного числа нужна одна форма каждого слова; для языков с несколькими формами множественного числа нужны все.

  1. Создайте PO-файл языка из шаблона фраз IVR-сервиса его вспомогательным скриптом mergepo.sh <code>, передайте его переводчику и скомпилируйте результат с помощью compilepo.sh <code>.
  2. Напишите языковой модуль, названный двухбуквенным кодом в верхнем регистре, например UK.py, в каталоге синтеза текста IVR-сервиса. Возьмите за основу существующий модуль, реализуйте sayNumber(), sayDigits(), sayDuration() и sayDatetime(), оберните каждое слово в _phrase_noop(), объявите кодировку во второй строке и зарегистрируйте модуль в __init__.py пакета. Модуль не должен сам вызывать синтезатор.
  3. Запишите каждую фразу и слово как аудио 8 kHz signed linear и поместите их в каталог подсказок языка; вспомогательный скрипт prompt_utils.py проверяет набор на отсутствующие подсказки.
  4. Отправьте PO-файл, модуль и набор подсказок в службу поддержки для установки.