Vous êtes ici Codes sources snippets  international  Détecte la langue d'un visiteur avec le navigateur

 

Détecte la langue d'un visiteur avec le navigateur

Parfait pour des sites multilangues ou faire un peut de géolocalisation.

Ce code détecte rapidement le pays d'un visiteur et retourne le résultat dans la fonction detect_lang(), le code est bien fait car vous pouvez prendre le résultat et faire ensuite une redirection transparente selon la langue trouvée vers la page de votre choix.
 
posté par un
administrateur
Site de l'auteur Voir
Enregisté le 16 Avril 2009
Vu 3748 fois
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Détecte la langue d'un visiteur avec le navigateur
  • Partage ce code sur Facebook
 
 
 
 

Code Source


.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
.40
.41
.42
.43
.44
.45
.46
.47
.48
.49
.50
.51
.52
.53
.54
.55
.56
.57
.58
.59
.60
.61
.62
.63
.64
.65
.66
.67
.68
.69
.70
.71
.72
.73
.74
.75
.76
.77
.78
.79
.80
.81
.82
.83
.84
.85
.86
.87
.88
.89
.90
.91
.92
.93
.94
.95
.96
.97
.98
.99
.100
.101
.102
.103
.104
.105
.106
.107
.108
.109
.110
.111
.112
.113
 
<?php
/******************************************************************************/
/*                                                                            */
/*                            ___           ____                              */
/*                           / _ \___ _  __|_  /    __                        */
/*                          / // / -_) |/ //_ < |/|/ /                        */
/*                         /____/\__/|___/____/__,__/                         */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Détecte la langue d'un visiteur avec le navigateur        */
/*                                                                            */
/* URL            : http://www.dev3w.com/scripts4-PHP.htm                     */
/* Auteur         : moderateur                                                */
/* Date édition   : 16 Avril 2009                                             */
/* Website auteur : http://wwww.dev3w.com                                     */
/*                                                                            */
/******************************************************************************/


// a vous de définir le langage par defaut

$GLOBALS['_DLANG']='fr';


function get_env_var($Var)
{
     if(empty($GLOBALS[$Var]))
     {
         $GLOBALS[$Var]=(!empty($GLOBALS['_SERVER'][$Var]))?
         $GLOBALS['_SERVER'][$Var] : (!empty($GLOBALS['HTTP_SERVER_VARS'][$Var])
) ? $GLOBALS['HTTP_SERVER_VARS'][$Var]:'';
     }
}

function detect_lang()
{
     // Detecte HTTP_ACCEPT_LANGUAGE & HTTP_USER_AGENT.
     get_env_var('HTTP_ACCEPT_LANGUAGE');
     get_env_var('HTTP_USER_AGENT');

     $_AL=strtolower($GLOBALS['HTTP_ACCEPT_LANGUAGE']);
     $_UA=strtolower($GLOBALS['HTTP_USER_AGENT']);
  
     // essaye de detecter les langage
     foreach($GLOBALS['_LANG'] as $K) {
         if(strpos($_AL$K)===0)
         return $K;
     }
  
     // reesaye si c'et pas encore fait
     foreach($GLOBALS['_LANG'] as $K) {
         if(strpos($_AL$K)!==false)
         return $K;
     }
     foreach($GLOBALS['_LANG'] as $K) {
     if(preg_match("//[[( ]{$K}[;,_-)]//",$_UA))
     return $K;
     }

     // retourne la langage pas defaut en cas d'echec
     return $GLOBALS['_DLANG'];
}


// definie tout les langages

$GLOBALS['_LANG'] = array(
'af'// afrique.
'ar'// arabie.
'bg'// bulgarie.
'da'// danemark.
'de'// allemagne.
'el'// grece.
'en'// english.
'es'// espagne.
'et'// estonie.
'fr'// french.
'hi'// inde.
'hr'// croatie.
'hu'// hungrie.
'id'// indonesie.
'it'// italie.
'ja'// japon.
'ko'// korean.
'ka'// georgie.
'lt'// lithuanie.
'nl'// dutch.
'no'// norvege.
'pl'// polish.
'pt'// portugal.
'ro'// roumanie.
'ru'// russie.
'sk'// slovakie.
'sl'// slovenie.
'sq'// albanie.
'sr'// serbie.
'sv'// swede.
'th'// thailande.
'tr'// turquie.
'uk'// ukraine.
'zh'  // chine.
);

// fait la redirection

//header('location: http://www.your_site.com/index_'.detect_lang().'.php'); //
// exemple
echo 'la langage est: '.detect_lang(); // exemple

?>

Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 

Navigation

 
 
Annonce Google...
 

international

 
 

Catégories