Holen Sie sich den englischen Ländernamen aus dem Ländercode

Lesezeit: 3 Minuten

Benutzeravatar von noloman
Noloman

Ich müsste den vollständigen Ländernamen aus der Ländervorwahl erhalten. Zum Beispiel für die Niederlande bräuchte ich the Netherlands aus dem Ländercode NL.

Ich dachte, ich könnte das mit machen Locale wie:

Locale loc = new Locale("NL");
loc.getCountry();

Aber loc.getCountry(); ist leer.

Wie kann ich das machen?

  • Sie können die Ländercode-ISO vom Gerät erhalten, überprüfen Sie dies getNetworkCountryIso()

    – Junid

    11. Januar 2013 um 10:14 Uhr

  • Ich bin mir nicht sicher, aber Sie können loc.getDisplayCountry() verwenden

    – MysticMagicϡ

    11. Januar 2013 um 10:17 Uhr


  • @ShreyaShah genau, es funktioniert so!

    – Nolomann

    11. Januar 2013 um 10:21 Uhr

Benutzeravatar von Rahul Baradia
Rahul Baradia

Versuchen Sie es so

Locale loc = new Locale("","NL");
loc.getDisplayCountry();

  • Die obige Single-Param-Version des Locale-Konstruktors verwendet den ersten Parameter als Sprache und nicht als Ländercode. Dies hat in meinem Fall nicht funktioniert. Es sollte ungefähr so ​​sein, wenn der Ländercode verwendet werden muss. Locale loc = new Locale(“”, “NL”);

    – Rajat Sharma

    10. Oktober 2013 um 10:35 Uhr


  • Das hat bei mir funktioniert, ich habe nur viel Zeit damit verschwendet, darüber nachzudenken, was mit Local (OneParam) schief läuft … mein Fehler, ich habe die Dokumentation nicht überprüft … aber danke fürs Teilen

    – anoop4real

    29. November 2017 um 6:16 Uhr

Das sollte funktionieren:

Locale l = new Locale("", "NL");
String country = l.getDisplayCountry();

Der erste Parameter von Locale ist die Sprache, die in Ihrem Fall nicht nützlich ist.

  • Wenn ich das mache, wird es abgerufen NList also nicht gültig

    – Nolomann

    11. Januar 2013 um 10:19 Uhr

Benutzeravatar von Sun Jiao
Sonne Jiao

Ich möchte den obigen Antworten weitere Informationen hinzufügen.

Wenn Sie die Sprache für Ergebnisse angeben möchten, können Sie verwenden Locale("your language") als Parameter von getDisplayCountry().

Zum Beispiel:

(new Locale("","NL")).getDisplayCountry(new Locale("ZH"));

„ZH“ ist der Sprachcode des Chinesischen. Sie erhalten “荷兰”, was der chinesische Name der Niederlande ist.

Und Sie können verwenden Locale("languages", "ISO-3166 code") um Ihre Sprachvariante anzugeben.

Zum Beispiel:

(new Locale("","NL")).getDisplayCountry(new Locale("ZH", "TW"));

Locale("ZH", "TW") bedeutet in Taiwan die Variante des Chinesischen (traditionelles Chinesisch). Es hat viele Unterschiede zur chinesischen Festlandvariante.

Sie erhalten “荷蘭”, den traditionellen chinesischen Namen der Niederlande.

(Auch wenn Sie kein Chinesisch verstehen, ich denke, es ist offensichtlich, dass das zweite chinesische Zeichen in den beiden Namen unterschiedlich ist.)

Wenn Sie keine Sprache angeben, erhalten Sie den Namen Niederlande in der Anzeigesprache des Geräts, die in den Telefoneinstellungen geändert werden kann. Der Code lautet:

(new Locale("","NL")).getDisplayCountry();

Eine Liste aller von Android unterstützten Sprachen und Varianten erhalten Sie in dieser Frage:

Wenn Sie Kotlin verwenden:

Locale("", "NL").getDisplayCountry(Locale("ZH"))
Locale("", "NL").getDisplayCountry(Locale("ZH", "TW"))
Locale("", "NL").displayCountry

Versuchen Sie, den anderen Konstruktor zu verwenden

Locale loc = new Locale("NL", "The Netherlands");

Gebietsschema
Es scheint kein vordefiniertes Gebietsschema für zu geben The Netherlands

Benutzeravatar von Odaym
Odaym

für eine vollständige Lösung TelephonyManager (aus dieser Lösung):

TelephonyManager teleMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String localeCountry = teleMgr.getNetworkCountryIso();
if (localeCountry != null) {
    Locale loc = new Locale("",localeCountry);
    Log.d(TAG, "User is from " + loc);
}

  • Dies gibt die aktuelle Geräte-ISO zurück. Darum geht es in der Frage nicht.

    – Chad Bingham

    28. Dezember 2018 um 0:19 Uhr

  • Dies gibt die aktuelle Geräte-ISO zurück. Darum geht es in der Frage nicht.

    – Chad Bingham

    28. Dezember 2018 um 0:19 Uhr

1442900cookie-checkHolen Sie sich den englischen Ländernamen aus dem Ländercode

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy