안드로이드에서 다국어 지원은 어떻게하죠?


앱을 구글 스토어에 발매하려고하는데요. 미국 계정에서는 영어로 출력되게하고 한국 계정에서는 한글로 출력되게 하고싶은데 그게 가능한가요?

  • 2016년 01월 29일에 작성됨

조회수 682


1 답변


좋아요
0
싫어요
채택취소하기

안드로이드를 개발을 하다보면, 각각의 나라마다 해당 국가의 언어를 표시해 줘야 할 경우가 생깁니다. 그럴경우.. 음.. 굉장한 난관에 부딪히게 되는데요. 그러한 이유때문에 안드로이드에서는 단말에 설정되 있는 시스템언어에 따라 자동으로 언어를 설정해 주는 기능을 제공합니다.

그 기능은 바로 안드로이드 Project -> res폴더 안에 -> values 라는 string.xml 포함하고 있는 폴더를 이용한 방법인데요. 보통 프로젝트를 개발할 시에는 하나의 values에 하나의 string.xml을 사용하게 됩니다. 하지만, 아래와 같이 언어별 폴더를 따로 만들게 되면, 단말에 설정된 시스템언어를 기준으로 자동으로 지정된 values 폴더를 참조 하게 됩니다.

1

위에서 보시는 것과 같이, "values-en" , "values-ko" 라는 폴더를 만들었습니다. 그리고 각각의 폴더마다 "strings.xml"이 존재하는 것 을 볼 수 있습니다. 각각 단말에 설정에 언어에 의해서 해당폴더의 "strings.xml"을 참조하게 되는 것이지요.

음 근데 왜 values 폴더 옆에 en 과 ko 라는 네임이 붙은 것 일까요? 네 맞습니다. 그것이 시스템 언어에서 구분자로 사용하고 있는 값이기 때문입니다. 한국어는 "ko" , 미국어는 "en", 일본어는 "ja" 이런식으로 값을 사용하고 있습니다. (다른언어를 더 사용하고 싶다면, 이클립스에서 Locale. 까지 입력하시면 제공하는 언어들을 더 보실 수 있습니다.)

2 만약 일본어를 추가해 주고 싶다면, "values-ja" 라는 폴더를 만들어서 사용하면 되겠죠? 자 다음은 strings.xml 내부 모습을 살펴 보겠습니다.

values-en 폴더의 strings.xml 파일입니다.

<string name="hello">Hello World, TestHHimLocationActivity!</string>
<string name="app_name">TestHHimLocation</string>

values-ko 폴더의 strings.xml 파일입니다.

<string name="hello">안녕하세요.!!!!</string>
<string name="app_name">Ko-한글입니다.</string>

이런식으로 구성을 하기 때문에, 시스템언어에 따라 손쉽게 국가별 언어를 지정해 줄 수 있는 것입니다. View들이 "hello" 라는 string값을 참조하고 있기때문에, 어떤 폴더의 "hello"라도 지정만 되어 있으면 View들은 "hello" 값을 참조하게 되는 형식이 되기 때문 입니다.

http://yth2626.blogspot.kr/2012/07/blog-post.html

  • 2016년 01월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close