Поскольку ваши строки могут быть в файле, кроме 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
является устаревшим, так как Нуга. См. Документы для обновления.
Что вы хотите сделать в зависимости от сервера отправляет? И как это важно, если у вас есть или нет переводов? –
[Этот вопрос] (http://stackoverflow.com/a/1495767/515948) должен позволить вам начать, если файлы находятся в вашем пути к ресурсам. –
Если вы знаете XPath, вы можете загрузить XML и запросить его, в результате чего появится NodeList. Если вы можете вставить части xml здесь, мы можем собрать запрос XPath для вас. –