Добрый день! Представляю вашему вниманию вольный перевод статьи от GDE (эксперт-разработчик Google) Дмитрий Данилик .
Собственно, вот оно оригинальный .
В статье описаны правильные подходы к работе со strings.xml и она будет особенно полезна разработчикам, разрабатывающим многоязычные приложения.
Пожалуйста под кат. Эта статья посвящена такой тривиальной вещи Android, как string.xml.
Не используйте повторно
Не используйте строки повторно на разных экранах.Предположим, у вас есть диалог загрузки Войти или Зарегистрироваться экран.
Поскольку на обоих экранах есть диалог загрузки, вы решаете использовать одни и те же строки — R.строка.
загрузка .
res/values/strings.xml. Позже, если вы решите использовать разные строки, вам нужно будет создать две разные строки и изменить их непосредственно в классах .
java. Если вы используете разные строки с самого начала, вам нужно будет только изменить строки.
xml файл.
res/values/strings.xml Вы никогда не будете знать заранее, поддержку и перевод какого языка вы добавите.
Все дело в контексте: в одном языке вы можете использовать одно и то же слово в одном контексте, а в другом это слово не подойдет по смыслу.
res/values/strings.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 .
Делиться
Разделяйте строки, принадлежащие одному экрану, с помощью префиксов и комментариев.
res/values/strings.xml
- Добавьте префикс имени экрана в каждую строку, чтобы было легче понять, к какому экрану принадлежит этот ресурс.
- Чистый строка.
xml Файл поможет вам довольно легко поддерживать и переводить разные языки — экран за экраном.
Создание разных строк.Если хочешь, можешь создать строка.xml для каждого экрана
xml файл для каждого экрана - настройки-strings.xml, профиль-strings.xml .
Но обычно в приложении около 10-20 экранов, поэтому вам нужно иметь 10-20 строка.
xml файлы в каждой языковой папке.
Я думаю, это будет беспорядок.
Форматирование
Используйте Resources#getString(int id, Object… formatArgs) для форматирования строк.Никогда не делайте конкатенацию через + оператор, поскольку порядок слов в других языках может отличаться.
res/values/strings.xml
Java-код Правильный способ — использовать Resources#getString(int id, Object… formatArgs) .
res/values/strings.xml
res/values-UA/strings.xml
Java-код
Множественное число
Используйте Resources#getQuantityString(int id, int Quantity) для строк количества.Не решайте проблемы с множественным числом в Java-коде, поскольку в разных языках действуют разные правила согласования множественного числа.
res/values/strings.xml
Java-код Правильный способ — использовать Resources#getQuantityString(int id, int количество)
res/values/strings.xml
Java-код
Выделение слов
Используйте HTML-текст, чтобы выделить статические словаЕсли вы хотите изменить цвет некоторых слов в TextView – Передний планЦветДиапазон не всегда лучший вариант, поскольку подсветка осуществляется через индекс, а это небезопасно в многоязычном приложении.
Лучше использовать HTML-теги цвета шрифта внутри вашего файла strings.xml. Предположим, у вас есть текст «Открывайте для себя игры и играйте в них».
и вы хотите выделить слово «Открыть» и слово «Играть» синим цветом.
res/values/strings.xml
Java-код
Теги: #Android #разработка для Android #разработка приложений для Android #Разработка мобильных приложений #Разработка для Android
-
Играем В Pacman На Нашей Любимой Улице
19 Oct, 24 -
5 Мифов О Позитивном Психическом Настрое
19 Oct, 24 -
О Блокчейн-Оракулах И Немного О Web3
19 Oct, 24 -
Sap Сдм. 6 Букв — Много Хлопот
19 Oct, 24