Получите, для каких локалей есть собственная папка значений

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

Есть ли способ узнать, какие языковые стандарты поддерживаются (иметь собственную папку значений)?

Пока у меня есть:

String [] languages ​​= getResources (). GetAssets (). GetLocales ();

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


person Heigo    schedule 26.08.2013    source источник


Ответы (2)


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

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

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

person Muhammad Omer    schedule 26.08.2013
comment
Итак, вы хотите изменить язык приложения, когда языковой стандарт устройства изменен из настроек ?? я прав ?? - person Muhammad Omer; 26.08.2013
comment
Нет, изменение языка приложения в системных настройках работает нормально. Я хочу разрешить пользователю перезаписывать язык из приложения. - person Heigo; 26.08.2013
comment
Невозможно понять ваше требование, чтобы пользователь мог перезаписать язык из приложения, разве это не означает, что вы спрашиваете пользователя, какой язык показывать? - person Muhammad Omer; 26.08.2013
comment
Правильно, я хочу, чтобы пользователь мог выбирать язык из приложения, а не из настроек Android. - person Heigo; 26.08.2013
comment
тогда единственный способ - позволить пользователю дать что-то, чтобы выбрать, какой язык он хочет выбрать, я прав ?? - person Muhammad Omer; 26.08.2013

Закодируйте это жестко.

Или напишите сценарий, который генерирует фрагмент кода Java на основе того, что находится в вашем res/values/ каталоге, и интегрируйте этот сценарий в процесс сборки. Это может быть проще с новой системой сборки на основе Gradle, поскольку она приближается к статусу выпуска.

person CommonsWare    schedule 26.08.2013