begin process at 2010 03 15 09:49:33
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ASP.Net

 > OUVRIR VOTRE SITE DANS LA LANGUE DU NAVIGATEUR DU CLIENT

OUVRIR VOTRE SITE DANS LA LANGUE DU NAVIGATEUR DU CLIENT


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ASP.Net Source .NET ( DotNet ) Niveau :Débutant Date de création :14/04/2004 Date de mise à jour :25/04/2004 18:34:26 Vu :9 646

Auteur : jesusonline

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note


 Description

Une astuce toute simple qui permet automatiquement d'ouvrir votre site dans la langue du client.

Il faut dans mon exemple, mettre le code dans la page de demarrage (www.monsite.com/fr/default.aspx) à la racine du site www.monsite.com et mettre le site francais dans le sous dossier fr (www.monsite.com/fr/) et l'anglais dans le sous dossier en dans ses sous dossiers il faut bien sur avoir une page qui s'appelle Accueil.aspx


pour Changer la lange du navigateur et ainsi tester le code, dans IE OUtils>Options Internet>Langue
Vous voyez qu'il y a la possibilité de mettre plusieur langue dans un certains ordre

Ainsi avec mon code, si le navigateur est configuré en allemand comme langue principal et anglais comme langue secondaire, il va etre redirigé vers le site en anglais grace au deuxieme bloc select

Request.UserLanguages(0) recupere la premiere langue et
Request.UserLanguages(1) la deuxieme est ainsi de suite ...


Si toutefois, le code ne peut pas rediriger le navigateur, la page s'affichera, il faudra faire une page avec les liens et les navigateurs, (ce qui est grandement conseillé pour les moteurs de recherches ..)


Pour finir, je vous met ici : la liste des principaux EnglishName (non traduit en francais ...) attention à la casse

Czech
Danish
German
Greek
English
Spanish
Finnis h
French

Source

  • Try
  • Select Case New CultureInfo(Request.UserLanguages(0)).EnglishName
  • Case "French"
  • Response.Redirect("fr/Accueil.aspx")
  • Case "English"
  • Response.Redirect("en/Accueil.aspx")
  • Case Else
  • Try
  • Select Case New CultureInfo(Request.UserLanguages(1)).EnglishName
  • Case "French"
  • Response.Redirect("fr/Accueil.aspx")
  • Case "English"
  • Response.Redirect("en/Accueil.aspx")
  • End Select
  • Catch ex As Exception
  • 'Soit on met rien et il n'y aura
  • 'pas de redirection et c'est à l'utilisateur
  • 'de choisir sa langue grace à la page sur lequel est ce script
  • 'Soit on redirige
  • 'Response.Redirect("fr/Accueil.aspx")
  • End Try
  • End Select
  • Catch ex As Exception
  • 'Soit on met rien et il n'y aura
  • 'pas de redirection et c'est à l'utilisateur
  • 'de choisir sa langue grace à la page sur lequel est ce script
  • 'Soit on redirige
  • 'Response.Redirect("fr/Accueil.aspx")
  • End Try
           Try

            Select Case New CultureInfo(Request.UserLanguages(0)).EnglishName
                Case "French"
                    Response.Redirect("fr/Accueil.aspx")

                Case "English"
                    Response.Redirect("en/Accueil.aspx")

                Case Else

                    Try

                        Select Case New CultureInfo(Request.UserLanguages(1)).EnglishName
                            Case "French"
                                Response.Redirect("fr/Accueil.aspx")

                            Case "English"
                                Response.Redirect("en/Accueil.aspx")
                        End Select

                    Catch ex As Exception
                        'Soit on met rien et il n'y aura 
                        'pas de redirection et c'est à l'utilisateur
                        'de choisir sa langue grace à la page sur lequel est ce script
                        'Soit on redirige
                        'Response.Redirect("fr/Accueil.aspx")
                    End Try

            End Select

        Catch ex As Exception
            'Soit on met rien et il n'y aura 
            'pas de redirection et c'est à l'utilisateur
            'de choisir sa langue grace à la page sur lequel est ce script
            'Soit on redirige
            'Response.Redirect("fr/Accueil.aspx")
        End Try

 Conclusion

Si vous avez des commentaires n'hésitez pas

J'ai rajouté une gestion d'erreur au cas ou l'utilisateur n'aurait pas de langue ou de deuxieme langue par défaut


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) UTILISATION DE LA MÉTHODE SORT ET SORTDIRECTION AVEC UN GRID...
Source .NET (Dotnet) RESPONSE.FILTER : MANIPULATION DU STREAM DE SORTIE ASP.NET
Source avec Zip Source .NET (Dotnet) OPTIMISATION DE LA SERIALISATION JSON POUR LES LIST<T>
Source avec Zip Source .NET (Dotnet) CRAWLABLELINKBUTTON : UPDATEPANEL ET RÉFÉRENCEMENT
Source .NET (Dotnet) POSTBACKCONTROL - COMMUNICATION CLIENT/SERVEUR AVEC LES UPDA...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) UTILISATION DE LA MÉTHODE SORT ET SORTDIRECTION AVEC UN GRID... par jesusonline
Source avec Zip Source .NET (Dotnet) CUSTOM DATEPIKER DÉRIVANT DE COMPOSITECONTROL par fredzool
Source avec Zip UN MODULE POUR APPRENDRE SQL par Elmarzougui
Source avec Zip Source .NET (Dotnet) BOUTON QUI EMPECHE LE MULTI CLIC AVANT LA FIN DU TRAITEMENT.... par fredzool
Source avec Zip Source .NET (Dotnet) BOUTON AVEC CSS ET USERCONTROL WITH EVENT par fredzool

Commentaires et avis

Commentaire de monsieurtruc le 19/04/2004 12:14:50

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

Commentaire de jesusonline le 19/04/2004 18:25:32 administrateur CS

Je ne pense pas qu'il fonctionne en asp(3) mais il doit exister un equivalent ....

Commentaire de mrflo le 25/04/2004 18:10:58

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;
             }

Commentaire de jesusonline le 25/04/2004 18:32:59 administrateur CS

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é :)

Commentaire de mrflo le 25/04/2004 21:14:13

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

 Ajouter un commentaire




Nos sponsors


Appels d'offres

Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,764 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales