Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

모바일 앱(안드로이드)

안드로이드 앱 만들기 : 나의 앱도 다국적 앱이 되어 본다. (언어설정)

Billcorea 2022. 7. 5. 21:56
반응형

https://yunaaaas.tistory.com/19

 

[Android/Kotlin] 언어설정 (Eng / Kor) 변경하기

2020 스마트 관광 앱 개발 공모전에 K-Pop 명소 추천 플랫폼인 'Kravel'을 개발하였는데요. 외국인을 타겟으로 한 앱이다 보니 영어/중국어,등 설정언어를 변경할 수 있도록 해주는 기능 이 필요했습

yunaaaas.tistory.com

먼저 이글은 위 게시물에 기반해서 작성된 것임을 밝힘.

 

앱을 만들면서 여러나라 사람이 사용할 수 있는 앱을 만들고 싶다. 그래서 번역 API 을 활용하는 앱을 만들기 시작했다. 그러다 보니, 나의 앱은 우리나라에서만 사용하는 사람들을 위한 앱이 되어 가고 있는데, 이 나라에 온 사람들이 다 자기 나라말을 하고 싶을 것이다. 

 

 

그래서 앱의 언어 설정을 변경하는 기능을 구현해 보기록 했다.  코드 구현은 다음과 같이 했다.

 

private fun setLocale(Lang: String) {
    Log.e("로그", "setLocale=$Lang" )
    val locale = Locale(Lang) // Local 객체 생성. 인자로는 해당 언어의 축약어가 들어가게 됩니다. (ex. ko, en)
    Locale.setDefault(locale) // 생성한 Locale로 설정을 해줍니다.

    val config = Configuration() //이 클래스는 응용 프로그램이 검색하는 리소스에 영향을 줄 수 있는
    // 모든 장치 구성 정보를 설명합니다.

    config.setLocale(locale) // 현재 유저가 선호하는 언어를 환경 설정으로 맞춰 줍니다.
    baseContext.resources.updateConfiguration(config, baseContext.resources.displayMetrics)

    val intent = baseContext.packageManager.getLaunchIntentForPackage(baseContext.packageName)
    intent!!.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
    intent!!.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
    finish()
    startActivity(intent)
}

다만, 한국어 설정시 ko 로 해야 하는 동작을 한다는 것, kr 이라고 생각을 할 수 도 있지만...  이제 다른 나라 언어도 설정을 해 보아야겠다.   다국어 버전을 만들기 위해서는  잘 하지 못하는 영어이기는 하지만, default 을 영어로 설정하는 것이 도움이 된다.   위 예시와 같이 locale 설정을 변경한 다음 화면을 다시 그려야 하기 때문에 강제로 앱을 종료하고 새로 실행하는 방식으로 해결을 한 원작자의 의도(?)을 이해 할 수 있었다.

 

언어변환예시

 

그 다음은 아래 포스팅을 참고 해서 이런 저런 나라의 언어로 번역된 파일을 만들어 보는 것이다. 그리고 나서

그것을 내 프로젝트의 res 폴더 아래  values-ko-rKr (한국어) 부터 폴더별로 string.xml 파일을 만들어 담아 보자.

 

https://billcorea.tistory.com/37

 

안드로이드 다국적(?) 앱 만들어 보기 (feat 카카오 번역 API, python 활용)

앱을 만들어 등록하는 동안 하고 싶은 것 중에서 한가지는 여러나라의 언어로 배포를 해 보는 것이였다. 예전에는 그걸 하나 하나 번역을 해 가면서 등록을 했던 것을 카카오 번역 API 호출하여

billcorea.tistory.com

 

마무리가 다 되면 다시 이글을 업데이트 하도록 해야겠다.

 

 

 

반응형