Как бы реализовал поддержку локализации языков в проекте

«Как бы реализовал поддержку локализации языков в проекте» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для поддержки локализации в Android используются ресурсные файлы в папке res/values-<языковой код>. Основные шаги:

  1. Создаем папки для разных языков:
res/values/strings.xml (по умолчанию)
res/values-ru/strings.xml
res/values-es/strings.xml
  1. В каждом файле strings.xml храним переводы:
<!-- values/strings.xml -->
<string name="welcome">Welcome</string>

<!-- values-ru/strings.xml -->
<string name="welcome">Добро пожаловать</string>
  1. Используем в коде:
textView.text = getString(R.string.welcome)

Дополнительно:

  • Для смены языка в рантайме используйте ContextWrapper с новым Locale
  • Для форматированных строк используйте аргументы:
<string name="welcome_user">Welcome, %s!</string>
getString(R.string.welcome_user, userName)