Android - Localization
Fermé
Dadane02
Messages postés
304
Date d'inscription
lundi 22 décembre 2008
Statut
Membre
Dernière intervention
19 février 2016
-
Modifié par BunoCS le 19/01/2015 à 11:52
BunoCS Messages postés 15495 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 octobre 2024 - 20 janv. 2015 à 11:29
BunoCS Messages postés 15495 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 octobre 2024 - 20 janv. 2015 à 11:29
A voir également:
- Android - Localization
- Android - Guide
- Android recovery - Guide
- Jouer a pokemon sur android - Guide
- Voir mot de passe wifi android - Guide
- Mode sécurisé android - Guide
5 réponses
BunoCS
Messages postés
15495
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
23 octobre 2024
3 909
19 janv. 2015 à 11:51
19 janv. 2015 à 11:51
Hello,
Le fait d'avoir traduit le fichiers strings.xml en plusieurs permet automatiquement au système d'aller chercher la bonne langue suivant la configuration du système. Si tu veux "forcer la langue", c'est-à-dire si tu veux que l'utilisateur puisse avoir un affichage Français même avec un téléphone en Chinois, c'est différent. Je n'ai jamais codé un tel comportement mais tu dois avoir moyen de forcer la locale.
Regardes ici: https://stackoverflow.com/questions/2900023/change-app-language-programmatically-in-android
Le fait d'avoir traduit le fichiers strings.xml en plusieurs permet automatiquement au système d'aller chercher la bonne langue suivant la configuration du système. Si tu veux "forcer la langue", c'est-à-dire si tu veux que l'utilisateur puisse avoir un affichage Français même avec un téléphone en Chinois, c'est différent. Je n'ai jamais codé un tel comportement mais tu dois avoir moyen de forcer la locale.
Regardes ici: https://stackoverflow.com/questions/2900023/change-app-language-programmatically-in-android
Dadane02
Messages postés
304
Date d'inscription
lundi 22 décembre 2008
Statut
Membre
Dernière intervention
19 février 2016
103
19 janv. 2015 à 19:48
19 janv. 2015 à 19:48
Bah j'aimerai proposer à mon utilisateur par exemple 2 boutons, l'un pouvant passer l'application en Français, et l'autre en Anglais...
Je vais regarder ton lien !
Merci de ta réponse déjà !
Je vais regarder ton lien !
Merci de ta réponse déjà !
Dadane02
Messages postés
304
Date d'inscription
lundi 22 décembre 2008
Statut
Membre
Dernière intervention
19 février 2016
103
19 janv. 2015 à 20:01
19 janv. 2015 à 20:01
Je viens de vérifier le lien, et j'ai déjà avancé!
J'ai réussi au chargement, à passer d'anglais à français...
Déjà un grand pas, je vais mettre le sujet sur résolu, je pense pouvoir terminer seul.
Merci de ton lien ;-) !
J'ai réussi au chargement, à passer d'anglais à français...
Déjà un grand pas, je vais mettre le sujet sur résolu, je pense pouvoir terminer seul.
Merci de ton lien ;-) !
Dadane02
Messages postés
304
Date d'inscription
lundi 22 décembre 2008
Statut
Membre
Dernière intervention
19 février 2016
103
19 janv. 2015 à 20:14
19 janv. 2015 à 20:14
Hum, petite question...
J'utilise ce code
Avec un Listener sur mon bouton :
ça fonctionne pour passer d'Anglais (langage de base) à Français, mais l'inverse ne fonctionne pas.
Je précise que j'ai codé une fonction TraductionEng avec le même code sauf que comme identifiant je mets "en" au lieu de "fr"
Sais-tu pourquoi ?
Merci d'avance
J'utilise ce code
private void Traduction() {
String languageToLoad = "fr";
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
getBaseContext().getResources().getDisplayMetrics());
this.setContentView(R.layout.activity_main);
}
Avec un Listener sur mon bouton :
french.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Traduction();
}
});
ça fonctionne pour passer d'Anglais (langage de base) à Français, mais l'inverse ne fonctionne pas.
Je précise que j'ai codé une fonction TraductionEng avec le même code sauf que comme identifiant je mets "en" au lieu de "fr"
Sais-tu pourquoi ?
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
BunoCS
Messages postés
15495
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
23 octobre 2024
3 909
20 janv. 2015 à 11:29
20 janv. 2015 à 11:29
Il vaut mieux utiliser les constantes de Locale plutôt que de mettre une string
Je viens de tester le code suivant, sans souci:
Je viens de tester le code suivant, sans souci:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.buttonEn).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { changeLanguage(Locale.ENGLISH); } }); findViewById(R.id.buttonFr).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { changeLanguage(Locale.FRANCE); } }); } private void changeLanguage(Locale locale) { // change locale Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); // restart activity Intent intent = new Intent(MainActivity.this, MainActivity.class); startActivity(intent); finish(); } }