ロケールタグ(画像参照)を表示名に変換しようとしています。たとえば、en-usではなく、英語(米国)を表示したいと考えています。これまでのところ、私は絵のように表示名と言語タグの混合物を得るために管理している:Javaロケールタグをロケール表示名
device system languages screen picture
私はそのようなforLanguageTag、getDisplayLanguage + getDisplayCountry何も作品を使用するなど、多くのことを試してみました。
これは私のコードスニペットです:
public void getAvailableLocales() {
systemLanguages = Resources.getSystem().getAssets().getLocales();
Arrays.sort(systemLanguages);
for (int i = 0; i < systemLanguages.length; i++) {
String sL = systemLanguages[i];
Locale loc = new Locale(sL);
String locDisplayResults = loc.getDisplayLanguage();
languagesList.add(new Languages(locDisplayResults));
recyclerAdapter.notifyDataSetChanged();
}
}
アイデアが与えられたデバイス上で使用可能なすべての言語を表示することです。 喜んでお寄せいただきありがとうございます。
編集:テストでは、Resources.getSystem()。getAssets()。getLocales()は、が実際に各特定のデバイスで使用可能な言語を提供することを示しています。しかし、getDisplayLanguageは、2文字のアルファベットではなく、2文字のアルファベット(アルファベットなど)でしか動作しません。これ以上のアイデアは?
を試してみてください:[。代わりに、新しいロケール(SL)を使用しての、Locale.forLanguageTag(SL)を使用します](http://stackoverflow.com/questions/40427876/convert- da-dk-to-danish-denmark-etc)それは完全に働いた。 –