본문 바로가기

개발이야기

안드로이드 앱 글로벌 버전 만들기

글로벌 버전은 앱을 영어로 만들면 된다고 간단하게 생각할 수도 있다. 

그럼 리소스들을 영어로 표시 하는 것이 필요하고, 그 영어 버전과 한글 버전을 어떤식으로 관리할지가 고민스럽다. 

리소스 관리 그리고 소스 관리 어떻게 하는게 효율적일까? 

앱의 전략에 따라서 앱을 2개로 나눌 수도 있고, 하나의 앱으로 리소스만 달리 할 수도 있다. 

당연히 하나의 소스에 리소스만 분리하는게 유리할 것으로 생각된다. 


안드로이드는 기본적으로 다국어 지원을 잘(?) 해주려고 준비가 되어 있다. 

기본적으로 /res/values 에 /res/values-en를 추가하면 핸드폰의 언어에 따라서 자동으로 해당 언어로 로딩이 된다. 

그렇게 폴더가 추가되고, strings.xml을 해당 폴더에 넣으면 스튜디오에서는 values에 strings.xml에 두개의 리소스 편집이 가능하다.  

그렇게 편집하면 되고, 

그렇게 하고 나니 문자열 배열은 어떻게 할까 고민스럽다. 또 하나의 좋은 팁 중 하나는 배열을 저장할 수 있는 부분이다. 아래와 같이 하면 string 배열이 되므로 간편하게 개발할 수 있다. 

res/values/strings.xml에 저장된 XML 파일:

<?xml version="1.0" encoding="utf-8"?>
<resources>
   
<string-array name="planets_array">
       
<item>Mercury</item>
       
<item>Venus</item>
       
<item>Earth</item>
       
<item>Mars</item>
   
</string-array>
</resources>

다음 애플리케이션 코드는 문자열 배열을 검색합니다.

Resources res = getResources();
String[] planets = res.getStringArray(R.array.planets_array);