16 Stimmen

Wie erkennt man, ob die Sprache Englisch (alle Varianten) auf Android ist?

Ich möchte eine Schaltfläche nur für englische Benutzer anzeigen. Gibt es eine Möglichkeit, die Spracheinstellungen zu erkennen?

Ich weiß, wie man die aktuelle Locale aber ich weiß nicht, ob der Vergleich mit Locale.English reicht aus, da es sicher viele englische Varianten gibt usw.

Hat jemand Erfahrung mit dieser Methode?

28voto

kabuko Punkte 35597

Von der Locale docs :

Bei den Sprachcodes handelt es sich um zweistellige ISO-Sprachcodes in Kleinbuchstaben (z. B. "en"), wie sie in ISO 639-1 definiert sind. Die Ländercodes sind zweibuchstabige ISO-Ländercodes in Großbuchstaben (z. B. "US"), wie sie in ISO 3166-1 definiert sind.

Dies bedeutet, dass

Locale.getDefault().getLanguage().equals("en")

sollte sein true . Ich wäre vorsichtig mit dem standardmäßigen Ausblenden/Einblenden der Benutzeroberfläche Locale obwohl. In vielen Ländern gibt es viele Nutzer, die eine andere Sprache bevorzugen, aber fließend Englisch sprechen.

15voto

Sunil Kumar Sahoo Punkte 51391
Locale.getDefault().getDisplayLanguage() will give your default language of your device

System.out.println("My locale::"+Locale.getDefault().getDisplayLanguage());

Ergebnis

Mein Gebietsschema::Englisch

5voto

blizzard Punkte 5245

Wie wäre es, die Funktion startsWith() von Java zu verwenden, um zu prüfen, ob das aktuelle Gebietsschema eine englische Variante ist oder nicht?

Locale.getDefault().getLanguage().startsWith("en")

2voto

Philip Sheard Punkte 5731

Eine alternative Lösung wäre die Erstellung einer lokalisierten englischen Version des Formulars. Siehe http://developer.Android.com/guide/topics/resources/localization.html für Einzelheiten.

2voto

Pascalius Punkte 12484

Der richtige Weg ist wahrscheinlich:

boolean def_english = Locale.getDefault().getISO3Language().equals(Locale.ENGLISH.getISO3Language());

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X