Stratégie de gestion de multilangue

Stratégie de gestion de multilangue - PHP - Programmation

Marsh Posté le 22-01-2010 à 11:17:14    

Bonjour,
 
 je suis en train de rendre multilangue un de mon site un brin volumineux. Et donc je suis en train de me poser la question sur les avantages/déavantages des stratégies possibles. J'aurrais aimé avoir votre avis sur la question
 
 
Stratégie 1 :
 - on fait un define par chaine de texte que l'on stoque dans un dossier Lang
 - en faisant un découpage 1 .php de lang par page on évite de charger la totalité des defines du site
 
Avantages :
 - simple
Inconvénients
 - Gros volume de code  
 
 
Stratégie 2 :
  - on se crée un tableau dans une grosse variable du genre $_LANG['<page>']['<chaine>'] dans un dossier Lang;
 -  on charge nos tableau
 
Avantages :
  - on limite la taille du code  
 
Inconvnient :
  - lent ? (je sais aps comment ca réagit sur de gros volume, et le connais pas les temsp d'instanciation d'un array)
 
 
 
 
Stratégie 3:
  - on met le tout en base de donnée  dans une table  id_text, lang, text
 
Avantage  :
  - on peux avoir du texte dynamique  
 
Inconvnient :
  - difficile d'entretiens
  - necessite des acess Bdd  
 
 
 
 
pour ma part j'ai choisit l'option 1
en codant une petite routine qui vas charger le bon .php en fonction de la page où on se trouve
masi la le volume de texte alllant en grossisant je me retrouve avec des defines de plsu en plus long qui purissent mon code :/  
 
 
 
 

Reply

Marsh Posté le 22-01-2010 à 11:17:14   

Reply

Marsh Posté le 22-01-2010 à 11:45:01    

Sinon on fait ça de manière robuste avec une BDD de traduction unique pour tout le site (fichier ou SGBD ou tout ce que tu veux), et une classe pour la traduction avec une utilisation du style :

Code :
  1. echo $translator->_('Ma chaine à traduire');


 
cf. Zend_Translate du Zend_Framework par exemple.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
Reply

Marsh Posté le 22-01-2010 à 12:01:15    

le 1 pose des problème  de répétition  
le2 n'a que des inconvénient
le 3 à un faible coût grâce aux cache des bases de données ( éventuellement optimisable en requetant toutes  traductions de la page d'un coup ) . en plus tu peux faire facilement un formulaire de saisie


---------------

Reply

Marsh Posté le 22-01-2010 à 12:46:30    

Pour un site, j'ai utilisé gettext, j'ai trouvé çà vraiment pratique
Un exemple de tuto sur le net
http://mel.melaxis.com/devblog/200 [...] g-gettext/

Reply

Marsh Posté le 22-01-2010 à 13:24:44    

Regardes comment fait le soft GPL "Magento". Il me semble que c'est la méthode du Zend Framework qu'il utilise.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 22-01-2010 à 14:54:57    

mr simon a écrit :

Pour un site, j'ai utilisé gettext, j'ai trouvé çà vraiment pratique
Un exemple de tuto sur le net
http://mel.melaxis.com/devblog/200 [...] g-gettext/


j'avais regardé sur cette voie mais j'ai pas trouvé cesla tres convainquant, de ce que ej m'en souvient ca fait l'équivalent des DEFINES sauf que c'ets lui qui décide le nom de ton define  
 
après j'ai peut être mal saisit

Reply

Marsh Posté le 22-01-2010 à 14:58:37    

flo850 a écrit :

le 1 pose des problème  de répétition  
le2 n'a que des inconvénient
le 3 à un faible coût grâce aux cache des bases de données ( éventuellement optimisable en requetant toutes  traductions de la page d'un coup ) . en plus tu peux faire facilement un formulaire de saisie


 
mais quand tu veux faire traduire par un tierce n'y comprenant rien l'informatique :/  
niveau maintenance/souplesse  étrangement c'est celle qui me fait le moins confiance  

Reply

Marsh Posté le 22-01-2010 à 15:01:28    

si justement, tu fais une petite interface php/mysql qui affiche et vérifie la saisie. Pas de risque que la personne efface des code phrase des fichiers de config, ou ajoute des retour  à la lignes là ou il n'en faut pas.

 

En plus, tu peux faire afficher le résultat en live.
C'est ce que j'avais mis en place avec des traducteurs qui étaient des billes en info ( suite à un problème avec des fichiers : un des traducteurs avait fait n'imp)


Message édité par flo850 le 22-01-2010 à 15:02:04

---------------

Reply

Marsh Posté le 24-01-2010 à 18:07:44    

un joli topic ici :
http://forum.hardware.fr/hfr/Progr [...] 5783_1.htm


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 25-01-2010 à 09:39:49    


meric ;)
 
j'ai finalement opté pour la solution de flo850 :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed