Jay's Developer Note

[Android] 다국어 지원 하기(feat. strings.xml) 본문

Android

[Android] 다국어 지원 하기(feat. strings.xml)

Jay(J) 2022. 5. 20. 19:53
728x90

다국어 지원 하기

요즘 같은 글로벌 시대에 맞춰 애플리케이션은 다국어를 지원해야 한다.

그렇다면 다국어를 어떻게 관리해야할까?

글자가 들어가는 곳에 전부 분기 처리를....?

하는 미친 짓을 해서는 안된다.(절대!)

가만히 생각해보면 프로젝트를 처음 만들 때 mipmap 안에 기본적인 안드로이드 Launcher Icon 이 존재한다.

해상도 별로 생성된 모습

DPI 별로 총 5개가 생성이 된다.

그렇다면 여기서 약간의 힌트를 얻을 수 있다.

글자를 관리하는 strings.xml 을 언어 별로 생성해 놓는다면??

바로 정답이 되시겠다.

안드로이드는 디바이스에 설정된 Language 값에 따라 자동으로 언어를 맵핑하여 해당 언어에 맞는 strings.xml 파일을 읽어와서 UI 에 뿌려준다.

 

가장 먼저 다른 언어의 strings.xml 을 생성해보자


수동 생성 방법

???

 

분명 생성을 했는데 없다??

파일 시스템 갱신이 안됐나 보네 ㅎㅎ 갱신을 해보자

 

 

?? 그래도 안 보인다.

놀라지 말고 Scope 를 Android 에서 Project 로 변경하면 보인다.

 

 

그렇다면 이제 strings.xml 을 생성해보자

 

 

2개의 strings.xml 이 생성된 것을 볼 수 있다.

 

 

values-en-rUS 안에 있는 strings.xml 안에 app_name 을 그대로 갖다 넣는다.

그리고 Translations Editor 를 열고 Sync 를 맞춰주면 된다.

 

이렇게 하면 수동으로 strings.xml 파일 추가가 끝이 났다.

다음은 아주 손쉽게 Japanese 를 추가해보겠다.


자동 생성 방법

클릭 2번에 추가가 완료됐다.

(자동 생성을 애용합시다..)


string 추가 방법

+ 버튼으로 key 와 default 값을 추가해주고

에러가 난다면 각 언어에다가 key 에 맞는 value 를 입력하거나

Untranslatable 을 체크하면 된다.

Untranslatable 옵션은 모든 언어에 default 값으로 사용한다는 의미기 때문에 국가 별로 변하지 않는 API Key 값 같은 것에 쓸 수 있다.

728x90