En identifiant la langue utilisée par le navigateur, il est fort simple d'afficher une page dans différentes langues grâce à Cascading Style Sheets (Css, c'est-dire les feuilles de style en cascade).
Cette solution utilise un code réduit en JavaScript.
En Php, côté serveur, nous aurions pu recourir à $_SERVER['HTTP_ACCEPT_LANGUAGE']
ou, mieux, à la fonction locale_accept_from_http
et internationaliser nos chaînes de caractères avec la bibliothèque gettext mais ce travail est fastidieux.
Nota.
- Il est déconseillé de représenter une langue avec un drapeau. Tous les francophones ne sont pas français, par exemple.
- À l'usage, il nous paraît plus simple d'appeler les fonctions JavaScript directement dans le code Html, et cette pratique est validée par le W3C : la syntaxe est réduite et nous n'avons pas ainsi à nous occuper des gestionnaires d'évènements gérés différement selon les navigateurs.
- L'identification de la langue en JavaScript avec
navigator.language
est loin d'être parfaite, car il existe des différences entre les navigateurs, voire entre utilisateurs. Aussi, dans le code en JavaScript, appliquons-nous la langue française si nous ne pouvons pas identifier correctement l'information. (Les codes des langues et des pays respectent la norme Iso 639-1 ou 3166-1, c'est-à-dire qu'ils comportent deux - voire trois ? - lettres.) Si la langue ne correspond pas à celle de l'utilisateur, il pourra cliquer sur le bouton ad hoc et le script fonctionnera normalement.