Application PHP multilingue (interface et contenu)
Bonsoir,
Je suis en phase d'analyse sur la conception d'un site multi-lignue, pour une application PHP/MySQL.
Et nombreuses sont du coup les questions qui me viennent à l'esprit, tant dans un soucis de rapidité de traitement des données que de maintenance des contenus.
J'ai le sentiment qu'il serait judicieux de coupler deux techniques pour développer un site multilingue, l'une pour l'interface "statique" (menus, boutons, ...), l'une pour les contenus dynamiques (description de produits, ...)
Pour l'heure, avec des connaissances basiques qui évoluent au fil des lectures, j'ai pensé à deux systèmes :
- gettext pour toute la gestion de l'interface de l'appli (ce qui ne sera pas amené à évoluer)
- XML, pour stocker les intitulés de produits, de catégories de produit, ... (ce qui sera amené à changer au fil du temps)
Parallèlement à cela, j'ai une base MySQL, donc je me demandais quel serait le choix le plus judicieux. MySQL me semble peu judicieux pour gérer diverses langues. Cela étant MySQL conserverait cependant toutes les données concernant ces fameux produits, seul leur libellé serait présent dans le XML, en différentes langues.
- Cette approche (gettext + XML) semble-t-elle intelligente ?
- Auriez-vous des idées plus intéressantes ? (plus rapide en accès aux données, en maintien, etc ?)
- Une idée éventuelle de la manière de structurer les données dans XML ? (un noeud langue avec description de tous les produits ? ou des noeuds produits avec description par langue ? ou autre ?)
Je me demandais si récupérer le XML complet via PHP (& dom, à coups de XPath par la suite pour récupérer les traductions) n'est pas trop gourmand ?
Réelle envie de discuter de cela, pour parfaire mon approche.
Merci bien !
lire/écrire dans fichiers
PHP fait aussi l'écriture/lecture de fichiers. Donc pour la maintenance, rien de plus simple, juste un peu plus à programmer.
Tu fais un back-office avec un formulaire HTML qui te permet de rechercher dans toutes les classes de langues une variable précise et d'afficher pour chaque langue le contenu de la variable dans un formulaire avec un textarea pour chaque langue, ce qui fait que tu as toutes les traduction pour le même texte sur le même formulaire HTML et ce dans la même page HTML.
Tu apportes les modifications et tu valide et tu traites le formulaire afin de modifier dans les classes (modification des fichiers PHP) la variable modifiées via le formulaire HTML.
Suis-je bien clair ?