콘텐츠로 바로 가기
Android i18n

Android 현지화: 모든 언어로 앱 출시하기

Android는 strings.xml 파일과 리소스 한정자를 사용하여 강력한 리소스 기반 현지화 시스템을 제공합니다. 각 로케일은 자체 values 디렉토리를 가지며, 시스템이 기기 언어에 따라 적합한 리소스를 자동으로 선택합니다. Jetpack Compose와 Android 13+의 앱별 언어 기본 설정을 통해 다국어 Android 앱 개발이 그 어느 때보다 간편해졌습니다.

Android 현지화 기능

타입 안전 R 클래스 참조를 사용하는 strings.xml 리소스 파일
수량 문자열(zero, one, two, few, many, other)을 사용한 내장 복수형 규칙
stringResource() 및 pluralStringResource()를 사용한 Jetpack Compose 지원
앱 재시작 없이 Android 13+에서 앱별 언어 기본 설정
로케일, 화면 크기, 레이아웃 방향에 대한 리소스 한정자
자동 뷰 플리핑을 통한 RTL(우에서 좌로) 레이아웃 미러링
ICU 라이브러리를 통한 로케일 인식 날짜, 시간, 숫자 포맷
현지화된 목록 콘텐츠를 위한 문자열 배열 및 타입 배열
시각적 문자열 관리를 위한 Android Studio 번역 편집기

실무에서 본 안드로이드 현지화

res/values/strings.xml에 복수형 지원과 함께 번역 가능한 문자열을 정의한 다음, Kotlin과 Jetpack Compose API를 사용하여 UI에서 로케일 인식 콘텐츠를 렌더링합니다.

<!-- res/values/strings.xml -->
<resources>
    <string name="welcome">Welcome to %1$s</string>
    <plurals name="items">
        <item quantity="one">%d item</item>
        <item quantity="other">%d items</item>
    </plurals>
</resources>

<!-- res/values-fr/strings.xml -->
<resources>
    <string name="welcome">Bienvenue sur %1$s</string>
    <plurals name="items">
        <item quantity="one">%d article</item>
        <item quantity="other">%d articles</item>
    </plurals>
</resources>

// Kotlin - Jetpack Compose
@Composable
fun WelcomeScreen() {
    Text(text = stringResource(R.string.welcome, "My App"))
    Text(text = pluralStringResource(R.plurals.items, 5, 5))
}

오늘 Android 현지화 시작하기

AI 기반 워크플로, CLI 동기화, 50ms 미만의 CDN 전송으로 Android strings.xml 번역을 관리합니다.