Site multilingue: la meilleure technique?

@ybee

Membre expert
Club iGen
18 Mai 2001
1 039
14
41
Embourg, Belgique
antoine.olbrechts.eu
Hello hello!

N'ayant aucune envie de faire le travail deux fois et alourdir un site, j'aimerais trouver la meilleure technique pour rendre le site d'un client multilingue...

J'avais déjà testé en son temps un système avec du PHP et un cookie (un ami m'avait envoyé une adresse sur phpdebutant.org) mais j'étais pas super convaincu, notamment par la façon dont les tradusctions étaient stockées de façon peu intuitive dans un fichier texte.

Quelqu'un aurait-il une bonne technique vers laquelle m'aiguiller ?

Merci !!
 
Les réponses apportée sur les sites web des grands groupes internationaux ressemblent à peu près à ça:

- plusieurs sous-dossiers, un pour chaque langue, avec les pages HTML et les images contenant du texte traduit
- une page par défaut du site avec un script de redirection pour un premier affichage de la page d'accueil en fonction de la langue du navigateur
- un sous-dossier pour les éléments communs à toutes les langues, tels que les documents non traduits et les images
- la possibilité de passer d'une langue à l'autre par un lien, sur la première page, ou bien sur chaque page

Ça me semble être la configuration qui offre le plus de facilité quant à la maintenance du site (non redondance, édition standard et adaptée à la langue, etc.).
 
Site dynamique avec le contenu en base de données PHP/MySQL, surtout s'il y a de la mise à jour à faire régulièrement, prévoir un outil d'administration pour gérer le contenu sans risquer de foutre en l'air les pages et les liens. Mieux vaut faire appel à un développeur professionnel pour être bien carré.
 
S'il s'agit d'un vrai multilingue (=simple traduction, pas de contenu local) je suis pour la solution php+mysql avec dossier commun pour les illustrations et documents non traduits bien sûr.
 
Personnellemnt, je ne suis pas trop pour les solutions "tout automatique" que séparent aveuglément le contenu traduit et la mise en page.

Ça pourrait peut-être se justifier pour certaines parties très "volatiles", comme par exemple des informations quotidiennes, afin de faciliter leur ajout et leur retrait. Mais pour des parties beaucoup plus "figées", ce n'est pas souhaitable.

On obtient assez souvent des problèmes visuellement dommageable pour la qualité du site, parce que les traductions dans différentes langues donnent des longueurs très différentes à la fois pour les paragraphes et pour les mots pris individuellement.

On risque de se retrouve avec une mise en page trop aérée pour une langue (l'anglais par exemple), et dans le même temps trop dense, voire tronquée, dans une autre (l'allemand par exemple), avec un résultat globalement aléatoire du fait du principe de base adopté.

Ensuite, rajouter des maillons faibles que constituent un générateur de pages HTML et une base de données quand ça ne se justifie pas absolument, c'est aller inutilement au devant des problèmes (surcharge du serveur, plus de page à voir en cas de bug ou de plantage des applis concernées).

En tout cas c'est mon avis et mon expérience.
 
La question c'est est-ce que le site sera dynamique...

Et les questions de mise en page ça dépend plus de la fluidité des syles de mise en page que des langues. Globalement sur des textes longs correctement traduits, il y a finalement assez peu de différences entre un texte français, anglais, allemand... (en tout cas pas autant qu'on pourrait penser a priori). Par contre l'anglais supportera des colonnes très étroites alors que l'allemand a forcément besoin de de colonnes larges (les mots de plus de 15 lettres sont légions).

Il me parait quand même évident pour des raisons de assez logiques qu'il faut tenter de partir d'une base de styles et d'éléments graphiques commun, au moins partiellement.
 
Niconemo a dit:
(...) Il me parait quand même évident pour des raisons de assez logiques qu'il faut tenter de partir d'une base de styles et d'éléments graphiques commun, au moins partiellement.
Tout-à-fait d'accord.

La "charte graphique", les feuilles de style et les images (sans texte) doivent être communes. Seuls les textes et les mises en pages doivent être distincts.
 
J'ai fait ce travail pour un site dynamique.
Nous avons groupé tous les textes français dans un fichier global. On affecte des textes à des variables php. Ensuite, on remplace les phrases par ces variables dans les pages php. Au final, on fait juste une autre page localisée en espagnol ou en anglais.

Une variable de session permettait de savoir si on était en mode anglais, français ou espagnol.
C'est un gros site, donc je pense que c'est une solution très correcte au niveau du temps de dev et du résultat.