Android프로그래밍

[Android studio] 안드로이드 중국어번체(zh-rTW) Locale 설정이 동작하지 않을 때 해결 방법 & 안드로이드 스튜디오에서 다국어 언어 string locale 추가하는 방법

몇 일 전, 구글 어플 사용자 리뷰가 하나 올라왔다.

리뷰 내용은 이랬다.

“중국어 번체는 장식이냐? 변경되지않고, 영어로 표기된다”

내 기억에 의하면 이미 오래전에 테스트를 했었다.

그래서 오늘 노트북을 들고 도서관에 왔다.

안드로이드 스튜디오를 실행하여 앱 테스트에 들어갔다.

사용자 리뷰 내용처럼 중국어 번체를 선택해도 중국어 번체로 변경되지 않고, 영어로 표기되고 있었다.


중국어번체(zh-rTW) Locale 설정

당연하겠지만 resource 폴더에도 해당 언어로 번역된 xml 파일이 존재한다.

그럼 이 문제는 안드로이드 버전 몇 부터 발생된 문제인가? 안드로이드 13부터 발생되는 문제인가?

기존에 locale 설정하던 코드는 다음과 같다.

//AS-IS
 sLocale = new Locale("zh-rTW");



중국어번체(zh-rTW) Locale 동작문제 해결방법

중국어 번체로 정상적으로 표기되기 위해서는 아래와 같이 코드를 변경하면 해결할 수 있다.

//TO-BE
sLocale = new Locale("zh","rTW");
또는
sLocale = Locale.TRADITIONAL_CHINESE;


안드로이드 스튜디오 다국어 string locale 추가하는 방법

참고로, 중국어 언어 리소스에 추가할 strings 파일 이름을 잘 모르겠다면, 아래 설명을 따라서 언어 리소스를 추가해주면된다.

  1. 안드로이드 스튜디오 화면 왼쪽 소스 리스트에서 “res”폴더를 선택 한다.
  2. 마우스 우클릭
  3. New 선택
  4. Android Resource File 클릭
  5. File name으로 “strings” 타이핑
  6. 다른건 건드리지말고 하단에 Available qualifiers 영역에서 Locale을 클릭 후 ” >>” 버튼을 클릭

Language 선택창에서 zh로 검색 후 Specific REgion Only 영역에서 TW:타이완을 선택하면 Directory Name이 자동으로 values-zh-rTW로 언어 선택에 따라 변경됨을 확인할 수 있다.

OK버튼을 클릭하면 정상적으로 추가된다.



[reference]

https://stackoverflow.com/questions/41471461/android-how-to-set-locale-to-zh-hk-android

https://stackoverflow.com/questions/35842310/android-simplified-chinese-and-traditional-chinese-language-change-inside-app

error: Content is protected !!