Инструменты пользователя

Инструменты сайта


lm3:ce:t_multi_lang

Это старая версия документа!


Туториал: Мультиязычность

Поддержка нескольких языков - одно из возможных требований проекта. Это может связано с его спецификой или просто необходимо увеличить охват проекта.

В таких проектах при разработке на Лямбда-Мю 3 делается следующее:

  • текстовые данные создаются в таблице (например, Google Таблицы)
  • создается специальный скрипт в такой таблице, который позволяет выгружать данные в lua-нотации
  • данные выгружаются и располагаются в папке проекта
  • основные скрипты платформы подхватывают данные и оперируют с ними

Такой подход удобен, и данные легко обновлять.

Пример реализации

Платформа Лямбда-Мю 3 может использоваться как back end сервер веб-проекта. Одним из таких проектов является «Сомнология B2C» – мобильное приложение на Android.

Мультиязычность приложения позволит получить более широкий охват при его размещении в магазине. Продемострируем как реализована мультиязычность на стороне платформы.

Репозитарий

Исходные данные

Проект «Сомнология B2C»:

  • back end: платформа Лямбда-Мю 3 [server]
  • front end: Android-приложение [client]

Для отладки решения будут использоваться следующие версии:

  • [client] : Android-приложение с вырезанным пользовательским интерфейсом и бизнес-логикой
  • [server] : платформа Лямбда-Мю 3 с вырезанной бизнес-логикой

Цель проекта

Доработать взаимодействие между [client] и [server].

Требования

Требованием к проекту является минимальные изменения исходного проекта [client] и [server]. Требование достигается использованием того же протокола, который разработан в исходном проекте.

Авторизация:

Запрос:

{ 
  { Object = "Auth", Command = "Set", Name = "UserName", Data = <string> },
  { Object = "Auth", Command = "Set", Name = "UserMail", Data = <string> },
  { Object = "Settings", Command = "Event", Name = "DoChangeLang", Data = <string> },
}

Ответ:

{ { Object = "Auth", Command = "Value", Name = "TaskObject", Data = <string> } }

Запрос списка курсов:

Запрос:

{ { Object = "Info", Command = "Event", Name = "CourceList" } }

Ответ:

{ { Object = "Info", Command = "Value", Name = "CourceList", Data = <array[table[CourceID:string, Name:string, Description:string]]> } }

Смена локализации:

Запрос:

{ { Object = "Auth", Command = "Value", Name = "TaskObject", Data = <string> } }

lm3/ce/t_multi_lang.1606473737.txt.gz · Последнее изменение: 2020/11/30 14:12 (внешнее изменение)