2015. 1. 13. 00:15

안드로이드 앱을 개발하다보면 다중언어(로컬라이징)를 지원해야 하는 경우가 있다. 그럴경우 안드로이드에서 지원하는 방식으로 resource폴더를 관리하면 예상외로 쉽게 개발할 수 있다. (res/values-ja, res/values-en, res/drawable-ko 등등 )


일단 이렇게 개발하고 나면 앱이 실행될때에 핸드폰의 언어설정에 따른 resource를 자동으로 앱이 파악한 후 적용하게 된다.


하지만 만약 내가 개발하고 있는 앱 내부에서 언어를 바꾸고자 할때(예를 들면 앱 내에 있는 설정부분에서) 굳이 핸드폰 자체의 언어설정을 가지 않고 동적으로 바꿔줄 수 있는 방법이 있었다.


1
2
3
4
5
6
7
 
public void changeConfigulation() {
    Locale mLocale = new Locale("language_code")
    Configuration config = new Configuration();
    config.locale = mLocale;
    getResources().updateConfiguration(config, null);
}
cs



위의 코드에서 new Locale("language_code")의 "language_code"에 내가 바꾸고자 하는 나라의 언어코드를 넣으면 적용이 된다. 

Posted by 미뤽