#android #locale #directory
#Android #локаль #каталог
Вопрос:
Интересно, есть ли способ считывать значения локали из всех существующих каталогов значений.
Допустим, у меня есть следующие каталоги в моем res-каталоге
[…] значения values-de values-nl […]
Теперь мне нужен способ вернуть информацию о том, что для значений каталога существует язык de и nl.
Есть ли какой-либо способ, если да, то как?
Любая помощь будет оценена.
С уважением,
Кристиан
Ответ №1:
Ну, в идеале, ваше приложение не знает и не заботится о том, какие наборы ресурсов у вас есть. В конце концов, в этом весь смысл наборов ресурсов — изолировать ваше приложение от изменений в ресурсах.
При этом одна из возможностей заключается в написании сценария, являющегося частью вашего процесса сборки, который генерирует файл с запрошенными вами данными (например, XML-файл, содержащий список наборов ресурсов), который вы затем считываете во время выполнения.
Или сделайте так, чтобы в каждом наборе было «волшебное значение». Например, в res/values-de/strings.xml
у вас может быть lang_de
строка, а в res/values-nl/strings.xml
у вас может быть lang_nl
строка. Затем вы можете использовать отражение для перебора ваших строковых ресурсов и поиска тех, которые соответствуют lang_
шаблону. Это может быть значительно медленнее, чем первый вариант, особенно если у вас много строковых ресурсов.
Я не знаю способа запросить систему, чтобы выяснить, какие наборы ресурсов определены.