Dün başıma geldi, bugün kod denemelerim oldu, Hosting firmamla görüştüm, çözemedik. Bende sormayı bilene en iyi danışman a başvurdum. Sorun :: Wordpress 'te Türkçe Dil Problemi (Bir Anne) www.biranne.com sitesini Wordpress tabanlı hazırladım. PHP 5.2.1(Apache 2.x CentOS) ile Uzak sunucumda, PHP 5.2.2(Apache 2.x WindowsXPProSP2) ile Localde sorunsuz çalışıyordu. Dün Hosting firmam PHP 5.2.3 kararlı sürüme geçti. Sunucu durduruldu ve tekrar çalıştırıldı (Değiştirildi mi bilmiyorum). Artık Wordpress ingilizceydi. Admin, site, menüler, dil modunun geçerli olduğu her yer. Tabiki içerik Türkçe yazıldığı için Türkçe olarak kalmıştı, sorun yoktu. Hosting firmasına bir e-posta attım. Onlarda bana atacaklarmış :) "Sürüm değiştirdik, sitelerinizde bir problem var mıdır?" Evet dediysemde, sorunu bulamadık, PHP.INI bile aynıydı çünkü. Bugün Wordpress çekirdeğinde bir takım değişiklikler yaptım, işe yaramadı. En sonunda, geçmişte çok sevdiğim biriyle konuşurken aklıma gelen soruyla karşılaştım: "Neden aradığımız şey her zaman en son baktığımız yerdedir?" Aramalarımda şu sonuçlara vardım :
Eğer işletim platformunuz 64-bit ise Wordpress ile dil sorununuz olacaktır.
Çözüm :: Wordpress Çekirdeğinde " gettext.php " dosyasını düzenlemek. Wordpress içerisindeki " gettext.php " dosyanızda şu satırları bulun. if ($magic == ($MAGIC1 & 0xFFFFFFFF) || $magic == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms $this->BYTEORDER = 0; } elseif ($magic == ($MAGIC2 & 0xFFFFFFFF)) { $this->BYTEORDER = 1; } else { $this->error = 1; // not MO file return false; } Ve aşağıdaki kod ile değiştirin : // 64-bir Platforms BUG FIX from : // http://comox.textdrive.com/pipermail/wp-trac/2007-June/012844.html
if (($magic & 0xFFFFFFFF) == ($MAGIC1 & 0xFFFFFFFF) || ($magic & 0xFFFFFFFF) == ($MAGIC3 & 0xFFFFFFFF)) { // to make sure it works for 64-bit platforms $this->BYTEORDER = 0; } elseif (($magic & 0xFFFFFFFF) == ($MAGIC2 & 0xFFFFFFFF)) { $this->BYTEORDER = 1; } else { $this->error = 1; // not MO file return false; } Bu değişiklik Wordpress 'teki Türkçeleşme Problemini çözecektir.
Sonuç :: Wordpress 'teki gettext.php dosyası byte sıralamasını saptamakta hata yapmaktadır. Eğer siz, local sisteminizde ve/veya Uzak sunucunuzda 64-bit platform ve PHP 5.x (PHP5 kullanmalısınız) kullanıyorsanız Bu hack i kullanmak durumundasınız. Ben Türkiye'deki forum, blog, site veya Wordpress dayanışma platformlarında böyle bir makale veya yazıya rastlamadım. Siz rastlarsanız paylaşmaktan çekinmeyin. Umarım bu yazı benzer sorunu yaşayanlara faydalı olur. Not: Dün çıkan Wordpress 2.3 "Dexter" sürümünde bu bug düzeltildi mi bilmiyorum. |