Как создать многоязычного бота
Зачем ограничивать аудиторию чат-бота? Если ваш сервис или идея не замыкаются определенной локацией, то можно легко сделать мультиязычного бота и привлечь пользователей со всего мира 🌏
Рассмотрим на примере @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"}} используется для отображения текста по определенным правилам:
- {{ }} - означает добавление кода (хелпера);
- #eq - проверка данных (условие);
- language - переменная, которую я создал, чтобы записать в него код языка пользователя;
- "en" - значение, записанное в переменную (в данном случае английский язык)
- /eq - завершение проверки данных (условия).
Готово!
Теперь приветствие отобразится на языке пользователя: Hello, Привет или Hola.
Всё достаточно просто, справится даже новичок.
Классная статья, было интересно узнать о том, как создаются такие боты, да еще и с картинками в качестве примеров. Спасибо автору.
Подпишитесь, будет ещё ✌🏻
Зачем что-то кроме двух языков?
Каких языков достаточно?