Перейти к содержанию
Android i18n

Локализация Android: выпустите приложение на любом языке

Android предоставляет надёжную систему локализации на основе ресурсов с использованием файлов strings.xml и квалификаторов ресурсов. Каждая локаль получает собственный каталог values, а система автоматически выбирает нужные ресурсы в зависимости от языка устройства. Благодаря Jetpack Compose и языковым настройкам для каждого приложения в Android 13+ создание многоязычных Android-приложений стало проще, чем когда-либо.

Возможности локализации Android

Файлы ресурсов strings.xml с типобезопасными ссылками через класс R
Встроенные правила образования множественного числа с количественными строками (zero, one, two, few, many, other)
Поддержка Jetpack Compose через stringResource() и pluralStringResource()
Языковые настройки для каждого приложения в Android 13+ без перезапуска приложения
Квалификаторы ресурсов для локали, размера экрана и направления отображения
Зеркальное отображение макета справа налево (RTL) с автоматическим переворотом элементов
Форматирование дат, времени и чисел с учётом локали через библиотеки ICU
Строковые массивы и типизированные массивы для локализованного списочного контента
Редактор переводов Android Studio для визуального управления строками

Локализация Android на практике

Определите переводимые строки в res/values/strings.xml с поддержкой множественного числа, а затем используйте Kotlin и API Jetpack Compose для отображения локализованного контента в интерфейсе.

<!-- 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 уже сегодня

Управляйте переводами strings.xml для Android с помощью AI-рабочих процессов, синхронизации через CLI и доставки через CDN менее чем за 50 мс.