Développement WebGestion de contenu multilingueJean-Luc Antoine - 24/08/2002Un bon nombre d'entre vous a créé un site web, probablement en français. Si vous installez des systèmes de statistiques sur vos pages, vous verrez que des internautes étrangers s'y égarent si votre site est référencé dans les moteurs de recherche. En fait, il y a nettement plus d'internautes étrangers que Français. Si vous arrivez à les rendre captifs, vous augmenterez très nettement la fréquentation de votre site.
Site statique
Votre site peut être élaboré techniquement selon deux méthodes : des pages statiques ou des pages dynamiques. Les pages statiques possèdent l'extension .html ou .htm. C'est le cas des pages persos hébergées chez wanadoo par exemple. Cela signifie que la seule intelligence ou le moindre dynamisme doit être du code javascript exécuté côté client, via le browser de l'internaute. Nous ferons abstraction des différents plugins (flash etc...) dont le contenu n'est pas référençable dans les moteurs, et dont tous les internautes ne possèdent pas le plugin correspondant.
if (typeof(navigator.language)!="undefined")l=navigator.language else if (typeof(navigator.userLanguage)!="undefined")l=navigator.userLanguage else if (typeof(navigator.browserLanguage)!="undefined")l=navigator.browserLanguage else l="en"; l=(l.substring(0,2)=="fr");Ces quelques lignes sont compatibles avec la majorité des navigateurs (internet explore, netscape...) dans de multiples versions. On tente de récupérer le code de la langue en interrogeant différents objets jusqu'à ce que l'on en trouve un qui expose ce paramètre. Sinon, on prend par défaut l'anglais ("en") comme langue. La dernière ligne permet de définir la langue en français; le code langue français peut être fr, fr-be (pour la Belgique), fr-ca (pour le Canada), fr-ch, fr-mc etc... autant de pays francophones pour lesquels il faut afficher en français. A la fin de ce script, la variable "l" vaut True s'il faut afficher en français, False sinon. L'affichage du texte de la page (contenu, meu...) peut être alors réalisé en interrogeant la valeur de cette variable en javascript. Par exemple pour le texte d'un menu pointant sur la page principale du site, on pourrait placer le code suivant des des tags de script : document.write(l?"Accueil":"Home");Le texte "Accueil" sera affiché à l'emplacement de ce code sur les navigateurs français, et "Home" pour les autres. Nous avons donc réussi à gérer dynamiquement le contenu selon la langue, sans la moindre sollicitation de l'utilisateur. Site dynamique
L'inconvénient de la gestion sur des pages statiques, c'est que l'ensemble de la page est téléchargée sur le poste client, plus le contenu gèrera de langues, plus la page à télécharger sera lourde. L'idée est donc d'effectuer ce choix d'affichage du côté du serveur et de ne transmettre que le contenu correspondant à la langue requise. $l=is_integer(strpos($HTTP_ACCEPT_LANGUAGE,'fr'));Par la suite il suffit de gérer l'affichage en interrogeant cette variable toujours comme dans l'exemple statique, mais en script PHP : echo "Test ".($l?'en français':'in english');En ASP, le code correspondant pourrait ressembler à celui-ci : If Instr(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"),"fr")>0 Then response.write("Français") Else response.write("English") End IfVous avez tous les atouts en main pour gérer désormais un contenu multilingue de vos pages selon les possibilités techniques de votre hébergeur. |
|||||
![]()
|
|