Здравствуйте, коллеги!
Сегодня мы добавим в приложение поддержку нескольких языков.
Я уже много раз упоминал о необходимости вынесения всех строк в отдельный файл ресурсов (res/values/strings.xml).
Чтобы добавить поддержку еще одного языка в приложение, необходимо создать еше одну папку values в папке res. Только в ее название через дефис необходимо добавить вторую часть – код страны. Например, values-es
это каталога, содержащая ресурсы для языка с кодом es (Испания). ОС андроид будет подгружать необходимые ресурсы учитывая язык, указанный на мобильном устройстве.
После того, как решено, какие языки будет поддерживать приложение, необходимо создать подкаталоги и файлы с строковыми ресурсами, например:
Далее в строковые файле необходимо добавить значения для каждого языка. Например, файл с английской локализацией будет иметь следующий вид (/values/strings.xml):
файл, содержащий испанский перевод (/values-es/strings.xml):
И файл с французским переводом (/values-fr/strings.xml):
По-умолчанию (если нет файла с переводом для языка, выбранного на устройстве) будет использоваться локализация, лежащая в каталоге с названием values.
Использование строковых ресурсов
Строковые ресурсы могут быть использованы в других xml файлах и в исходном коде проекта по атрибуту имя (name
), указанном в элементе <string
>.
Для доступа в исходном коде, необходимо обращаться к строке следующим образом: R.string.<string_name>
. Есть множество методов, которые принимают строки из ресурсов таким образом. Например,
Для обращения к строке в другом xml файле, необходимо обращаться следующим образом: @string/<string_name>
. Например,
Собственно, вот и все. Теперь Вы можете создавать мультиязычные андроид приложения! 😉
Автор Аксёненко Богдан