Эта библиотека обеспечивает быстрый способ подключения интернационализации к проекту.
-
Удобный класс
Messages
для локализации сообщений по коду и аргументам -
Автоматическая регистрация
MessageSource
,MessageSourceAccessor
-
Сканирование любых файлов локализации в определенном пакете (настройка
i18n.global.package-name
, по умолчанию вmessages
) -
Класс исключения
UserException
с поддержкой локализации сообщений
Для автоматического подключения интернационализации нужно добавить зависимость:
<dependency>
<groupId>net.n2oapp.platform</groupId>
<artifactId>n2o-platform-i18n-autoconfigure</artifactId>
</dependency>
Чтобы локализовать строку, сначала сохраните её код и локализованное значение в специальном файле.
example.code=Строка с параметром {0} и {1}
Затем подключите Messages
бин к Вашему классу:
@Autowired
private Messages messages;
И локализуйте строки с параметрами или без:
messages.getMessage("example.code", "первый параметр", "второй");
В случае отсутствия кода сообщения в локализованных файлах ошибки не будет, вернется сам код.
Для выбрасывания исключений с кодом сообщения и параметрами используйте класс UserException
:
throw new UserException(new Message("example.code")
.set("раз")
.set("два"));
В Spring Boot приложениях файлом локализаций по умолчанию является messages.properties
.
Note
|
Разные локали меняют окончание имени файла: для русской локали messages_ru.properties , для английской messages_en.properties .
Если в языке существуют диалекты, то к имени файла можно добавить диалект, например, messages_en_uk.properties .
|
Если вы пишете библиотеку, используемую многими приложениями, то использовать в ней messages.properties
нельзя,
т.к. этот файл сконфликтует с аналогичным файлом в конечном приложении.
Для таких случаев создайте свой уникальный файл локализаций вашей библиотеки и сохраните его в папке messages
,
например, messages/mylib.properties
.