2012년 8월 8일 수요일

[Android] string.xml사용 국가별 언어설정

각 나라마다 해당 언어를 표시 하는 경우가 생겼다.

project의 res 폴더 하위의 values 의 string.xml을 이용해서 간단히 사용할수 있다.

기본적으로 프로젝트 개발시에 values의 string.xml에 정의된 값을 사용하게 되는데,

각 언어별로 폴더를 따로 구성하게 되면, 디바이스에 설정된 시스템언어에 따라 자동으로

각 언어별로 지정된 values 폴더를 참조해서 표현하게 된다. (아래 첨부 이미지 참고)



만일 사용자가 설정한 국가의 언어 폴더가 없을 경우에는 values를 참조한다.

그러니 기본적으로 표현할 언어를 values폴더에 지정하고 사용하면 된다.

values뒤의 폴더명이 en, ja 가 붙는 이유는 시스템에서 나라를 구분하는데 있어 사용하는

구분자 이다.

'en'은 영어, 'ja'는 일본어, 한국어는 'ko'가 된다.

다른 나라는 Android Developer 사이트의 Reference에서  Locale 클레스를 참고 하면 된다.

[http://developer.android.com/reference/java/util/Locale.html]


string.xml 파일을 참고하자면, (나는 한국어 폴더를 따로 만들지 않고 디폴트로 설정했다.)

[values폴더의 string.xml]

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">안녕!!</string>
    <string name="app_name">언어설정 테스트</string>
</resources>


[values-ja폴더의 string.xml]

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">おはよう!</string>
    <string name="app_name">言語設定テスト</string>
</resources>


위와 같이 구성해 놓으면 디바이스가 자동으로 설정 되있는 국가별로 폴더를 찾아서 해당 언어를 뿌려 준다는 사실!!