2017-01-26 8 views
0

Мне нужно найти, сколько string.xml языка присутствует в моем приложении во время выполнения. Пример: у меня есть string.xml для en, zh, fr .. и теперь мой сервер отправляет мне язык типа hi, тогда я должен проверить, присутствует ли hi в папке значений или нет ???Как найти, сколько string.xml языка присутствует в моем приложении

Заранее спасибо.

+0

Что вы хотите сделать в зависимости от сервера отправляет? И как это важно, если у вас есть или нет переводов? –

+0

[Этот вопрос] (http://stackoverflow.com/a/1495767/515948) должен позволить вам начать, если файлы находятся в вашем пути к ресурсам. –

+0

Если вы знаете XPath, вы можете загрузить XML и запросить его, в результате чего появится NodeList. Если вы можете вставить части xml здесь, мы можем собрать запрос XPath для вас. –

ответ

0

Поскольку ваши строки могут быть в файле, кроме string.xml, вот более надежный способ сделать это:

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

DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    Configuration configuration = new Configuration(getResources().getConfiguration()); 

    configuration.locale = new Locale(""); // default locale 
    Resources resources = new Resources(getAssets(), metrics, configuration); 
    String defaultStr = resources.getString(R.string.hello); // default string 

    // lang is the two-character language code, e.g. "zh", "hi" 

    configuration.locale = new Locale(lang); 
    resources = new Resources(getAssets(), metrics, configuration); 
    String testStr = resources.getString(R.string.hello); 
    boolean supported = !defaultStr.equals(testStr); 
    Log.d(TAG, lang + " is " + (supported ? "" : "not ") + "supported"); 

Обратите внимание, что Configuration.locale является устаревшим, так как Нуга. См. Документы для обновления.

 Смежные вопросы

  • Нет связанных вопросов^_^