message_en.properties
item=Item
item.id=Item ID
item.itemName=Item Name
item.price=price
item.quantity=quantity
message_ko.properties
item=상품
item.id=상품 ID
item.itemName=상품명
item.price=가격
item.quantity=수량
hello=안녕
hello.name=안녕 {0}
hello=hello
hello.name=hello {0}
spring.messages.basename=messages
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new
ResourceBundleMessageSource();
messageSource.setBasenames("messages", "errors");
messageSource.setDefaultEncoding("utf-8");
return messageSource;
}
@SpringBootTest
public class MessageSourceTest {
@Autowired
MessageSource ms;
@Test
void helloMessage(){
String result = ms.getMessage("hello", null, null);
assertThat(result).isEqualTo("안녕");
}
@Test
void defaultLang() {
assertThat(ms.getMessage("hello", null, null)).isEqualTo("안녕");
assertThat(ms.getMessage("hello", null, Locale.KOREA)).isEqualTo("안녕");
}
// 국제화 - 영어
@Test
void enLang() {
// 매개변수 X
assertThat(ms.getMessage("hello", null, Locale.ENGLISH)).isEqualTo("hello");
// 매개변수 O
assertThat(ms.getMessage("hello.name", new Object[]{"Spring"}, Locale.ENGLISH)).isEqualTo("hello Spring");
}
}
label.item.id=상품 ID
label.item.itemName=상품명
label.item.price=가격
label.item.quantity=수량
<tr>
<th th:text="#{label.item.id}">ID</th>
<th th:text="#{label.item.itemName}">상품명</th>
<th th:text="#{label.item.price}">가격</th>
<th th:text="#{label.item.quantity}">수량</th>
</tr>
properties
hello.name=안녕 {0}
html
<p th:text="#{hello.name(${item.itemName})}"></p>
label.item=Item
label.item.id=Item ID
label.item.itemName=Item Name
label.item.price=price
label.item.quantity=quantity
이러면 설정은 다 완료 되었다. 이제 확인을 해보자