Stratégie de gestion de multilangue - PHP - Programmation
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 :
|
cf. Zend_Translate du Zend_Framework par exemple.
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
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/
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.
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 |
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
Marsh Posté le 22-01-2010 à 14:58:37
flo850 a écrit : le 1 pose des problème de répétition |
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
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)
Marsh Posté le 24-01-2010 à 18:07:44
un joli topic ici :
http://forum.hardware.fr/hfr/Progr [...] 5783_1.htm
Marsh Posté le 25-01-2010 à 09:39:49
jagstang a écrit : un joli topic ici : |
meric
j'ai finalement opté pour la solution de flo850
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