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