OUVRIR VOTRE SITE DANS LA LANGUE DU NAVIGATEUR DU CLIENT

Signaler
Messages postés
15
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
7 février 2013
-
Messages postés
3
Date d'inscription
dimanche 21 décembre 2003
Statut
Membre
Dernière intervention
25 avril 2004
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21937-ouvrir-votre-site-dans-la-langue-du-navigateur-du-client

Messages postés
3
Date d'inscription
dimanche 21 décembre 2003
Statut
Membre
Dernière intervention
25 avril 2004

Oui comme ça ça fonctionne mais il y a encore des erreurs car par exemple l'asp.net ne prend pas en charge les code composé comme FR-BE pour français Belgique...

Il suffit de garder les 2 premières lettres. Sinon ici j'utilise une variable session qui sauvegarde la langue jusqu'à une nouvelle requête...
J'ai donc réglé le problème complètement et le code C# ci-dessous fonctionne sans problème avec je pense toute les erreurs qu'il y a moyen :

if(Session["chosenlang"]== null || Request.Params["lang"]!= null )
{
if( Request.Params["lang"]!= null)
{
//session variable holds data for 20 minutes after the last request to an application to a particular user
Session["chosenlang"]=Request.Params["lang"];
}
else
{

// For each request initialize the culture values with
// the user language as specified by the browser.
if (Request.UserLanguages != null)
{
try
{
CultureInfo browserlanguage1 = new CultureInfo(Request.UserLanguages[0].Substring(0,2));
switch (browserlanguage1.TwoLetterISOLanguageName)
{
case "fr" :
Session["chosenlang"]="fr";
break;
case "en" :
Session["chosenlang"]="en";
break;
case "es" :
Session["chosenlang"]="es";
break;
case "nl" :
Session["chosenlang"]="nl";
break;
default :
try
{
CultureInfo browserlanguage2 = new CultureInfo(Request.UserLanguages[1].Substring(0,2));
if (Request.UserLanguages[1] != null)
{

switch (browserlanguage2.TwoLetterISOLanguageName)
{
case "fr" :
Session["chosenlang"]="fr";
break;
case "en" :
Session["chosenlang"]="en";
break;
case "es" :
Session["chosenlang"]="es";
break;
case "nl" :
Session["chosenlang"]="nl";
break;
default :
Session["chosenlang"]="en";
break;
}
}else Session["chosenlang"]="en";

}
catch(Exception err)
{
Session["chosenlang"]="en";
}

break;
}
}
catch (Exception err)
{
Session["chosenlang"]="en";
}
}
else
// Default to English if there are no user languages
Session["chosenlang"]="en";
}
}

Merci pour tous tes post...

MrFlo
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Merci pour l'info j'avais pas pensé à ce genre de problème je viens de rajouter une gestion d'erreur grace à des blocs try

pour ton code en C# je connais pas assez ce langage pour te dire comment faire mais ca doit pas etre compliqué :)
Messages postés
3
Date d'inscription
dimanche 21 décembre 2003
Statut
Membre
Dernière intervention
25 avril 2004

J'ai testé ce code avec C# mais il génère des erreurs...
Si l'utilisateur n'a pas configuré de langue par exemple... erreur fatale ou si il n'y a qu'une langue... Ton code accède alors à une cellule d'un tableau qui n'existe pas...

Mais ce code m'interesse si quelqun à une idée pour gérer les erreurs voici le mien en C#:

CultureInfo browserlanguage1 = new CultureInfo(Request.UserLanguages[0]);
CultureInfo browserlanguage2 = new CultureInfo(Request.UserLanguages[1]);
switch (browserlanguage1.EnglishName)
{
case "French" :
Session["chosenlang"]="fr";
break;
case "English" :
Session["chosenlang"]="en";
break;
case "Spanish" :
Session["chosenlang"]="sp";
break;
case "Dutch" :
Session["chosenlang"]="nl";
break;
default :

switch (browserlanguage2.EnglishName)
{
case "French" :
Session["chosenlang"]="fr";
break;
case "English" :
Session["chosenlang"]="en";
break;
case "Spanish" :
Session["chosenlang"]="sp";
break;
case "Dutch" :
Session["chosenlang"]="nl";
break;
default :
Session["chosenlang"]="en";
break;
}

break;
}
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Je ne pense pas qu'il fonctionne en asp(3) mais il doit exister un equivalent ....
Messages postés
15
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
7 février 2013

Ce code a l'air très pratique. Mais est-ce qu'il fonctionne en ASP ?