2014-05-23 16 views
6

Ich habe eine App in zwei Sprachen erstellt. Der zweite (englisch) wird verwendet, wenn die Systemsprache des Benutzers Englisch ist. Ist dies nicht der Fall, wird der erste verwendet.Wie stelle ich die Standardsprache für die Android App ein?

Ich möchte die zweite Sprache (das ist Englisch) als DEFAULT Sprache, , was bedeutet, dass, wenn Benutzer meine App öffnet und seine Systemsprache ist nicht die erste, noch Englisch, die englische Sprache wird als Standard angezeigt ein.

Ich habe versucht:

Locale locale = new Locale("en_US"); 
    Locale.setDefault(locale); 
    Configuration config = new Configuration(); 
    config.locale = locale; 
    context.getApplicationContext.getResources().updateConfiguration(config, null); 

aber erhielt Fehler jedes Mal „Kontext nicht aufgelöst werden kann“ .. Ist das Stück Code richtig oder ..?

+3

Das sollte nicht nötig sein. Alle Ressourcen, die Sie in einen "Basis" -Ordner stellen (z. B. Werte gegen Werte-Es), werden verwendet, wenn die Sprache nicht mit einer der bereitgestellten Alternativen übereinstimmt. – matiash

Antwort

0

Sie sollten alle Sprachen definieren, die Sie unterstützen, indem Sie res-Ordner verwenden, d. H. res/values, res/values-en, res/values-fr. Das System kümmert sich um alles andere, Sie brauchen keinen Code.

0

Wenn Sie in einer Aktivität sind, können Sie tun:

this.getApplicationContext().getResources().updateConfiguration(config, null);

... Ihre Fehler zu beheben. Andernfalls müssen Sie den Kontext übergeben.

Stellen Sie sicher, dass Sie die Klammer am Ende von getApplicationContext() hinzufügen. Du hast das nicht in deinem Code getan.

4

Okay,

, um alles klar zu machen, Ich erkennen res/values ein Standard-Verzeichnis ist und die andere sind nur „im Fall der Sprache“. Alles, was ich tun musste, war, das Englisch auf/res/Werte umzustellen und die andere Sprache geht auf res/values-es

Verwandte Themen