본문 바로가기

안드로이드/코드

[안드로이드] 여러 국가의 언어를 하나의 변수로 통합하기(strings.xml)

반응형

1. 폴더 생성

 

프로젝트의 res폴더 안에 values라는 폴더가 있습니다.

그 폴더를 복사 붙여넣기 해서 폴더명을 수정해도 되고 res에서 폴더를 추가해도 됩니다.

 

 

strings1

 

values-ko (한국어)

values-en (영어)

values-es (스페인어)

values-ja (일본어)

values-zh (중국어)

 

 

이렇게 폴더명만 입력하면 원하는 국가의 strings.xml 파일이 생성됩니다.

 

strings2

 

모두 생성했으면 xml에 리소스를 넣으면 됩니다.

 

3개의 언어만 예를 들어서 사용해보겠습니다.

 

 

strings.xml (뒤에 괄호가 없는 파일이 기본값이 됩니다.)

<resources>
    <string name="hello">안녕</string>
</resources>

 

strings.xml (en)

<resources>
    <string name="hello">Hello</string>
</resources>

 

strings.xml (es)

<resources>
    <string name="hello">Hola hola</string>
</resources>

 

 

2. 사용법

 

 

xml 파일 예시

android:text="@string/hello"

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
        <TextView
            android:text="@string/hello"/>
</FrameLayout>

 

java 코드 예시

String hello = getString(R.string.hello);

 

이렇게하면 여러 국가의 언어를 하나의 변수로 통합하여 사용할 수 있습니다.

스마트폰의 언어를 해당 국가로 변경하고 어플을 실행해보면 결과를 확인 할 수 있습니다.

 

참고 사항으로 aab(Android App Bundle)로 빌드를 하게 될 경우 aab의 경우 용량을 최소화 시키기 위해 최소한의 필요한 리소스 파일만 가져갈 수 있도록 하기 때문에 사용자가 스마트폰의 언어를 변경해도 원하는 언어로 적용이 되지 않습니다. 만약 사용자가 여러개의 언어를 사용하게끔 해야하는 어플이라면 apk로 빌드하시는것을 추천드립니다.

반응형