Bonjour,
J'ai un site internet écrit en PHP.
Je voudrais faire une traduction de mon site.
J'utilise gettext (faire une inclusion de fichier locale est trop lourd pour le site)

Le problème c'est que mon site est grand, et que pour garder la traduction possible dans son contexte, je veux que chaque page ait son propre fichier de traduction.

Exemple :

Page1.php -. Page1.po
Page2.php -. Page2.po

En entête de chaque fichier j'ai donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
$domain="Page1"; // ou Page2
putenv("LANGUAGE=$lang"); //avec lang en ou fr
$dir=setlocale(LC_ALL, $lang);
echo 'setlocal:'.$dir."<br/>"; // si chaine vide alors la locale  n'est pas installée et gettext ne fonctionnera pas !
// Spécifie la localisation des tables de traduction
bindtextdomain($domain, "./locale");
// Choisit le domaine
$dir=textdomain($domain);
Jusque-là tout marche...


MAIS Le problème arrive lorsque certains de mes fichiers font des include d'autres fichiers PHP.

En effet, dans Page1.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
echo _('cette balise est traduite');
include ('fichier3.php');
echo _('et cette la non snif snif');
Ce qui est normal car dans le fichier 3, l'instruction $domain="fichier3" m'a tout cassé....
Je n’ai pas envie de refaire une redéfinition des domaines après l'include...


Quelqu'un a t-il été confronté à ce problème, et aurait-il solution, voir une meilleure approche à me proposer ?

Merci d'avance.