Skip to content

Latest commit

 

History

History
68 lines (52 loc) · 3.35 KB

README.adoc

File metadata and controls

68 lines (52 loc) · 3.35 KB

Эта библиотека обеспечивает быстрый способ подключения интернационализации к проекту.

Возможности

  • Удобный класс 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.