Joomla, WordPress, SMF, KBPublisher Türkçe Sorunu ve çözümü
Joomla İçerik Yönetim Sisteminde (v1.x) , özellikle MySQL 5 kullanımında, diğer bir çok veritabanı kullanan sistemde olduğu gibi Türkçe karakterlerin kullanımında sorunlar yaşanmaktadır.
Öncelikle hangi sistemi kullanıyor olursanız olun, elinizdeki veritabanı yedeğinin düzgün ve sorunsuz olduğundan emin olmanızı öneririm. Veritabanınızın
MySQL charset: Latin 5
MySQL connection collation: utf8_turkish_ci
olarak ayarlanmış olması tavsiye edilir. Ama MySQL charset farklıda olsa sorun yaşamadan aşağıdaki düzenlemelerle sonuca ulaşabilirsiniz.
Bazen önceki sunucunun ne olduğunu hatırlamayabilir ya da farklı yapılandırılmış bir sunucudanda geliyor olabilirsiniz. Bu durumda elinizdeki veritabanı yedeği anlamsız karakterlerle dolu olabilir. Gokhansonmez.com’un bir önceki veritabanında buna dikkat etmemiştim. Aldığım yedekleri kullanmak istediğimde ve veritabanı yedeğini incelediğimde bir sürü garip karakterle karşılaştım. Sorunu önce elle karakterleri değiştirerek çözmeye kalktım 🙂 Elle dediysek text editörlerinin replace fonksiyonuyla. Ama sorunu çözemedim 🙂 ç ve ş harfleri en azından birbirine girdi. Sorunu ultraedit ile çözdüm. Veritabanı yedeğimi bu yazılımda açıp, File – convert kısmında bir iki denemeden sonra Türkçe karakterlerim geri geldi.
Bu sadece elimdeki veritabanını düzgün hale getirmeyi sağladı… Joomla ve diğerlerindeki sorunu gidermek için yeterli olmadı…
Joomla Türkçe Ayarları
Joomla Global Configuration panelinde Locale sekmesinde Country Local’de tr_TR, turkish yazmasına rağmen karakterleriniz sorun çıkabilir. Bunun sebeplerinden bir tanesi kullandığınız template sisteminin Global Configuration dosyasından bu bilgileri almaması olabilir. Template’i kontrol edip aşağıdaki satırın varlığına ya da Global Config’den doğru bilgilerin alınmasında sorun olmadığını kontrol ediniz.
<META http-equiv=”Content-Type” content=”text/html; charset=iso-8859-9″>
Yinede sorun çözülmüyorsa, includes klasörü database.php dosyasında 102. satırda yer alan
//@mysql_query(“SET NAMES ‘utf8′”, $this->_resource);
satırının hemen altına aşağıdaki satırları ekleyip kayıt ediniz.
@mysql_query(“SET NAMES ‘utf8′”, $this->_resource);
@mysql_query(“SET CHARACTER SET utf8”, $this->_resource);
@mysql_query(“SET COLLATION_CONNECTION = ‘utf8_turkish_ci'”, $this->_resource);
Sorun büyük ihtimalle çözülecektir.
WordPress’de Türkçe sorunu
mysql ile ilgili bu tür sorunlar sadece joomla ile sınırlı değil, SMF (forum yazılımı) ve WordPress (günlük yazılımı) gibi mysql erişimi sağlayan birçok sistemde benzer sorunlar yaşanması olasıdır. Hatta bu günlüğü yeni sunucuya taşıdığımda bende bu sorunu yaşadım ve geri dönerek, notlarıma çözüm hakkında birşeyler yazmaya karar verdim 🙂
WordPress’in veritabanıyla ilgili işlemleri gerçekleştirdiği dosya, includes klasöründe, wp-db.php olarak yer almaktadır. Bu dosya içerisinde,
function select($db) { if (!@mysql_select_db($db, $this->dbh)) { $this->bail(" <h1>Can't select database</h1> <p>We were able to connect to the database server (which means your username and password is okay) but not able to select the <code>$db</code> database.</p> <ul> <li>Are you sure it exists?</li> <li>On some systems the name of your database is prefixed with your username, so it would be like username_wordpress. Could that be the problem?</li> </ul> <p>If you don't know how to setup a database you should <strong>contact your host</strong>. If all else fails you may find help at the <a href='http://wordpress.org/support/'>WordPress Support Forums</a>.</p>"); }
kısmının hemen alt bölümüne, aşağıdaki satırları eklemeniz yeterli olacaktır.
mysql_query(“SET NAMES ‘utf8′”);
mysql_query(“SET CHARACTER SET utf8”);
mysql_query(“SET COLLATION_CONNECTION = ‘utf8_turkish_ci'”);
SMF Forum yazılım ve Türkçe düzenlemesi
SMF bence oldukça başarılı ve güzel bir forum yazılımı ve birçok sitede sorunsuz kullanıyorum. Bu sistemi kullanırkende diğerlerinde olduğu gibi utf8 türkçe kullanımında sorunlar oluşabiliyor. Bu sorunu çözmek için aşağıdaki düzeltmeyi yapmak gerekmektedir.
SMF’yi kurduğunuz ana dizinde (root) index.php dosyasını bulun. Bu dosyayı bir editörde açarak aşağıdaki satırı bulun.
// Connect to the MySQL database. if (empty($db_persist)) $db_connection = @mysql_connect($db_server, $db_user, $db_passwd); else $db_connection = @mysql_pconnect($db_server, $db_user, $db_passwd);
hemen altına aşağıdaki satıları yazın..
mysql_query(“SET NAMES ‘utf8′”);
mysql_query(“SET CHARACTER SET utf8”);
mysql_query(“SET COLLATION_CONNECTION = ‘utf8_turkish_ci'”);
KBPublisher, yazılımı bilgi bankası ya da sıkça sorulan sorular için kullanılan bir yazılım. Eski ücretsiz sürümlerinden birini sourceforge sitesinden indirip commodore.gen.tr’de kullanmak istediğimde Türkçe problemiyle karşılaştım. Internette aradım cevabını bulamadım ama yukarıdaki düzenlemeyle onunda çözümünü buldum.
kb\admin\lib\adodb\drivers klasöründe yer alan adodb-mysql.inc.php dosyasını açın.
//global $ADODB_COUNTRECS;
//if($ADODB_COUNTRECS)
satırını bulun ve hemen altına aşağıdaki satırı ekleyin.
mysql_query(“SET NAMES ‘utf8′”);
mysql_query(“SET CHARACTER SET utf8”);
mysql_query(“SET COLLATION_CONNECTION = ‘utf8_turkish_ci'”);
umarım bu düzenlemelerden sonra hiçbir sorununuz kalmaz… Kolay gelsin..
Bilgi için çok teşekkürler.
sağol dostum. 5 saattir uğrasıyordum…….