Поддержка нескольких языков реализована при помощи сервиса MessagesRegistry, позволяющего по ключу найти локализованное сообщение. Локаль же определяется по http request.
Доступ к локализованному сообщению можно получить несколькими спосабами
message:message-key
,
а иначе значение поля.
Все локализованные сообщения определяются в конфигурации org.weda.message.MessagesRegistry
Задача конфигураци - хранение локализованных сообщений
Структура:
<category ...> <element ...> <message ...> <locale ...>message</locale> </message> </element> <class-element ...> <message ...> <locale ...>message</locale> </message> </element> </category>
Элементы конфигурации:
Название элемента | Описание |
---|---|
category | Определяет категорию сообщений |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
name | Название категории. WEDA Framework определены следующие категории:
|
Нет |
Название элемента | Описание |
---|---|
element | Описывает элемент категории |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
name | Название элемента | Нет |
Название элемента | Описание |
---|---|
class-element | Описывает элемент категории |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
class | Определяет название элемента по классу | Нет |
Название элемента | Описание |
---|---|
message | Описывает сообщения для заданного ключа |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
key | Ключ сообщения | Нет |
defaultMessage | Сообщение по умолчанию. Будет возвращено в качестве сообщения в том случае если нет сообщения для заданного языка и страны | Да |
Название элемента | Описание |
---|---|
locale | Описывает сообщения для заданной страны и языка. Сообщение записывается в теле элемента |
Атрибуты элемента
Атрибут | Описание | Может быть пустым? |
---|---|---|
language | двух буквенное обозначение языка | Нет |
country | двух буквенное обозначение страны | Да |
Пример конфигурации:
<category name="converters"> <element name="org.weda.converter.impl.NumberConverter"> <message key="InvalidNumberType" defaultMessage="Invalid number type (%s)" > <locale language="ru"> Конвертер не умеет преобразовать к числу следующего типа (%s) </locale> </message> <message key="InvalidType" defaultMessage="Invalid toType (%s) or value class (%s)" > <locale language="ru"> Неверный тип к которому нужно привести значение (%s) или значение не является строкой (%s) </locale> </message> <message key="ConversionError" defaultMessage="Can't convert value (%s) to number of type (%s)" > <locale language="ru"> Ошибка преобразования (%s) к числу следующего типа (%s) </locale> </message> </element> <element name="org.weda.converter.impl.DateConverter"> <message key="UnknownDateType" defaultMessage="Unknown date type (%s)" > <locale language="ru"> Конвертер не умеет преобразовать к дате следующего типа (%s) </locale> </message> <message key="ConversionError" defaultMessage="Can't convert value (%s) to type (%s) using pattern (%s)" > <locale language="ru"> Ошибка преобразования (%s) к дате следующего типа (%s) используя шаблон (%s) </locale> </message> <message key="UnknownToType" defaultMessage="Invalid toType (%s) or value class (%s)" > <locale language="ru"> Неверный тип к которому нужно привести значение (%s) или значение не является строкой (%s) </locale> </message> </element> <element name="org.weda.converter.impl.InputStreamToByteConverter"> <message key="ConversionError" defaultMessage="Can't convert InputStream to byte array" > <locale language="ru"> Ошибка преобразования потока данных к массиву байт </locale> </message> </element> </category> </contribution>