Пользователи вашего приложения живут в разных странах и говорят на разных языках. Если программа говорит с ними на родном языке, доверия к ней гораздо больше. Сегодня в Android Studio мы разберёмся, как добавить поддержку нескольких языков. Этот урок на языке Kotlin покажет, что локализация — это не сложная магия, а аккуратная работа с ресурсами. Вы увидите, как текст автоматически подстраивается под язык устройства.
Как Android понимает, какой язык нужен
Всё строится на папках с ресурсами. Основные строки хранятся в res/values/strings.xml. Если система обнаруживает, что язык устройства — русский, она берёт их оттуда. Но если создать ещё одну папку, например res/values-en/strings.xml, и перевести строки на английский, система сама выберет нужный файл, когда язык устройства — английский. Никакого кода для этого писать не нужно — Android делает это автоматически.
Создаём английскую версию ресурсов
Откройте проект и найдите папку res/values. Щёлкните правой кнопкой по values, выберите New → Values resource file. В поле Filename укажите strings.xml, а в поле Directory name оставьте values-en. Android Studio сама создаст нужную папку и файл. Теперь скопируйте в новый файл те же ключи, но с английскими значениями.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">My Application</string>
<string name="hello">Hello, World!</string>
<string name="button_label">Click me</string>
</resources>
В исходном файле res/values/strings.xml оставляем русский текст:
<string name="hello">Привет, мир!</string>
<string name="button_label">Нажми меня</string>
Используем строки в разметке и коде
В XML-разметке ссылайтесь на строки по имени ключа. Например, для TextView укажите android:text="@string/hello". Для кнопки — android:text="@string/button_label". В Kotlin-коде, если нужно получить строку программно, используйте getString(R.string.hello). Система сама подставит нужный перевод.
val greeting = getString(R.string.hello)
myText.text = greeting
Проверяем на эмуляторе
Запустите приложение с системным языком по умолчанию (скорее всего, русским) — вы увидите русский текст. Теперь поменяйте язык устройства: зайдите в настройки эмулятора, найдите раздел Язык и ввод и добавьте английский, переместив его на первое место. Перезапустите приложение — весь текст станет английским. Магия! На самом деле, это просто правильная организация ресурсов.
Что делать, если нужен ещё и украинский
Аналогично создайте папку values-uk и файл strings.xml с украинскими строками. Если у пользователя в настройках выбран украинский язык, система возьмёт строки оттуда. Если для какого-то языка файла нет, Android откатится к папке values по умолчанию, поэтому важно иметь базовый набор строк.
Несколько полезных советов
- Всегда выносите весь текст в ресурсы. Даже если вы пока поддерживаете только русский, привычка хранить строки в
strings.xmlсэкономит часы, когда решите добавить ещё язык. - Не переводите ключи. Ключи вроде
R.string.helloостаются теми же, меняется только значение — это позволяет легко ссылаться на них в коде. - Используйте профессиональный перевод. Машинный перевод годится для прототипа, но пользователи сразу замечают неестественные фразы. Для публичного приложения лучше обратиться к носителю языка.
Чему мы научились
Сегодняшний урок в Android Studio на языке Kotlin показал, как сделать приложение доступным для пользователей из разных стран. Вы создали английскую версию строковых ресурсов и увидели, как система автоматически выбирает нужный перевод. Теперь ваше приложение может заговорить на любом языке, а вы знаете, как это реализовать. Попробуйте добавить ещё один язык — это займёт пять минут, но существенно расширит аудиторию.