반응형
안녕하세요 돼지왕왕돼지입니다.
오늘은 단말 언어 세팅에 따라 string 값을 자동으로 적용하는 방법에 대해 알아보겠습니다.
무슨 말이냐?
[Setting] - [Language] 에 가면 단말을 여러 언어로 지원 가능한 것은 아시죠? 이 언어를 한국어에서 영어로 변경했을 때, Activity에서 원래 "선택" 이라고 나오던 글자를 자동으로 "Select"라고 나오도록 하자는 말입니다. 이걸 코딩으로 하냐구요? 아닙니다.
그럼 어떻게 하는데요?
말 그대로 코딩으로 할 경우에는 java 파일 안에 각 국 언어에 대한 string 이 모두 들어가 있어야 하며, 언어변화를 감지하여 코드에서 해줘야 할 일이 많습니다. 착한 안드로이드에서는 이 작업을 안드로이드의 특성 중 하나인 xml 을 이용하여 쉽게 할 수 있도록 미리 만들어놨더군요.
프로젝트를 생성하면 res 폴더 아래 values 폴더가 기본으로 있고 그 안에 strings.xml 이 있는 것을 확인 할 수 있죠.
이 values 폴더를 확장하면 자동으로 각국 언어들에 대해 지원이 됩니다.
어떻게 하냐구요?
예를 들어 내 앱이 영어, 일본어, 그리고 한국어에 대해 지원을 하고 싶다면,
values-en, values-ja, values-ko 이라는 세개의 폴더를 만듭니다.
각각의 폴더에 strings.xml 을 만들어서 각 string 항목마다 언어에 맞는 값을 넣어주면 되겠습니다.
values-en\strings.xml
values-ja\string.xml
values-ko\string.xml
이 values 폴더를 확장하면 자동으로 각국 언어들에 대해 지원이 됩니다.
어떻게 하냐구요?
예를 들어 내 앱이 영어, 일본어, 그리고 한국어에 대해 지원을 하고 싶다면,
values-en, values-ja, values-ko 이라는 세개의 폴더를 만듭니다.
각각의 폴더에 strings.xml 을 만들어서 각 string 항목마다 언어에 맞는 값을 넣어주면 되겠습니다.
<일본은 values-ja>
values-en\strings.xml
<resources>
<string name="select">Select</string>
</resources>
values-ja\string.xml
<resources>
<string name="select">選択</string>
</resources>
values-ko\string.xml
<resources>
<string name="select">선택</string>
</resources>
이 방법을 활용하면 쉽게쉽게 언어 확장을 할 수 있습니다.
다른 언어들에 대해서는 안 되냐구요? 당연히 됩니다.
values-[국가코드] 를 넣어주면 되는데 국가코드는 다음 사이트의 ISO-639-1 에서 찾아 쓰시면 되겠습니다.
http://www.loc.gov/standards/iso639-2/php/code_list.php
다른 언어들에 대해서는 안 되냐구요? 당연히 됩니다.
values-[국가코드] 를 넣어주면 되는데 국가코드는 다음 사이트의 ISO-639-1 에서 찾아 쓰시면 되겠습니다.
http://www.loc.gov/standards/iso639-2/php/code_list.php
로그인 없이 추천 가능합니다. 손가락 꾸욱~
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] 자주 쓰는 Android Broadcast Action 이름 모음. (0) | 2012.02.09 |
---|---|
[Android/안드로이드] URL Encoding / Decoding 방법. (2) | 2012.02.09 |
[Android/안드로이드] 화면크기, 해상도에 영향받지 않는 layout( view ) 만들기 (0) | 2012.02.09 |
[Android/안드로이드] CTS 테스트에 대한 아주아주 짤막한 정리. (0) | 2012.02.09 |
[Android/안드로이드] Selector 를 이용하여 간단한 버튼 구현하기. ( Custom Button? ) (0) | 2012.02.09 |
댓글