La construction de documents complexes multilingues nécessite quelques précautions si l'on veut optimiser la charge de travail. Naturellement on respectera les spécifications relatives à la langue et à la direction de l'écriture de la norme HTML.
L'idée générale est de séparer les ressources qui dépendent de la langue de celles qui n'en dépendent pas et de regrouper les premières langue par langue.
On créera donc au premier niveau, autant de répertoires qu'il y aura de versions linguistiques en donnant comme nom à chaque répertoire le code ISO 639-2 correspondant à la langue.
Ces codes sont internationalement reconnus ; brefs ils ne rallongent pas trop les URL. Et surtout, autre avantage, certains serveurs utilisent cette structure pour renvoyer au navigateur la version la version du document conforme à ses préférences linguistiques.
Les autres ressources pourront être regroupées soit dans un seul répertoire si elles sont peu nombreuses soit dans des répertoires distincts selon leur type, au même niveau que les ressources linguistiquement dépendantes.
Si l'on utilise des ressources d'une librairie commune à l'ensemble du serveur, celles-ci seront dupliquées sur la plate-forme locale de travail, dans un répertoire de même structure (dénommé ici lib) et seront adressées en conséquence. Ce répertoire ne sera pas transféré sur le serveur mais on demandera à l'administrateur du serveur de le rediriger sur la librairie commune. Cette disposition permet la consultation locale du document complexe même en l'absence de serveur si du moins les ressources sont purement statiques. Dans ces conditions on peut m^même envisager une diffusion sur CD-ROM.
Nous verrons que si l'on n'utilise que des adresses relatives pour établir des liens entre les ressources du document, ces adresses sont invariantes dans les versions linguistiques.
doc
|
+---------+---------+-------+-----+-----+-----+-----+
| | | | | | | |
fr en zh img snd js css lib
| | | |
+--+--+ +--+--+ +--+--+ +--+--+
| | | | | | | |
img snd img snd img snd js css
fr : ressources en français img : images communes
en : ressources en anglais snd : sons communs
cn : ressources en chinois js : scripts JavaScript communs
css : styles CSS communs
lib : ressources communes du site
Cette structure est à utiliser, même si la première version du document est monolingue, car elle simplifie beaucoup l'adjonction de nouvelles versions linguistiques.
On commencera par monter complètement une des versions linguistiques surtout si l'on veut garder un parallélisme entre les différentes versions.
On n'utilisera dans les liens entre les ressources, que des adresses relatives. Ainsi, si dans une page d'adresse doc/fr/page.html, l'on veut adresser une image commune photo1.jpg se trouvant dans le répertoire doc/img, on utilisera un lien du type :
<a href="../img/photo1.jpg">Première photo</a>
En revanche l'inclusion d'une image contenant du texte sitée en doc/fr/img/image1.jpg sera :
<img src="img/image1.jpg">
et d'un commentaire parlé sitée en doc/fr/snd/comment1.au sera :
<a href="snd/comment1.au">Écoutez</a>
Les autres versions linguistiques seront obtenues par copie du contenu du répertoire de la version de base dans le répertoire cible. Les fichiers correspondants auront donc le même nom dans chaque répertoire de langue.
On voit clairement que les liens ci-dessus vont continuer à fonctionner pour les documents parallèles doc/en/page.html et doc/cn/page.html.
Il ne reste qu'a effectuer la substitution du texte et des ressources dépendantes de la langue.