Niedziałające tłumaczenie WordPress

Co jakiś czas dochodziły mnie informacje o niedziałającym tłumaczeniu do WP, co najciekawsze zdarzyło się to także na jednej z moich instalacji WP. Na pewno nie była to kwestia samego pliku, a raczej ustawień serwera/php. Przez długi czas nie mogłem trafić nawet w pobliże sensownego wytłumaczenia, na rozwiązanie naprowadziła mnie dopiero rozmowa z Łukaszem i analiza ustawień kilku przykładowych hostingów. Co się okazało?

Jakiś czas temu był zgłaszany podobny problem na forum WP i do Ĺşródłowego pliku gettext.php wprowadzono zmiany pozwalające uruchomić lokalizację na 64-bitowych maszynach. I tu właśnie „leżał pies pogrzebany” – wprowadzona poprawka pozwoliła na działanie na części serwerów ale popsuła działanie na innych z PHP 5.0.2.

Tak więc, jeśli ktoś ma podobny problem z działaniem lokalizacji to proponuję spróbować zamienić w pliku wp-includes/gettext.php (u mnie to linie 117-119) :

if ($magic == ($MAGIC1 & 0xFFFFFFFF) || $magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms
$this->BYTEORDER = 0;
} elseif ($magic == ($MAGIC2 & 0xFFFFFFFF)) {

na:

if ($magic == $MAGIC1 || $magic == $MAGIC3 ) {
$this->BYTEORDER = 0;
} elseif ($magic == $MAGIC2) {

jest szansa, że pomoże…

Z tego co widzę w kodzie WP 2.4, w nowej wersji nie trzeba będzie już tego zmieniać, błąd jest poprawiony.

komentarze i dyskusjaRSS komentarzy

  1. 1.

    Barrt, 6 Sty 2008 @ 1:26

    Ten sposób działa, odkryłem go jakiś czas temu. :-) Pozdrawiam i życzę dalszej owocnej pracy.

  2. 2.

    Rafał, 8 Sty 2008 @ 11:22

    wkońcu działa :) wp 2.3.1 php 5.2.4 . A tak długo się męczyłem. Dzięki