Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        /// <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);
        }