Multi-langue

Multi-langue - PHP - Programmation

Marsh Posté le 09-12-2002 à 16:45:17    

Salut,
 
Sur un site multi-langue utilisant la technique des tableaux :
 

Code :
  1. $lang["0"] = "salut"; // fichier lang-fr.php
  2. et
  3. $lang["0"] = "hello"; // fichier lang-en.php


 
sachant que le fichier lang-xx.php (xx = fr ou en selon la configuration) est inclu au début du script, peut-on avoir des variables dans ce tableau, genre :
 

Code :
  1. $lang["0"] = "bonjour $variable";


 
J'utilise des templates et lorsque que je défini les variables de la template, du genre :
 

Code :
  1. $variable = "toto";
  2. (...)
  3. $template->set_var("TEST", $lang["0"]);


 
ben ça marche pas, $variable ne s'affiche pas. Pourquoi ?
 
Car si je fais :
 

Code :
  1. $variable = "toto";
  2. (...)
  3. $template->set_var("TEST", "bonjour $variable" );


 
là ça marche.


Message édité par Hansolo le 09-12-2002 à 16:48:44
Reply

Marsh Posté le 09-12-2002 à 16:45:17   

Reply

Marsh Posté le 09-12-2002 à 16:50:02    

parce que ta chaine contient la valeur de la variable au moment de l'interpretation de la chaine...
 
methode bourrin :
 
$lang[0] = "bonjour \$variable";
$variable = "toto";
$template->set_var("TEST", eval($lang[0]));

Reply

Marsh Posté le 09-12-2002 à 17:06:03    

Merci lorill, mais pourquoi :
 

lorill a écrit :

methode bourrin :


Message édité par Hansolo le 09-12-2002 à 17:06:39
Reply

Marsh Posté le 09-12-2002 à 17:07:04    

parce que faire un eval a chaque fois, c'est un peu crade...

Reply

Marsh Posté le 09-12-2002 à 17:08:44    

sans compter que si je mets des conneries dans la chaine ca marchera plus... deja comme ca en fait, ca devrait pas marcher, je viens d'y penser...
 
ca devrait plutot etre "\"bonjour \$variable\""...
et c'est pas beau, et si je mets un ; dedans, puis une belle commande pour tout foutre en l'air, ben tu vas l'executer  [:sinclaire]

Reply

Marsh Posté le 09-12-2002 à 17:12:42    

Peut-être qu'en ajoutant une fonction qui évalue tous les éléments du tableau $lang en début du fichier lang-xx.php ça serait mieux ?

Reply

Marsh Posté le 09-12-2002 à 17:14:14    

Hansolo a écrit :

Peut-être qu'en ajoutant une fonction qui évalue tous les éléments du tableau $lang en début du fichier lang-xx.php ça serait mieux ?


non, ca changerait rien, déja c'est encore crade, et en plus au moment de l'evaluation $variable serait inconnu => case départ

Reply

Marsh Posté le 09-12-2002 à 17:15:11    

Pourquoi ne pas avoir un object "langue" contenant une fonction par message avec les paramêtres qu'on veut voir affiché dans le message?
Ensuite, il suffirait juste d'avoir un fichier à inclure (celui qui contient l'object dans la bonne langue) et le tour est joué.

Reply

Marsh Posté le 09-12-2002 à 17:48:11    

omega2 a écrit :

Pourquoi ne pas avoir un object "langue" contenant une fonction par message avec les paramêtres qu'on veut voir affiché dans le message?
Ensuite, il suffirait juste d'avoir un fichier à inclure (celui qui contient l'object dans la bonne langue) et le tour est joué.


 
http://forum.hardware.fr/icones/icon5.gif
 
Lorill, je suis d'accord.

Reply

Marsh Posté le 09-12-2002 à 19:06:51    


 
oui ? :D

Reply

Marsh Posté le 09-12-2002 à 19:06:51   

Reply

Marsh Posté le 09-12-2002 à 19:11:20    

au fait, ca existe pas gettext pour php ?

Reply

Marsh Posté le 09-12-2002 à 19:14:43    

si

Reply

Marsh Posté le 09-12-2002 à 19:27:31    

ben pourquoi tu t'en sers pas alors  :??:

Reply

Marsh Posté le 09-12-2002 à 19:32:24    

C'est très dépendant de la configuration du serveur et de la disponibilité des traductions. Donc...

Reply

Sujets relatifs:

Leave a Replay

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