##########다국어 처리############
-------------------------------------------------------------------------------------
스프링에서 제공하는 다국어 처리 방식은 struts프레임워크와 유사 
기본적으로 메세지 파일의 확장자는 ".properties"이며 파일명은 
해당언어의 ■ Locale 정보를 이용해 작성한다. 

*로케일이 뭐지 ?
ex )  messageSource_en.properties
원하는 언어들의 메세지 파일을 다 작성했다면 
스프링 설정 파일에 해당 메세지 파일을 읽어들일 수 있도록 
MessageSource클래스를 <bean> 으로 등록해야한다. 
-------------------------------------------------------------------------------------
스프링 메시지소는 국제화(i18n)을 제공하는 인터페이스다. 
메세지 설정 파일을 통해 각 국가에 해당하는 언어로 메세지를 제공할 수 있다.
ApplicationContext는 MessageSource를 구현하고 있다. 
메세지 설정 파일은 프로퍼티 파일을 사용하며 
파일이르메 [파일이름][언어][국가].properties형식으로 추가해주면된다. 
-------------------------------------------------------------------------------------
id값이 basenames라고 되어있는데 이것은 springframework에서 지원하는
고정값이므로 마음대로 바꾸어서느 안된다. 
그리고 내부의 <property> 엘리먼트의 name 속성에는 두가지 값이 존재한다.
basename & basenames의 두가지. 우리는 여러 언어를 등록할거라서 
basenames를 사용해주어야 한다. 
-------------------------------------------------------------------------------------
메세지파일을 조금더 효율적으로 관리하기 위해 value태그에는 
모든걸 포함한 MessageSource 만쓴다. 즉 상위 개념을 써주는 것인데,
우리가 파일 1개에 모든 언어를 기록하는것이아니라 몇개씩 나누어쓰기때문에
50개로 나누어쓴다면 50개르 다써야하는 일이생기므로 
새 언어가 추가 또는 삭제된다 해도 스프링설정파일을 수정할 필요가 없기 때문!
-------------------------------------------------------------------------------------
LocalResolver 등록 
-------------------------------------------------------------------------------------
웹 브라우저가 =========> 서버에 어떠한 요청을 보내게되면,
기본 브라우저의 Local정보가
Http 요청 메세지 헤더에 자동으로 설정된 상태로 전송이 된다.
이때 스프링은 [LocaleResolver를 통해서 클라이언트의 Locale 정보를 추출]
하고 추출한 Locale 정보에 해당하는 언어의 메세지를 적용시켜 보여준다. 
스프링은 4개의 LocalResolver를 지원하는데, 만약 스프링 설정파일에 
LocalREsolver 가 따로 등록된게 아니라면 
기본값으로 AcceptHeanderLocalResolver가 적용된다.
------------------------------------------------------------------------------------- 
브라우저의 useragent 값이나 쿠키, 세션을 통해 locale 값을 처리한다.
그래서 우선 해당 xml에 아래처럼 추가해준다.

출처: https://unabated.tistory.com/entry/다국어-처리-localeResolver-messageSource [랄라라]


    @RequestMapping("/choiceLan.do")
    public String choiceLang(@RequestParam("lang") String lang,OnEmp onemp, HttpSession session,
            HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("선택한 언어:"+lang);
        System.out.println("전달 데이터 확인 : " + onemp);
        // 해당되는 선택 언어가 message폴드 하위에 있는 다국어 선택 파일을 
        // 지정해서, 해당 위치/시간에 해당하는 언어가 나오게 된다.
        Locale locale = new Locale(lang);
        localResolver.setLocale(request,response, locale);
        return "OnEmp/Login/login";
    }  

참고문헌 localeResolver 란 :: 쥬니의 개발블로그 (tistory.com)

 

localeResolver 란

스프링 localeResolver 기본설정 @Configuration @EnableAutoConfiguration @ComponentScan public class I18nConfig extends WebMvcConfigurerAdapter { @Bean public LocaleResolver localeResolver() { // 쿠키..

juntcom.tistory.com

Spring Framework 메세지 국제화(다국어 지원) 사용하기 (tistory.com)

 

Spring Framework 메세지 국제화(다국어 지원) 사용하기

스프링 프레임웍에서 다국어 지원기능을 사용해 보겠습니다. 기본적으로 텍스트로 저장되는 properties 파일을 언어별로 만들어서 사용합니다. 이번에 해볼것은 다음과 같습니다. 1. 메세지 프로

offbyone.tistory.com

랄라라 :: 다국어 처리 - localeResolver, messageSource (tistory.com)

 

다국어 처리 - localeResolver, messageSource

스프링에서 다국어를 처리하려면 LocaleChangeInterceptor + messageSource 조합으로 가능하다. 국가별로 페이지들 별도로 만드는짓은 더이상 하지 말자. 만약 서버단에서 위의 조합으로 다국어 처리된

unabated.tistory.com

 

'2. 웹' 카테고리의 다른 글

[github] dynamic 프로젝트 생성하기  (0) 2021.11.04
포트폴리오 준비  (0) 2021.11.02
[Spring] 환경설정 web-xml 뜯어보기  (0) 2021.11.02
MVC패턴이란 무엇일까?  (0) 2021.11.02
[spring] 스프링환경설정2 web.xml  (0) 2021.09.18

+ Recent posts