Как создать многоязычного бота

Зачем ограничивать аудиторию чат-бота? Если ваш сервис или идея не замыкаются определенной локацией, то можно легко сделать мультиязычного бота и привлечь пользователей со всего мира 🌏

Рассмотрим на примере @OfficeGymBot, который работает на 9 языках: английский, испанский, русский, французский, итальянский, германский, хинди, китайский и арабский.

Можно протестировать в Telegram, чтобы увидеть как это выглядит. Бот напоминает делать гимнастику на работе и присылает видео упражнения.

После старта бота есть 2 сценария:

1) Если мессенджер передаёт язык, установленный в приложении пользователя, то бот самостоятельно определяет язык и весь контент (сообщения) отправляем на этом языке.

2) Если мессенджер не передал язык пользователя, то бот предлагает пользователю выбрать язык самостоятельно.

Также пользователь может в любое время поменять язык через команду /menu -> Language.

Как это реализовать?

Инструкция из 3 шагов подойдёт тем, кто не хочет тратить время на написание кода или не программирует. Я использовал конструктор чат-ботов Botmother. Скриншоты экранов (блоков) будут из него.

1. Проверка языка пользователя

На стартовый экран добавляем компонент "Развилка", который проверяет язык пользователя и направляет его на соответствующий экран (в зависимости от установленного языка).

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

Обратите внимание 👆 переменная мессенджера this_user.language хранит у себя информацию о том, какой язык установлен у пользователя и на каком языке отправлять ему сообщения. Соответственно, "en" - английский, "es" - испанский, "ru" - русский и так далее. Лучше использовать официальный код языка по стандарту ISO 639-1.

2. Сохранение языка пользователя

Как создать многоязычного бота

Создаём языковые экраны, в которых будем сохранять язык пользователя в свою переменную language. Она понадобится для подстановки нужного текста в сообщение.

Направляем пользователя на соответствующий языковой экран для присвоения значения переменной language. Например, на экране "English language" присваиваю значение "en" в переменную language. Теперь сообщения этому пользователю будут приходить на английском.

Аналогично можно присвоить значения и переводить контент на другие языка.

3. Добавление текста на нескольких языках

Как создать многоязычного бота

Теперь создаём экран «Приветствие» и добавляем компонент "Сообщение" - это текст, который отправляется пользователю. Подготовим текст приветствия на нескольких языках и вставим небольшой код:

{{#eq language "en"}}Hello{{/eq}}{{#eq language "ru"}}Привет{{/eq}}{{#eq language "es"}}Hola{{/eq}}

Формула {{ #eq language "en"}} используется для отображения текста по определенным правилам:

  • {{ }} - означает добавление кода (хелпера);
  • #eq - проверка данных (условие);
  • language - переменная, которую я создал, чтобы записать в него код языка пользователя;
  • "en" - значение, записанное в переменную (в данном случае английский язык)
  • /eq - завершение проверки данных (условия).

Готово!

Теперь приветствие отобразится на языке пользователя: Hello, Привет или Hola.

Всё достаточно просто, справится даже новичок.

22
6 комментариев

Классная статья, было интересно узнать о том, как создаются такие боты, да еще и с картинками в качестве примеров. Спасибо автору.

2
Ответить

Подпишитесь, будет ещё ✌🏻

2
Ответить

Зачем что-то кроме двух языков?

1
Ответить

Каких языков достаточно?

Ответить