Android

(Android Studio) - 다국어 지원 설정, strings.xml

돗개진 2024. 4. 3. 20:17

일주일 동안 진행하는 프로젝트에서 다국어 지원 설정을 맡았기 때문에 내용을 정리해 봅니다.

 

TextView, EditText, Button ... 등 많은 UI 요소들은 text 로 정보를 전달하는 역할을 종종한다. 그런데 이 요소들이 갖고 있는 text 속성에 하드코딩(ex: text = "돗개진")을 하게 되면 다국어 지원을 할 수 없게 된다.

 

따라서 res -> values -> strings -> strings.xml 파일에 내가 사용할 문자열들을 모아서 관리하여 다국어 지원까지도 가능하게 할 수 있다.

 

<resources>
    <!-- detail 페이지 string -->
    <string name="app_name">week3_sns_project</string>
    <string name="title_name">게시물 제목</string>
    <string name="post_text">게시물 내용</string>

    <!-- home 페이지 string -->
    <string name="bts">BTS</string>
    <string name="btob">BTOB</string>
    <string name="idle">IDLE</string>
    <string name="content_tv">스타 게시판</string>
    <string name="time_tv">15시간 전</string>
    <string name="title_content_tv">방탄 카페 용산점에 왔어요</string>
    <string name="title_content_tv2">비투비 콘서트 갔다왔어요!!</string>
    <string name="post_tv1">게시글 내용1</string>
    <string name="post_tv2">게시글 내용2</string>


    <string name="home">홈</string>
    <string name="mypage">마이페이지</string>

    <!-- mypage 페이지 string -->
    <string name="id">아이디 :</string>
    <string name="name">이름 :</string>
    <string name="artist">내 아티스트 :</string>

    <!-- signin/out 페이지 string -->
    <string name="main_login_btn">로그인</string>
    <string name="main_signup_btn">회원가입</string>

    <string name="login_title_tv">로그인</string>
    <string name="login_email_tv">이메일</string>
    <string name="login_email_hint">이메일을 입력해주세요</string>
    <string name="login_password_tv">비밀번호</string>
    <string name="login_password_hint">비밀번호를 입력해주세요</string>
    <string name="login_name_tv">이름</string>
    <string name="login_name_hint">이름을 입력해주세요</string>
    <string name="login_login_btn">로그인</string>

ㄴ> 위는 프로젝트의 strings.xml 을 일부분 가져온 것이다. 페이지마다 역할을 나눴기에 구분해서 추가하기 용이하도록 주석으로 나눴다.

 

이렇게 strings.xml 파일을 사용해서 하드코딩이 되는 것은 막았는데 어떻게 하면 다국어 지원을 사용할 수 있을까?

 

ㄴ> strings.xml 파일에 들어가면 오른쪽 상단에 Open editor 라는 버튼이 있다 이를 클릭해서 에디터를 실행하면 된다.

 

ㄴ> 에디터를 실행하면 Default Value 로 설정된 strings 값들이 Key 와 함께 보기 편하게 보여진다. 왼쪽 상단의 지구 모양을 클릭하면 어느 국가의 언어를 추가할 것인지 선택할 수 있다.

 

이번 목표는 영어 버전을 추가하는 것이었기 때문에 English(en)을 추가해 주었다. 이렇게 에디터에서 추가하면 알아서 values 파일 안에 strings.xml (en) 이 생성된다.

 

에디터에서 보여지듯이 내가 설정한 다국어 탭(사진 기준으로는 English)에 en 버전에선 어떤 문자열로 표현될지 작성하면 된다.

 

 

이렇게 다국어 지원이 원활하게 적용된 모습을 볼 수 있다. 시스템 설정에서 한국어로 바꾸면 한국어로도 정상적으로 출력된다. 시스템 설정에 따른 다국어 지원 모드 방법은 생각보다 간단하기 때문에 strings 파일만 잘 관리해 주면 될 것 같다.

'Android' 카테고리의 다른 글

(Android Studio) - Adapter View  (0) 2024.04.12
(Android Studio) - View Binding  (0) 2024.04.11
(Android Studio) - Fragment 데이터 전달 방식  (0) 2024.04.01
(Android Studio) - Fragment LifeCycle  (0) 2024.04.01
(Android) - Activity Stack  (1) 2024.03.27