Переводы

Большинство текстов, используемых в системе вынесены в файлы перевода. После того, как все тексты будут вынесены, можно будет приступать к задаче локализации системы (если такая задача появится). Некоторые модули, например livefeed готовы к локализации и имеют в своем составе папку locales, в которой присутствуют как английская версия сообщений так и русская.

Система предоставляет следующие механизмы работы с локализацией.

Все модули могут иметь в своем составе файл lang.json, в котором в формате ключ-значение содержатся все переводы элементов интерфейса: служебные сообщения, информация об ошибках, название полей объектов, название кнопок и прочее.

Весь код реализован в модуле lang.

Чтобы получить название элемента согласно файлу переводов достаточно вызвать функцию Lang.Tr или её аналог Tr.

Модуль имеет иерархическое хранилище переводов, то есть если вы обращаетесь к переводу часто используемого слова, например "confirm", вам скорее всего не нужно будет его определять в своём модуле(хотя желательно, для того чтобы избежать ненужных зависимостей между модулями). При этом в качестве аргумента функции перевода можно указывать название модели, тогда перевод будет в первую очередь искаться именно в файле модели.

Примеры использования:

> Tr(["CodeDoc","CodeFormat"])
< (2) ["Код.Док", "Код.Формата"]

> Tr("CodeFormat")
< "Код.Формата"

> Tr("doc","CodeFormat")
< "Код.Формата"

Система предлагает использование custom binding-а lang

Пример использования:

<i class="ace-icon fa fa-floppy-o bigger-120 green"></i><span data-bind="lang:'save'"></span>
<i class="ace-icon fa fa-floppy-o bigger-120 red"></i><span data-bind="model:'workflow',lang:'forsesave'"></span>

Можно использовать вызов к функции, напрямую

 <a data-bind='title:Lang.Tr("livefeed","deletemessage"),click:MLiveFeed.DeleteMessage'>
  <i class="ace-icon fa fa-times"></i>
 </a>

В планах - разработка интерфейса для совместного редактирования переводов. На данный момент, только собирается информация об использованных на текущей странице обращениях к модулю переводов

> Lang.OnPage
< Object {"techsupport":"Тех. Поддержка","orgchannel":"Общение внутри организации","Users":"Пользователи","NameUser":"ФИО","LoginUser":"Логин"}

Last updated