Lors d’un upgrade vers la version 2.0.5 sur le blog d’un client, je me suis aperçue que la localisation n’était pas prise en compte. Ce problème survenait uniquement sur le serveur de mon client… étrange…
Après avoir tourné en rond devant ce problème, j’ai enfin trouvé la solution sur le forum de WordPress dans ce post.
Comme il n’est pas utile de refaire le monde, je me contenterai de traduire ce que j’ai lu et mis en application. Le résultat ne s’est pas fait attendre, ça fonctionne !
Le système de localisation de WordPress semble ne pas fonctionner sur les systèmes 64 bits. Procédez aux modifications décrites ci-dessous dans wp-includes/gettext.php afin de le réparer. Vous devrez ajouter une ligne et en modifier une autre.
(vers la ligne 100 dans gettext.php)
$this->enable_cache = $enable_cache;
// $MAGIC1 = (int)0x950412de; //bug in PHP 5
$MAGIC1 = (int) - 1794895138;
// $MAGIC2 = (int)0xde120495; //bug
$MAGIC2 = (int) - 569244523;
$MAGIC3 = (int) 2500072158; // < - 64 BIT FIX: AJOUTEZ CETTE LIGNE !
$this->STREAM = $Reader;
$magic = $this->readint();
if ($magic == $MAGIC1 || $magic == $MAGIC3) { // < - 64 BIT FIX: MODIFIEZ CETTE LIGNE !
$this->BYTEORDER = 0;
} elseif ($magic == $MAGIC2) {
$this->BYTEORDER = 1;
} else {
$this->error = 1; // not MO file
return false;
}

9 décembre 2006 à 5:32
Merci pour cette solution. Mon tableau de bord avait basculé sans raison apparente en anglais. Je soupçonne un changement quelconque fait par mon hébergeur. J’ai suivi à la lettre les consignes et tout est rétabli !
12 décembre 2006 à 9:24
Merci pour cette modif qui a comme par magie réglé mon probléme ! Je n’ai pas tout compris ce que j’ai modifié car je suis loin d’être une pro du php mais ça marche !!
C’est Magique cette ligne de « $MAGIC3″ à rajouter !
Comme la personne ci-dessus, mon interface admin de wordpress était passée tte seule en anglais ( on dirait qu’il y a du bidouillage chez free en ce moment ! )
Encore merci bcp pour cette solution !!
16 décembre 2006 à 2:40
Bonjour et merci
Mon problème était le même qu’avaient fantôme et delfine. Mon interface d’administration et divers champs du blog comme l’affichage des dates étaient passé en anglais.
La soluce est la bonne
7 janvier 2007 à 9:29
Ravie de vous avoir dépannés. J’ai tellement galéré pour trouver ça que j’ai jugé utile de le mettre ici, d’une part pour aider ceux qui ont le même souci, d’autre part pour ne pas oublier comment gérer le problème
27 février 2007 à 1:57
Dans la version de WordPress 2.1.1, bien qu’une ligne dans gettext.php indique que le problème est géré, il n’en est rien. Après un test effectué, j’ai appliqué la règle que j’énonce dans ce billet et ça marche. Donc ça reste valable.
5 juin 2007 à 2:10
La version 2.2 de WP a ces lignes déjà mises :
// $MAGIC1 = (int)0x950412de; //bug in PHP 5.0.2, see https://savannah.nongnu.org/bugs/?\
func=detailitem&item_id=10565
$MAGIC1 = (int) – 1794895138;
// $MAGIC2 = (int)0xde120495; //bug
$MAGIC2 = (int) – 569244523;
// 64-bit fix
$MAGIC3 = (int) 2500072158;
Mais cela ne fonctionne pas pour autant sur mon serveur 64-bits : tout reste en anglais
11 juillet 2007 à 4:26
Pour WordPress 2.2.x, il faut juste modifier la ligne 118
if ($magic == ($MAGIC1 & 0xFFFFFFFF) || $magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
et la remplacer par
if ($magic == $MAGIC1 || $magic == $MAGIC3) {
car contrairement à ce qui est écrit, le bug n’est pas résolu.
En procédant ainsi, ça fonctionne, je viens d’avoir le cas de figure à l’instant.