/// <summary> /// change la langue de l'application /// </summary> /// <param name="langue">la nouvelle langue à appliquer</param> public static void ChangeLangueAppli(LanguesStruct langue) { string langueTelephone = Windows.System.UserProfile.GlobalizationPreferences.Languages[0]; string langueAAppliquer = langue.diminutif; if (langueTelephone.Contains("-")) { if (langue.Equals(langueTelephone.Substring(0, langueTelephone.IndexOf('-')))) { langueAAppliquer = langueTelephone; } } Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = langueAAppliquer; }
/// <summary> /// retourne la langue en cours d'utilisation /// </summary> /// <returns>retourne la langue en cours d'utilisation</returns> public static LanguesStruct GetLangueEnCours() { var retour = new LanguesStruct(); //récupération de la langue si elle a déjà été modifié manuellement var langueEnCours = Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride; //si aucune déjà en place, recherche dans la liste des langues utilisé du téléphone pour la première qui correspond à celle dispo if (string.IsNullOrEmpty(langueEnCours)) { //ont parcours les langues du téléphone var fini = false; foreach (string langue in Windows.System.UserProfile.GlobalizationPreferences.Languages) { if (!fini) { string langueTmp = langue; //ont parcours les langues de l'appli (avec régionalisation) foreach (LanguesStruct l in listeLanguesDispo) { //si ont trouve, ont enregistre et ont arrete if (l.diminutif.Equals(langueTmp)) { langueEnCours = l.diminutif; fini = true; } } //si aucun résultat, ont recherche sans régionalisation if (langueTmp.Contains("-") && !fini) { langueTmp = langueTmp.Substring(0, langueTmp.IndexOf('-')); fini = false; //ont parcours les langues de l'appli (sasn régionalisation) foreach (LanguesStruct l in listeLanguesDispo) { //si ont trouve, ont enregistre et ont arrete if (l.diminutif.Equals(langueTmp)) { langueEnCours = l.diminutif; fini = true; } } } } if (fini) { break; } } } //recherche de la langue en cours dans la liste des structures (avec regionalisation) var dejatrouve = false; foreach (LanguesStruct l in listeLanguesDispo) { if (l.diminutif.ToUpper().Equals(langueEnCours.ToUpper())) { retour = l; dejatrouve = true; break; } } //(si aucun résultat ont supprime la régionalisation)petit traitement pour pouvoir le retrouver dans la structure if (langueEnCours.Contains("-") && !dejatrouve) { langueEnCours = langueEnCours.Substring(0, langueEnCours.IndexOf('-')); //recherche de la langue en cours dans la liste des structures (sans regionalisation) foreach (LanguesStruct l in listeLanguesDispo) { if (l.diminutif.Equals(langueEnCours)) { retour = l; break; } } } //si rien ne correspond c'est que par défaut c'est l'anglais if (retour.id == 0) { retour = listeLanguesDispo[0]; } return(retour); }