[kotlin] Jetpack Compose에서 다국어 지원하기

안녕하세요! Jetpack Compose로 멋진 안드로이드 앱을 개발하고 있다면, 앱을 세계 각국 사람들에게 제공하기 위해 간단한 처리만으로 다국어 지원 기능을 추가할 수 있습니다. 이번 블로그에서는 Jetpack Compose에서 어떻게 다국어를 지원하는지에 대해 알아보겠습니다.

리소스 파일 작성

먼저, 각 언어별 문자열을 저장하는 리소스 파일을 작성해야 합니다. res 폴더 내에 values 폴더를 생성한 후, 각 언어 코드에 해당하는 폴더(ex. values-ko, values-en)를 생성합니다. 그리고 각 폴더 내에 strings.xml 파일을 만들어 문자열을 리소스 파일에 추가합니다.

<!-- values/strings.xml -->
<resources>
    <string name="app_name">My App</string>
    <string name="welcome_message">안녕하세요, Jetpack Compose!</string>
    ...
</resources>
<!-- values-ko/strings.xml -->
<resources>
    <string name="app_name">내 앱</string>
    <string name="welcome_message">환영합니다, Jetpack Compose!</string>
    ...
</resources>

문자열 리소스 사용

Jetpack Compose에서 문자열 리소스를 사용하려면 stringResource() 함수를 사용하여 리소스 ID를 참조합니다. 코드에서 해당 문자열 리소스 ID를 찾아 해당 언어에 맞는 문자열을 표시할 수 있습니다.

@Composable
fun GreetUser() {
    Text(text = stringResource(id = R.string.welcome_message))
}

시스템 언어 변경 지원

사용자가 장치의 언어를 변경하면 앱이 자동으로 해당 언어로 변경되어야 합니다. 이를 위해 LocalConfigurationContextAmbient를 사용하여 시스템 언어를 확인하고 해당 언어에 따라 앱을 다시로드하거나 화면을 업데이트할 수 있습니다.

val configuration = LocalConfiguration.current
val locale: Locale = LocalConfiguration.current.locales[0]

마무리

Jetpack Compose를 사용하여 간단하게 다국어를 지원하는 것에 대해 알아봤습니다. 내가 개발한 앱을 더 많은 사용자에게 제공하기 위해 다국어 지원을 추가하는 것은 매우 중요합니다. 다국어 지원을 통해 사용자의 즐거움과 편의를 높일 수 있습니다.

다국어 지원에 대한 자세한 내용은 안드로이드 공식 문서를 참조하시기 바랍니다.

기다릴 시간이 없다면, Jetpack Compose 프로젝트에 다국어 기능을 추가해서 나만의 멋진 다국어 앱을 만들어보세요!