2014-05-23 3 views
6

J'ai créé une application en deux langues. Le second (anglais) est utilisé lorsque la langue par défaut de l'utilisateur est l'anglais. Si ce n'est pas le cas, le premier est utilisé. Je veux définir la langue seconde (l'anglais) comme une langue par défaut, , ce qui signifie que lorsque l'utilisateur ouvre mon application et que sa langue système n'est pas la première, ni l'anglais, la langue anglaise apparaîtra par défaut un.Comment définir la langue par défaut pour l'application Android?

J'ai essayé:

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

mais nous avons eu « contexte ne peut pas être résolu » erreur à chaque fois .. Est-ce morceau de code ou de droite ..?

+3

Vous ne devriez pas avoir besoin de faire cela. Quelles que soient les ressources que vous mettez dans un dossier "base" (par exemple valeurs vs valeurs-es) seront utilisées lorsque la langue ne correspond à aucune des alternatives fournies. – matiash

Répondre

0

Vous devez définir toutes les langues que vous prenez en charge à l'aide des dossiers res, par exemple res/values, res/values-en, res/values-fr. Le système prendra soin de tout le reste, vous n'avez besoin d'aucun code.

0

Si vous êtes dans une activité que vous pouvez faire:

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

... pour corriger votre erreur. Sinon, vous devez passer dans le contexte.

Assurez-vous d'avoir ajouté la parenthèse à la fin de getApplicationContext(). Vous ne l'avez pas fait dans votre code.

4

D'accord,

à tout faire clair, je réalisé res/values est un répertoire DEFAULT et les autres ne sont que « dans le cas de la langue ». Donc, tout ce que je devais faire était de passer l'anglais à/res/valeurs et l'autre langue va à res/values-es

Questions connexes