Niedziałające tłumaczenie WordPress

Co jakiś czas docho­dzi­ły mnie infor­ma­cje o nie­dzia­ła­ją­cym tłu­ma­cze­niu do WP, co naj­cie­kaw­sze zda­rzy­ło się to tak­że na jed­nej z moich insta­la­cji WP. Na pew­no nie była to kwe­stia same­go pli­ku, a raczej usta­wień serwera/php. Przez dłu­gi czas nie mogłem tra­fić nawet w pobli­że sen­sow­ne­go wytłu­ma­cze­nia, na roz­wią­za­nie napro­wa­dzi­ła mnie dopie­ro roz­mo­wa z Łuka­szem i ana­li­za usta­wień kil­ku przy­kła­do­wych hostin­gów. Co się oka­za­ło?

Jakiś czas temu był zgła­sza­ny podob­ny pro­blem na forum WP i do Ĺşró­dło­we­go pli­ku gettext.php wpro­wa­dzo­no zmia­ny pozwa­la­ją­ce uru­cho­mić loka­li­za­cję na 64-bito­wych maszy­nach. I tu wła­śnie „leżał pies pogrze­ba­ny” – wpro­wa­dzo­na popraw­ka pozwo­li­ła na dzia­ła­nie na czę­ści ser­we­rów ale popsu­ła dzia­ła­nie na innych z PHP 5.0.2.

Tak więc, jeśli ktoś ma podob­ny pro­blem z dzia­ła­niem loka­li­za­cji to pro­po­nu­ję spró­bo­wać zamie­nić w pli­ku 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 szan­sa, że pomo­że…

Z tego co widzę w kodzie WP 2.4, w nowej wer­sji nie trze­ba będzie już tego zmie­niać, błąd jest popra­wio­ny.

2 odpowiedzi do “Niedziałające tłumaczenie WordPress”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *