[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 파일 이름을 잘 모르겠다면, 아래 설명을 따라서 언어 리소스를 추가해주면된다.
- 안드로이드 스튜디오 화면 왼쪽 소스 리스트에서 “res”폴더를 선택 한다.
- 마우스 우클릭
- New 선택
- Android Resource File 클릭
- File name으로 “strings” 타이핑
- 다른건 건드리지말고 하단에 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