728x90
반응형

Internationalization Understanding Locale in the Java Platform

http://www.oracle.com/technetwork/articles/javase/locale-140624.html

 

jvm 에 language 를 설정할 수 있다. (이태리어)

-Duser.language=it

-Duser.country=IT

 

이클립스를 사용한다면, Menu-Run-Run Configuarations-우측 Arguments탭-하단에 아래와 같이 추가

-Duser.language=it

-Duser.country=IT

 

설정된 language 는 아래와 같이 확인할 수 있다.

 

java.util.Locale locale = request.getLocale();

System.out.println("getDisplayName: " + locale.getDisplayName());
System.out.println("getCountry: " + locale.getCountry());
System.out.println("getDisplayCountry: " + locale.getDisplayCountry());
System.out.println("getLanguage: " + locale.getLanguage());
System.out.println("getDisplayLanguage: " + locale.getDisplayLanguage());
System.out.println("getVariant: " + locale.getVariant());
System.out.println("getDisplayVariant: " + locale.getDisplayVariant());

java.util.Locale ll = locale.getDefault();
System.out.println("ll's getDisplayName: " + ll.getDisplayName());
System.out.println("ll's getCountry: " + ll.getCountry());
System.out.println("ll's getDisplayCountry: " + ll.getDisplayCountry());
System.out.println("ll's getLanguage: " + ll.getLanguage());
System.out.println("ll's getDisplayLanguage: " + ll.getDisplayLanguage());
System.out.println("ll's getVariant: " + ll.getVariant());

System.out.println("ll's getDisplayVariant: " + ll.getDisplayVariant()); 

 

 

세션로케일을 사용한 다국어 처리를 알아보자.

@Controller

public class TestController{

@RequestMapping(value = "/setChangeLocale") 

public String test_changeLocale(@RequestParam String language, ModelMap modelMap, HttpServletRequest req, HttpServletResponse res){

Locale locale = null;

SessionLocaleResolver sessionLocaleResolver = (SessionLocaleResolver) RequestContextUtils.getLocaleResolver(req);

 

//lang 의 값에 따라 로케일 셋팅

if(language == null || language.equals("")){ //기본값은 세션에 설정된 로케일

locale = sessionLocaleResolver.resolveLocale(req);

}else{

locale = getLanguage(language, req);

}

// 새 로케일 적용

sessionLocaleResolver.setLocale(req, res, locale);

 

String redirect = "redirect:" + req.getHeader("referer");

return redirect; 

}

}

 

spring.xml

<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">

    <property name="defaultLocale" value="ko" />

</bean>  

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,