Puissance de Ruby en Rails - support de l'écriture du logiciel - et de l'approche modulaire de celui-ci, il n'a fallu ajouter qu'une cinquantaine de lignes de codes pour permettre la gestion de plusieurs langues pour un site.
Comment ça fonctionne ?
1) On déclare la liste des langues utilisées comme paramètre du site.
Exemple : "fr en de" désigne le français comme la langue principale, puis l'anglais et l'allemand comme langues secondaires.
2) Pour tous les titres, sous-titres, descriptions et autres textes ayant besoin d'être traduits, on fait suivre le texte original dans la langue principale par la ou les traductions supplémentaires précédées de leur code de langue entre crochets.
Exemple : "Accueil[en]Home"
3) Il n'y pas de 3), car il n'y a plus rien à faire.
Pour un site monolingue, il n'y a pas de changement, à part la déclaration de la langue de base du site pour pouvoir donner cette information aux moteurs de recherche.
Que voit l'internaute ?
a) Par défaut, le site s'affiche dans la langue spécifiée dans son navigateur - en principe, c'est la sienne.
Si sa langue n'est pas disponible pour le site, alors la langue principale est choisie par défaut.
b) Si le site est multilingue et uniquement dans ce cas, et si le modèle de page utilise le composant standard de fin de page, la liste des langues apparait en cas à droite de chaque page.
Exemple : [fr] [en] [de] projet A
Un lien sur le code des langues autres que celle affichée permet de changer de traduction.
Pourquoi pas des petits drapeaux ?
Le français est parlé en France, en Belgique, en Suisse, au Québec et dans plein d'autres pays ; l'anglais est parlé en Angleterre, dans tout le Royaume-Uni et tout l'ancien Commonwealth, aux États-Unis d'Amérique et dans pleins d'autres pays ; etc.
Quel drapeau national faudrait-il utiliser pour une langue sans froisser les habitants des autres pays concernés ? Les instances internationales utilisent à la place le code normalisé des différentes langues.
Cette codification est également transmise aux serveurs Web par les navigateurs pour indiquer la préférence linguistique des internautes, information que le logiciel du projet A met à profit pour le choix de la langue par défaut lors de l'appel d'une page.
Pourquoi i18n ?
i18n pour "internationalisation" - ou "internationalization" en anglais -, c'est-à-dire un I + 18 autres lettres + un N.
i18n est le signe de reconnaissance des traitements destinés à l'adaptation des logiciels aux différentes cultures de leurs utilisateurs : la traduction des textes, mais aussi la typographie, le format des dates, etc.