Перейти до вмісту
Android i18n

Локалізація для Android: випускайте свій додаток на будь-якій мові

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

Функції локалізації Android

файли ресурсів strings.xml із типобезпечними посиланнями на клас R
Вбудовані правила утворення множини з використанням слів, що позначають кількість (нуль, один, два, кілька, багато, інше)
Підтримка Jetpack Compose за допомогою stringResource() та pluralStringResource()
Мовні налаштування для кожного застосунку окремо для Android 13+ без перезапуску застосунку
Кваліфікатори ресурсів для локалі, розміру екрана та напрямку компонування
Дзеркальне відображення макета справа наліво (RTL) з автоматичним перевертанням елементів
Форматування дати, часу та чисел з урахуванням локалі за допомогою бібліотек ICU
Масиви рядків та типізовані масиви для локалізованого вмісту списків
Редактор перекладів Android Studio для візуального керування рядками

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

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

<!-- 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 за допомогою робочих процесів на базі штучного інтелекту, синхронізації через командний рядок та доставки через CDN із затримкою менше 50 мс.