프로그래밍/Java
[SpringBoot] Internationalization. 다국어 설정.
창수씨
2023. 6. 21. 00:08
반응형
1. 상위 폴더(Controller, domain, repository 등등)와 같은 레벨로 config 폴더 생성.
2. config/MvcConfig 파일 생성
package com.example.demo.config;
import java.util.Locale;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
@Configuration
@ComponentScan(basePackages = "com.example.demo.config")
public class MvcConfig implements WebMvcConfigurer {
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
slr.setDefaultLocale(Locale.KOREA);
return slr;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
}
3. resources아래에 messages_나라코드 두자리.properties 생성
greeting=안녕하다
lang.change=언어를 바꾸다
lang.eng=영어
lang.es=스빠니시
lang.kr=한국어
이런식으로
messages_eng.properties
messages_es.properties
messages_kr.properties
messages.properties
생성.
나라 코드 안 붙은 건. 오류가 발생했을 경우 사용할 Locale이다.
그리고 thymeleaf에 값을 이렇게 내려준다.
<a href = "#" th:text="#{greeting}">FAIL</a>
성공시 greeting에 해당하는 값이 나온다. $이 아니고 #이라는 것에 주의.
페이지 전역에 설정하는 건 아직 모른다.
반응형