12 votes

Comment forcer la langue dans une application Android

Possible Duplicate:
Changer de localisation au sein de l'application elle-même

dans mon application, j'ai besoin de "forcer" la langue, disons que j'ai par défaut la localisation en anglais, polonais et finnois, selon ce post j'ai créé une fonction également postée ci-dessous, la fonction est appelée dans createActivity(), mais le problème est qu'elle ne fonctionne pas.... des idées pourquoi? Des suggestions?

private void setLocale(String localeCode){
        Locale locale = new Locale(localeCode);
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
    }

12voto

Sergii Rudchenko Points 2876

Voici ce que j'ai trouvé jusqu'à présent. Je sais que cette question est résolue, mais ma solution est plus facile et plus compacte. Aucun autre changement n'est nécessaire, pas d'attribut android:configurationChanges pour toutes les activités de votre manifeste.

public class SigmaMiddleEastApplication extends PPGApplication {

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        newConfig.locale = Locale.ENGLISH;
        super.onConfigurationChanged(newConfig);

        Locale.setDefault(newConfig.locale);
        getBaseContext().getResources().updateConfiguration(newConfig, getResources().getDisplayMetrics());
    }
}

ATTENTION cela peut causer des problèmes: Qu'est-ce qui pourrait causer à une activité Android de se relancer indéfiniment lors du retour de l'appareil photo ?

3voto

Sunil Kumar Sahoo Points 21032

Ajoutez les éléments suivants dans le manifeste (pour chaque activité) :

android:configChanges="locale"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X