|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 64 ![]() |
Bonjour,
Pour des des raisons de simplicité j'ai concu un site web avec des fichiers de langues que je parse dès l'affichage de l'index. J'utilise la bibliotheque phplib qui s'avere relativement rapide. Mais le problème c'est que je suis obligé de définir des variables (par exemple {PRIX}) pour chaque élément du template correspondant à une occurence dans le fichier de langue ( {PRIX} => FR_PRIX ou {PRIX} => EN_PRIX). c'est pour cela que je souhaite juste, afin d'eviter de passer par des variables, inserer directement le code php correspondant à l'element du fichier de langue. Je voudrai savoir si cela est possible en modifiant simplement la classe Template ou autre ?? En esperant avoir ete clair Merci beaucoup d'avance ^^ Tom |
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 64 ![]() |
Je suis donc obligé de passer par un autre moteur de template ??
|
|
|
00
|
|
|
#3 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Peut être ! Comment gérez-vous le support des différentes langues au niveau du stockage des textes (inclusion d'un tableau, ...) ? Et les variables dynamiques ne pourraient-elles pas vous aider quelque peu ?
Julp. |
|
|
00
|
|
|
#4 | |
|
Invité de passage
![]() Inscription : février 2005 Messages : 64 ![]() |
Citation:
edit: comment faire avec les variables dynamaique ?? je ne vois pas |
|
|
|
00
|
|
|
#5 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Ce que vous voudriez faire n'est plus dans la logique des templates, donc sans modifications je ne pense pas que ce soit possible. Vous utilisez des constantes et malheureusement vous ne pouvez dans ce cas avoir recours aux variables dynamiques (un exemple que je n'ai pas testé) :
Code :
Faisons tous un brainstorming et on trouvera bien une solution propre et évolutive. Julp. |
||
|
|
00
|
|
|
#6 | |||
|
Invité de passage
![]() Inscription : février 2005 Messages : 64 ![]() |
Citation:
Merci pour votre réponse. En effet, j'utilise les meme variables pour les langues. Je me suis basé sur dotclear qui s'avere assez simple et m'a plu. Apres je ne sais vraiment pas comment faire sachant que phplib est tres simple et que passer par un autre moteur de template serait une perte de tps considérable. Merci |
|||
|
|
00
|
|
|
#7 | |||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Citation:
Citation:
Smarty (un moteur de template bien connu) sait prendre des variables d'un fichier de configuration, vous pourriez reprendre ce système ou quelque chose de similaire. Gettext, librairie/extension qui permet de gérer l'internationalisation, vous permettrait d'éviter de passer par des variables/constantes. Julp. PS : je n'ai jamais utilisé Dotclear. |
|||
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 64 ![]() |
Voici une partie d'un de mes fichiers de langues :
;Error login Il semblerai que les informations d'identification saisies soient incorrectes, recommencez. ;Bad page La page que vous demandez n'existe pas ou est indisponible, veuillez nous en excuser. ;Die Mauvaise requête. Veuillez envoyer ce message à un administrateur. Je lis ce fichiers et je peux utiliser les messages comme suit : echo __('Bad page'); ce qui fait que dans une template je suis obligé de faire n variables template pour afficher n messages. Ce qui ne s'avere pas tres propres je trouves. Ce que je voudrai c'est juste eivter les varaibles pour eviter de faire un assign_vars() avec un tableau de 150 entrées. Mais je ne sais pas comment faire. |
|
|
00
|
|
|
#9 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Votre méthode ressemble à priori beaucoup au fonctionnement de gettext.
Si vous ne voulez pas faire manuellement des assign_vars, je vous propose d'ajouter toutes vos variables langues (j'espère qu'elles sont pas trop nombreuses) en utilisant la méthode set_var de la classe Template (par exemple quand vous lisez vos fichiers de langues mais une instance du template sera nécessaire). Julp. |
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Inscription : février 2005 Messages : 64 ![]() |
Citation:
D'accord je vois, mais n'est-ce pas trop couteux de faire ca a chaque chargement de page ? |
|
|
|
00
|
|
|
#11 | ||||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Comme précisé ci-dessus tout dépend du nombre !
Sinon, il est possible d'utiliser la méthode get_undefined qui vous donne toutes les variables (template) inutilisées et vous vous en servez pour récupérer toutes les variables de langues définies dans cette page. Ainsi, vous pourriez lire votre fichier de langue et attribuer une valeur à ces variables non définies. D'autant plus que vous n'avez nul besoin de toucher (patch) à la classe template. Illustration : index.php : Code :
Code :
Julp. |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com