WebServer/Spring Boot
[스프링부트] I18N 다국어 처리하기
gangintheremark
2023. 9. 22. 10:35
728x90
파일명_국가별언어코드.properties 작성
한국어 버전
#shop_ko.properties
greeting=안녕하세요
영어 버전
#shop_en.properties
greeting=hello
application.properties 설정
spring.messages.basename=message/shop
spring.messages.encoding=utf-8
# spring.messages.fallback-to-system-locale=false
💡 fallback-to-system-locale = true (default) : 시스템의 locale를 따른다.
💡 fallback-to-system-locale = false : 기본 properties를 실행한다.
① 메인에서 사용
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
String mesg = ctx.getMessage("greeting", null,null,Locale.KOREA);
String mesg2 = ctx.getMessage("greeting", null, null, Locale.US);
String mesg3 = ctx.getMessage("greeting", null, null, Locale.CHINA);
System.out.println(mesg); // shop_ko.properties 실행
System.out.println(mesg2); // shop_en.properties 실행
System.out.println(mesg3); // shop.properties 실행
}
}
② 임의의 빈에서 사용
@Autowired
를 통해 MessageSource 객체 주입
@Service("xxx")
public class DeptServiceImpl {
@Autowired
MessageSource ctx;
public void mesg() {
String mesg = ctx.getMessage("greeting", null, null, Locale.KOREA);
String mesg2 = ctx.getMessage("greeting", null, null, Locale.US);
String mesg3 = ctx.getMessage("greeting", null, null, Locale.CHINA);
System.out.println(mesg);
System.out.println(mesg2);
System.out.println(mesg3);
}
}
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
DeptServiceImpl service = ctx.getBean("xxx", DeptServiceImpl.class);
service.mesg();
}
👇 Spring 과 비교
[Spring] I18N 다국어 처리하기 (MessageSource)
properties 파일을 이용한 다국어 처리 방식이다. 실습 ① 파일명_국가별언어코드.properties 작성 한국어 버전 #shop_ko.properties greeting=안녕하세요 greeting2={0},{1} 영어 버전 #shop_en.properties greeting=hello ②
gangintheremark.tistory.com
728x90