Warum Locale.getDefault().getLanguage() in Android Rückkehr der Anzeigename statt der language-code?
Entsprechend der Java-Referenz Gebietsschema.getLanguage() soll die Rückkehr der 2-Buchstaben klein ISO-code der Sprache (z.B. "de"), während getDisplayLanguage() ist die Methode für den Erhalt der lesbaren Namen (z.B. "Englisch").
Also, wie kommt es, dass der folgende code in Android:
Locale.getDefault().getLanguage()
zurück "Englisch" oder "Español" statt "en" und "es"????
Ich bin völlig ratlos...
InformationsquelleAutor der Frage matteo | 2012-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
und es wird gut funktionieren, auch wenn ich denken würde, Ihr Verhalten beobachtet einen Fehler zu verzeichnen..
InformationsquelleAutor der Antwort Manfred Moser
Habe ich es herausgefunden. Dies geschah, weil ich vorher genannt Locale.setDefault() und übergeben es einem Gebietsschema, die wiederum die ich erstellt hatte, durch die fälschlicherweise der übergabe der ganze name der Sprache (ich habe die Sprache von einer Einstellung und ich irrtümlich nahm das label des Eintrags und nicht den Wert).
Ist, ich habe:
Also, wenn ich abgefragt, für die Standard-locale, es war eigentlich die locale, die ich erstellt hatte, deren Sprache code hatte ich fälschlicherweise auf "Englisch".
Gibt es ein paar lustige Dinge, aber:
InformationsquelleAutor der Antwort matteo
Ich weiß nicht, warum dieses Problem Auftritt, aber ein weiterer standard für die Sprachen ist der ISO3-code.
Sie können rufen Sie
Locale.getDefault().getISO3Language()
und sollte es wieder "eng" oder "esp".InformationsquelleAutor der Antwort Stephan
Android ist wieder in die lesbare Namen anstelle des codes.
Locale.getDefault() den string. Also, wenn Sie Sie aufrufen, ausdrucken oder sich Anmeldet, dass es dann funktioniert...
Bedeutung Locale.getDefault().toString() hat Ihre locale-code.
InformationsquelleAutor der Antwort RCB