Документация на documentation.lsfusion.org скоро станет недоступной, используйте, пожалуйста, https://docs.lsfusion.org/ru.

Перейти к концу метаданных
Переход к началу метаданных

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 5 Следующий »

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

Объявим логику обычным способом, только вместо задания названий в явную, вместо них будем использовать идентификаторы.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 CLASS Book '{use.case.i18n.book}';

name '{use.case.i18n.book.name}' = DATA STRING[40] (Book);
price '{use.case.i18n.book.price}' = DATA STRING[40] (Book);

FORM books '{use.case.i18n.books}'
    OBJECTS b = Book
    PROPERTIES(b) name, price, NEW, DELETE
;

NAVIGATOR {
    NEW books;
}

Затем создаем новый Resource Bundle, куда пропишем значения идентификаторов на разных языках :

Называем его, например, I18nResourceBundle (система будет считывать только файлы, которые заканчиваются на ResourceBundle) и выбираем языки, которые будут использоваться :

Далее, для каждого идентификатора прописываем значения на каждом из выбранных языков :

После запуска, по умолчанию, все названия будут показываться на языке сервера (который, в свою очередь, по умолчанию, определяется по языку операционной системы) :

Для конкретного пользователя можно изменить язык и страну в его профиле :

В таком случае, когда пользователь зайдет заново в систему, то все названия будут показываться ему на выбранном языке :

Следует отметить, что система не умеет автоматически локализовывать пользовательские данные. Ответственность за это несет непосредственно разработчик. 

  • Нет меток