Android String.xml – Несколько Вещей, Которые Следует Запомнить

Добрый день! Представляю вашему вниманию вольный перевод статьи от GDE (эксперт-разработчик Google) Дмитрий Данилик .

Собственно, вот оно оригинальный .

В статье описаны правильные подходы к работе со strings.xml и она будет особенно полезна разработчикам, разрабатывающим многоязычные приложения.

Пожалуйста под кат. Эта статья посвящена такой тривиальной вещи Android, как string.xml.



Не используйте повторно

Не используйте строки повторно на разных экранах.

Предположим, у вас есть диалог загрузки Войти или Зарегистрироваться экран.

Поскольку на обоих экранах есть диалог загрузки, вы решаете использовать одни и те же строки — R.строка.

загрузка .



Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml. Позже, если вы решите использовать разные строки, вам нужно будет создать две разные строки и изменить их непосредственно в классах .

java. Если вы используете разные строки с самого начала, вам нужно будет только изменить строки.

xml файл.



Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml Вы никогда не будете знать заранее, поддержку и перевод какого языка вы добавите.

Все дело в контексте: в одном языке вы можете использовать одно и то же слово в одном контексте, а в другом это слово не подойдет по смыслу.



Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml

Android string.xml – несколько вещей, которые следует запомнить

res/values-UA/strings.xml Обратите внимание, что в данном случае английская версия строки.

xml использует одно и то же слово – «Да» в обоих случаях R.string.download_file_yes И R.string.terms_of_use_yes строки .

Но в украинской версии файла strings.xml используются 2 разных слова – «Гаразд» для обозначения R.string.download_file_yes и «Итак» для R.string.terms_of_use_yes .



Делиться

Разделяйте строки, принадлежащие одному экрану, с помощью префиксов и комментариев.



Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml
  1. Добавьте префикс имени экрана в каждую строку, чтобы было легче понять, к какому экрану принадлежит этот ресурс.

  2. Чистый строка.

    xml Файл поможет вам довольно легко поддерживать и переводить разные языки — экран за экраном.

Создание разных строк.

xml для каждого экрана

Если хочешь, можешь создать строка.

xml файл для каждого экрана - настройки-strings.xml, профиль-strings.xml .

Но обычно в приложении около 10-20 экранов, поэтому вам нужно иметь 10-20 строка.

xml файлы в каждой языковой папке.

Я думаю, это будет беспорядок.



Форматирование

Используйте Resources#getString(int id, Object… formatArgs) для форматирования строк.

Никогда не делайте конкатенацию через + оператор, поскольку порядок слов в других языках может отличаться.



Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml

Android string.xml – несколько вещей, которые следует запомнить

Java-код Правильный способ — использовать Resources#getString(int id, Object… formatArgs) .



Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml

Android string.xml – несколько вещей, которые следует запомнить

res/values-UA/strings.xml

Android string.xml – несколько вещей, которые следует запомнить

Java-код

Множественное число

Используйте Resources#getQuantityString(int id, int Quantity) для строк количества.

Не решайте проблемы с множественным числом в Java-коде, поскольку в разных языках действуют разные правила согласования множественного числа.



Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml

Android string.xml – несколько вещей, которые следует запомнить

Java-код Правильный способ — использовать Resources#getQuantityString(int id, int количество)

Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml

Android string.xml – несколько вещей, которые следует запомнить

Java-код

Выделение слов

Используйте HTML-текст, чтобы выделить статические слова
Если вы хотите изменить цвет некоторых слов в TextView – Передний планЦветДиапазон не всегда лучший вариант, поскольку подсветка осуществляется через индекс, а это небезопасно в многоязычном приложении.

Лучше использовать HTML-теги цвета шрифта внутри вашего файла strings.xml. Предположим, у вас есть текст «Открывайте для себя игры и играйте в них».

и вы хотите выделить слово «Открыть» и слово «Играть» синим цветом.



Android string.xml – несколько вещей, которые следует запомнить

res/values/strings.xml

Android string.xml – несколько вещей, которые следует запомнить

Java-код Теги: #Android #разработка для Android #разработка приложений для Android #Разработка мобильных приложений #Разработка для Android

Вместе с данным постом часто просматривают: