Завжди є хорошою практикою витягти рядки інтерфейсу користувача з коду додатка і тримати їх в зовнішньому файлі. Android- це легко робить за допомогою каталогу ресурсів в кожному проекті Android. Якщо ви створили свій проект за допомогою Android SDK Tools (читайте Створюємо свій перший додаток для Android), то інструменти створили каталог res/ на верхньому рівні проекту.
У цьому каталозі res/ є підкаталоги для різних типів ресурсів. В тому числі, кілька таких файлів за замовчуванням, як res/values/strings.xml, які зберігають ваші рядкові значення.
Створення локалізованих каталогів і рядкових файлів
Щоб додати підтримку інших мов, створіть додаткові каталоги values всередині res/, які включають дефіс і код ISO мови в кінці імені каталогу. Наприклад, values-es/ є каталог, що містить прості ресурси для локалей з кодом мови "es". Android-завантажує відповідні ресурси згідно з налаштуваннями локалі пристрою під час виконання. Для отримання додаткової інформації див. Providing Alternative Resources.
Після того, як ви вирішили, які мови будете підтримувати, створіть підкаталоги ресурсів і файли рядкових ресурсів. Наприклад:
MyProject/
res/
values/
strings.xml
values-es/
strings.xml
values-fr/
strings.xml
Додайте рядкові значення для кожного регіону у відповідному файлі.
Система Android під час виконання використовує відповідний набір рядкових ресурсів, заснованих на локалі, встановленій для пристрою користувача в даний час.
Для прикладу, далі наведені деякі різні файли рядкових ресурсів для різних мов.
Англійська (локаль за замовчуванням), /values/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">My Application</string>
<string name="hello_world">Hello World!</string>
</resources>
Іспанська, /values-es/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Mi Aplicación</string>
<string name="hello_world">Hola Mundo!</string>
</resources>
Французька, /values-fr/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Mon Application</string>
<string name="hello_world">Bonjour le monde !</string>
</resources>
Українська, /values-ua/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="title">Мій додаток</string>
<string name="hello_world">Привіт світ !</string>
</resources>
Примітка: Ви можете використовувати локалі відбірково (або будь-якої відбіркової конфігурації) на будь-якому типі ресурсів, наприклад, якщо хочете забезпечити локалізовані версії растрових зображень. Для отримання додаткової інформації див. Localization.
Використання рядкових ресурсів
Ви можете посилатися на свої рядкові ресурси у своєму вихідному коді та інших XML-файлах за допомогою імені ресурсу, визначеного елементами <string> атрибуту name.
У вихідному коді можете звернутися до рядкового ресурсу з синтаксисом R.string.<string_name>. Є безліч способів, як отримати рядковий ресурс цим шляхом.
Наприклад:
// Get a string resource from your app's Resources
String hello = getResources().getString(R.string.hello_world);
// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);
В інших файлах XML можете звернутися до рядкового ресурсу з синтаксисом @string/<string_name> щоразу, коли атрибут XML приймає рядкове значення.
Наприклад:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
(Джерело: developer.android.com)