Pb de traduction aléatoire

17. oct 11 | Catégories : | Commentaires : 0

J'avais un problème un peu gênant, les pages du site changeaient aléatoirement d'une langue à une autre et ceci à l'intérieur même d'une page. Par exemple, le site pouvait être configuré en Français et la page commençait à s'afficher en Français et finissait en Anglais ou l'inverse. Après une passe de debug et de lecture sur Internet, je me suis aperçu que SetLocale() n'est pas threadsafe. Etant sur un hébergement mutualisé, la langue pouvait changer à n'importe quel moment si un site hébergé sur le même serveur utilisait le SetLocale() en même temps.

Voici le warning de php.net:

Warning

The locale information is maintained per process, not per thread. If you are running PHP on a multithreaded server API like IIS or Apache on Windows, you may experience sudden changes in locale settings while a script is running, though the script itself never called setlocale(). This happens due to other scripts running in different threads of the same process at the same time, changing the process-wide locale using setlocale().

 

Le problème a pu être résolu par mon hébergeur Infomaniak qui a déplacé mon domaine sur un serveur en PHP 5.3, pour lequel le serveur apache est configuré en mode Prefork, i.e. un process dédié pour l'exécution de chaque script PHP.

Ceci a définitivement réglé le pb !

Aucun commentaire

Ajouter un commentaire :

*Nom :
*Email :
*Champs requis


S’abonner aux commentaires RSS Feed