Contents

[Mastering Spring 5.0] 6.7 κ΅­μ œν™”

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ””
μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€.

κ΅­μ œν™”

κ΅­μ œν™”λŠ” λ‹€μ–‘ν•œ μ–Έμ–΄ 및 λ¬Έν™”κΆŒμ— μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” 컨텐츠λ₯Ό μ œκ³΅ν•  수 μžˆλ„λ‘ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μž‘μ„±ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. κ΅­μ œν™”(internationalization) λ₯Ό I18Nμ΄λ‚˜ i18n으둜, ν˜„μ§€ν™” localizationλ₯Ό L10Nμ΄λ‚˜ l10n λ“±μœΌλ‘œ ν‘œκΈ°ν•˜κΈ°λ„ ν•œλ‹€. μŠ€ν”„λ§ λΆ€νŠΈλŠ” κ΅­μ œν™”λ₯Ό μœ„ν•œ 지원 κΈ°λŠ₯을 λ‚΄μž₯ν•˜κ³  μžˆλ‹€.

μŠ€ν”„λ§λΆ€νŠΈν”„λ‘œμ νŠΈμ—μ„œ κ΅­μ œν™” μ§€μ›μ„€μ •ν•˜κΈ°

Application.java 에 LocaleResolver μΆ”κ°€ν•œλ‹€.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
@Bean
public SessionLocaleResolver localResolver() {
    SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
    sessionLocaleResolver.setDefaultLocale(Locale.US);
    return sessionLocaleResolver;
}
    
@Bean
public ResourceBundleMessageSource messageSource (){
    ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasename("i18n/message");
    messageSource.setUseCodeAsDefaultMessage(true);
    return messageSource;
}
  • sessionLocaleResolver.setDefaultLocale(Locale.US) : κΈ°λ³Έ λ‘œμΌ€μΌμ„ Locale.US 둜 μ„€μ •ν•œλ‹€.
  • messageSource.setBasename("i18n/messages") : 메세지 μ†ŒμŠ€μ˜ 기본이름을 message 둜 μ„€μ •ν•œλ‹€. 예λ₯Όλ“€μ–΄ message_kr.properties 지정할 수 있으며, message_kr.properties λ₯Ό μ‚¬μš©ν•  수 μ—†μœΌλ©΄ message.properties μ—μ„œ κ²€μƒ‰λœλ‹€.
  • messageSource.setUseCodeAsDefaultMessage(true) : 메세지λ₯Ό 찾을 수 μ—†λŠ” 경우 μ½”λ“œλŠ” κΈ°λ³Έ 메세지λ₯Ό λ°˜ν™˜ν•œλ‹€.

κ΅­μ œν™” 메세지 파일 μƒμ„±ν•˜κΈ°

1
2
3
4
5
# message.properties
welcome.message=Welcome in English

# message_fr.properties
welcome.message=Welcome in French