본문 바로가기
개발/안드로이드

[안드로이드] 다국어 지원해보기 #1

by 핸디(Handy) 2020. 6. 19.

글로벌한 앱을 위해서는 다국어 지원이 필요합니다. 그래서 이번엔 다국어 지원을 하는 방법에 대해 글을 작성해보려고 합니다.

다른 환경은 모르겠으나 안드로이드 스튜디오는 다국어 지원이 매우 간단한 편입니다. 다른 분들의 포스트를 찾아보니 크게 2가지 방법을 쓰시더군요.

1. 텍스트를 때려박을때 locale를 찾아서 분기처리하여 표시하기
2. 핸드폰의 언어설정에 따라 알아서 표시하기

이 중 저는 2번째. 핸드폰의 언어설정에 따라 알아서 표시하는 방법으로 구현을 해보았습니다.

구현해야할 것은 크게 2가지입니다. 언어에 따른 텍스트표와 언어설정을 바꿔주는 기능입니다. 이번 포스트에서는 언어에 따른 텍스트표를 만드는 방법에 대해 하겠습니다.

그럼 시작하겠습니다.


안드로이드 스튜디오의 창을 보면 

이렇게 되어있습니다. 아마도 아직은 미국의 strings.xml은 없을겁니다. 우린 이걸 만들거니깐요. strings.xml를 클릭하면 여기서 텍스트가 쫙 나열되어있습니다.

<resources>

    <string name="email">이메일</string>
    <string name="password">비밀번호</string>

    <string name="signin">로그인</string>
    <string name="success_login">로그인 성공</string>
    <string name="failed_login">로그인 실패</string>

    <string name="signup">회원가입</string>
    <string name="success_signup">회원가입 성공</string>
    <string name="failed_signup">회원가입 실패</string>

    <string name="price_one">원</string>
    <string name="approximately">약</string>
    <string name="minute">분</string>
    <string name="km">km</string>
    <string name="count_dae" translatable="false">대</string>
    <string name="taxi_default_fee">3,800</string>

    <string name="default_notification_channel_id" translatable="false">fcm_default_channel</string>
    <string name="test">테스트</string>
    <string name="language_kr">한국어</string>
    <string name="language_en">영어</string>
    <string name="en_open" translatable="false">open</string>
    <string name="en_close" translatable="false">close</string>

</resources>

 대에충 텍스트가 이정도 있다고 합시다. 그러면 이 창에서 오른쪽 위를 살며시 보시면 Open editor 가 있는데 이걸 클릭해주시면

요런 창이 뜹니다. 왼쪽 위에 + 는 원하는 텍스트를 생성하는것이고 지구모양이 원하는 나라를 설정하는 것입니다.

이중에 지구아이콘을 누르고 나라를 픽하게 되면 위의 표에 하나의 컬럼이 추가되면서 사용할 수 있게 됩니다. 저는 이전에 US를 선택했었기 때문에 이미 english 컬럼이 있었던 것이구요.

그럼 이제 해당 컬럼에 번역한 내용을 채우면 다국어 지원은 끝입니다.

안드로이드어플리케이션의 언어설정은 핸드폰의 setting에서 언어의 우선순위를 바꾸고 해당 언어에 맞는 번역언어가 설정되어있을때 해당언어로 표시해주고 없을 경우에는 default로 돌려주는 방식입니다. 

다음 포스트에서는 해당 언어설정을 앱 내에서 바꾸고 이를 표시하는 스피너를 만드는 것으로 찾아오겠습니다.

감사합니다.

댓글