Android Per-app language setting

사용 언어: Kotlin 1.7.10
사용 버전: Android Studio Chipmunk 2021.2.1 Patch 2

안드로이드 Per-app language setting을 알아보겠습니다.


안드로이드 13(API 33)부터 각 앱마다 언어를 설정할 수 있는 기능이 생깁니다.

에뮬레이터를 기준으로 설명하면 다음 위치에 있습니다.
Setting - System - Languages & input - App Languages





지금은 적용할 수 있는 앱이 없군요.



제 앱을 다른 언어로 적용할 수 있게 만들어보겠습니다.

res에서 마우스 우 클릭을 합니다.

New - Android Resource File을 누릅니다.






File name에는 locales_config를 적어줍니다.

Resource type에는 XML을 선택합니다.

Root element에는 locale-config를 적어줍니다.

Directory name에는 xml을 적어줍니다.








파일이 생성됩니다.







본인 앱이 지원하는 언어들을 적어줍니다.

여기서는 en 영어, ko 한국어, fr 프랑스어를 적었습니다.









AndroidManifest.xml로 갑니다.

18 번째 줄처럼 android:localeConfig="@xml/locales_config"를 적어줍니다.







빌드를 하면 이렇게 에러가 나옵니다.
Android resource linking failed.







알려진 문제를 보면, AGP 버전이 7.3.0-beta04 이상이어야 한다고 합니다. 







지금 쓰고 있는 Chipmunk는 AGP 7.2 밖에 사용할 수 없습니다.

아마 다음 버전인 Android Studio Dolphin을 써야 할 것 같네요. 









Dolphin은 지금 RC1 버전까지 올라왔습니다. 곧 조만간 출시되겠네요.






아직 정식 출시되지 않은 Android Studio는 Preview에서 다운로드할 수 있습니다.







다운로드해서 압축을 풀어줍니다.








bin - studio64.exe를 실행합니다.















처음 실행하면 설치 진행 창이 나옵니다. 설치를 해줍니다.









저는 기존에 있는 Android Studio가 있어서 그런지 위 작업을 안 해도 실행되더군요. 그래서 그냥 바로 실행해서 사용했습니다.




Gradle Plugin의 버전을 올려줍니다. 현재 저는 7.3.0-rc01을 사용할 수 있군요,








프로젝트 용 build.gradle에 classpath 'com.android.tools.build:gradle:7.3.0-rc01'을 적어줍니다.










Sync Now를 누릅니다.



다시 AndroidManifest.xml로 와서 android:localeConfig="@xml/locale_config"를 적어줍니다.










실행을 합니다.

Setting - System - Languages & input - App Languages에 들어갑니다.

이제 제가 만든 앱이 보입니다. 여기서 앱마다 언어를 다르게 설정할 수 있습니다.








System Default를 한국어로 변경했습니다.








실행하면 한국어로 나옵니다.








끝.


카테고리: Android

댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

KiCad 시작하기 7 (FreeRoute 사용하기 2)

음악 총보(Score), 파트보(Part)

Forensics .pyc 파일 .py로 복구하기

KiCad 시작하기 3 (새로운 소자 추가하기)

Kivy 시작하기 12 (Pyinstaller로 exe 파일 만들기)

딩기 요트 명칭

Android Compose automation for getting localized images to use on Play Store app image

Android Default background color setting

Android App architecture: State holders and UI state