В Spring boot я пытаюсь создать еще один файл .property, который работает как messages.property, возможно ли это?

#spring-boot #internationalization #thymeleaf #properties-file

Вопрос:

Поэтому я пытаюсь создать еще один файл .property (называемый labels.properties), который я могу использовать в Thymeleaf следующим образом:

 <div th:text=#{property.from.labels}></div>
 

Прямо сейчас я просто добавляю labels.properties в корневую папку ресурсов, пока она не работает. Цель этого состоит в том, что я хочу отделить файл свойств, который обрабатывает сообщения об ошибках, от текстов для меток и кнопок.

  1. Возможно ли это?
  2. если да, то как это сделать?
  3. если снова «да», могу ли я выполнить интернационализацию, например, добавить labels_ja.properties (на японском языке)?

Комментарии:

1. Я думаю, что вам нужен i18n для этой цели, проверьте это: baeldung.com/spring-boot-internationalization

Ответ №1:

Вы можете настроить имя (и расположение) пакетов сообщений, настроив spring.messages.basename свойство. Например:

 spring.messages.basename=labels
 

Поступая таким образом, Spring будет искать сообщения внутри classpath:labels.properties и classpath:labels_{locale}.properties , например classpath:labels_ja.properties .

Если вы хотите использовать это в дополнение к обычным сообщениям.свойства, вы можете использовать значение, разделенное запятой:

 spring.messages.basename=messages,labels
 

Первый в этом списке, разделенном запятыми, будет иметь приоритет над остальными. Если у вас есть a property.from.labels в обоих messages.properties и labels.properties , в messages.properties этом примере будет выбран тот, который внутри.

Это также можно найти в документации по интернационализации.

Комментарии:

1. что делать, если я помещу labels.properties в папку, например resources/new_folder/labels.properties? нужно ли мне добавлять новую папку/метки весной.messages.basename?