Ce script permet de détecter, entre autre, la langue configurée dans le navigateur.
Je ne parle pas de la langue du navigateur, mais bien de celle configurée par l’utilisateur dans ses préférences.
Tout d’abord, téléchargez l’excellent script « PHP User Agent Language Detection » sur le site Techpatterns.com.
Téléchargement direct.
Dans mon exemple d’utilisation, ce script est à placer à la racine de votre site.
Exemple, en partant du principe que votre nom de domaine pointe dans le répertoire html.
1 2 |
/html/ ------php_language_detection.php |
Créez un fichier index.php qui sera à placer à la racine également.
1 2 3 4 5 6 7 8 9 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 |
<?php include ("php_language_detection.php"); $tbl_get_language = get_languages('data'); /*-------------------------------------------------------------*/ // A decommenter pour voir le message de debug /* $msg_debug = ""; while (list($key4, $value4) = each($tbl_get_language)) { $msg_debug .= "--> <b>" .$key4."</b> => ".$value4."<br />"; while (list($key5, $value5) = each($value4)) { $msg_debug .= "-- --> <b>" .$key5."</b> => ".$value5."<br />"; } } echo $msg_debug; // Utilisé par le programme pour gérer la redirection echo $tbl_get_language[0][1]; */ /*-------------------------------------------------------------*/ ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title>Redirection </title> <script type="text/javascript"> switch("<?php echo $tbl_get_language[0][1]; ?>") { case "en" : document.location.href = 'en/'; break; case "fr" : document.location.href = 'fr/'; break; case "de" : document.location.href = 'de/'; break; case "it" : document.location.href = 'it/'; break; case "es" : document.location.href = 'es/'; break; default : document.location.href = 'en/'; } </script> </head> <body> <noscript> Your browser does not support JavaScript! </noscript> </body> </html> |
Dans l’exemple, je redirige vers les sous-répertoires correspondant aux différentes langues.
Mais vous pouvez tout aussi bien utiliser des fichiers html ou php
Pour faire un test de fonctionnement, décommentez la partie de debug de php et commentez la partie redirection du javascript.
Tout ce que se trouve entre
1 |
<script type="text/javascript"> |
et
1 |
</script> |
Vérifiez la langue utilisée par Firefox dans « Outils / Options », onglet « Contenu », zone « Langues ».
Cliquez sur le bouton « Choisir ».
Firefox affiche la liste des langues installées et l’ordre de préférence.
Remarquez que si vous changez l’ordre des langues dans Firefox, le programme le détecte correctement :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
--> 0 => Array -- --> 0 => fr -- --> 1 => fr -- --> 2 => French (France) -- --> 3 => French --> 1 => Array -- --> 0 => fr-fr -- --> 1 => fr --> 2 => Array -- --> 0 => en -- --> 1 => en -- --> 2 => English -- --> 3 => English --> 3 => Array -- --> 0 => en-us -- --> 1 => en -- --> 2 => English (United States) -- --> 3 => English --> 4 => Array -- --> 0 => de-de -- --> 1 => de --> 5 => Array -- --> 0 => it -- --> 1 => it -- --> 2 => Italian (Italy) -- --> 3 => Italian --> 6 => Array -- --> 0 => es -- --> 1 => es -- --> 2 => Spanish (Traditional Sort) -- --> 3 => Spanish |