Поддержка нескольких языков реализована при помощи сервиса 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>