Préambule:
Dans l'optique de rendre un site multilingues, j'utilisais un système de traduction de mon cru grâce à la paire $Clef => $Valeur dans un tableau. Mais ce système à des limites et consomme un peut trop de mémoire à mon goût, donc je passe à GETTEXT de php.
J'utilise aussi un système de Template ressemblant pas mal à celui des forums phpbb.
Pour les traductions faites à partir du php aucun problème, Mais pour les traductions situées dans les templates aïe...
Il faut que j'arrive à identifier les fonctions e_("Mon texte à traduire") contenu dans une $VariableContenentMonTemplate (celle qui a chargé le template)
Pour les tests j'ai fait cet essai:
$Text = ' ze fzef ezf ef zefez fzef e_(" Les Textes à traduire ") ezf zefzfzefzefzef ezf zzfef zef f zef e_("Un autre text a traduire avec des ") quotes et des parentese qsfqsfqs") ';
$regex= '#e_\(\"(.*?)\"\)#is';
// Fonction de callback
function TranslateTemplate($matches)
{
// comme d'habitude : $matches[0] représente la valeur totale
// $matches[1] représente la première parenthèse capturante
return '<h1>'.$matches[1].'</h1>';
}
echo preg_replace_callback($regex, "TranslateTemplate", $Text);
ce qui me renvoi ceci: ze fzef ezf ef zefez fzef
<h1> Les Textes à traduire </h1>
ezf zefzfzefzefzef ezf zzfef zef f zef
<h1>Un autre text a traduire avec des ") </h1>
quotes et des parentese ") qsfqsfqs
ce qui est logique vu le regex mais je voudrais obtenir ceci: ze fzef ezf ef zefez fzef
<h1> Les Textes à traduire </h1>
ezf zefzfzefzefzef ezf zzfef zef f zef
<h1>Un autre text a traduire avec des ") quotes et des parentese</h1>
qsfqsfqs
et c'est la que j'ai du mal... donc si quelqu’un peut m'indiquer ou chercher... ou encore mieux trouver la soluce
Merci d'avance, car je vais finir par me pendre, surtout que je suis sur que c'est un truc évident mais je le vois pas!!