Yeni Kurulum İçin Türkçe Karakter Çözümü
Merhaba,
SMF ile sadece işim düştüğü zamanlarda uğraşan biriyim. Fakat şunu söylemeliyim, işim düştüğü zamanlardan kastım, forum kurmaya ihtiyacım olduğu zamanlar. Yani bana en beğendiğim forum yazılımını sorsalar, her zaman için ve her yönden SMF derim. Bu başarılı yazılım için bir katkım olacaksa ne mutlu bana!
Bu yazıda SMF’yi yeni kuracak olan arkadaÅŸlara Türkçe karakter sorunları konusunda yardımcı olmaya çalışacağım.
Şu anda internette aradığımızda, herkes farklı şeyler söylüyor. Üstelik yapılan açıklamalar herhangi bir kanıta dayanmıyor ya da bir şekilde askıda kalıyor.
Ben size anlatacağım uygulamayı denedim ve herhangi bir hata ile karşılaşmadım. Bu yüzden sunuyorum, umarım benim açıklamalarım da ileride askıya düşmez. 
Türkçe Karakter Seçimi Veritabanında Başlar
Öncelikle, SMF yazılımını kuracağımız zaman ilk olarak veritabanı oluştururuz. Hangi karakter setini kullanacağımızı veritabanına bildirmezsek, veritabanı kendi kafasına göre bir seçim yapar. (Genellikle latin1_swedish_ci olarak belirler ve bu bizim işimize yaramaz)
Fakat latin1_swedish_ci gibi Türkçe ile uzaktan yakından alakası olmayan bir karakter setinin kullanılması elbette bizim için sorun çıkarır. Çünkü kullandığımız Türkçe dil paketinde karakter kodlaması ISO-8859-9 olarak verilmiştir.
Veritabanı karakter setlerinde bizim kullanacağımız ISO-8859-9 karakter kodlamasını destekleyen karakter seti latin5_turkish_ci karakter setidir. Dolayısıyla veritabanımızda MySQL Bağlantı Karşılaştırması ve Veritabanı Karşılaştırması ayarlarını latin5_turkish_ci olarak seçmemiz gerekiyor.
* Bu işlemleri SMF kurulumunu yapmadan yapıyoruz. Veritabanında yüklenmiş tablo ve veri olmamalı.
Şimdi işlemlere başlayalım ;
Veritabanı Türkçe Karakter Ayarlarının Yapılması
Adım 1
MySQL Bağlantı Karşılaştırması
Veritabanı yönetim aracımıza bağlandığımızda (phpMyAdmin vb.) karşımıza çıkan ekranda (phpMyAdmin Anasayfası) sunucumuzla, MySQL sürümümüzle ilgili bilgiler verilir. Bu bilgilerin arasında ;
MySQL Bağlantı Karşılaştırması seçeneğine latin5_turkish_ci değerini veriyoruz.
Adım 2
Veritabanı Karşılaştırmasının Seçilmesi
phpMyAdmin ekranında (Anasayfa) sol tarafta bulunan veritabanı listesinden daha önceden oluÅŸturmuÅŸ olduÄŸumuz veritabanını seçiyoruz ve veritabanı ile ilgili sayfaya geldiÄŸimizde sol üstte bulunan “İşlemler” sekmesine tıklıyoruz.
İşlemler sayfasında en altta bulunan “KarşılaÅŸtırma” seçeneÄŸine latin5_turkish_ci deÄŸerini veriyoruz ve “Git” butonuna basıyoruz.
Veritabanı ile ilgili yapmamız gereken işlemler bu kadar. Sırada SMF yazılımına veritabanı bağlantısını yaptıktan sonra kullanacağı karakter setini belirtmek kaldı.
Adım 3
Veritabanıyla Bağlantının Kurulmasından Sonra Kullanılacak Karakter Setinin Dosyada Belirtilmesi
Bu işlem de diğerleri kadar basit. Yönergeleri veriyorum ;
SMF yazılımının kök dizininde (settings.php, settings_bak.php dosyalarının bulunduğu yere kök (root) dizini denir) bulunan index.php dosyasını açınız.
Bu dosyada tahminen (63-67). satırlar arasında bulunan kod bloğunu bulunuz :
Code:
// 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);
Bu kod bloğunun altına aşağıdaki karakter seti tanımlamalarını ekleyiniz.
Code:
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
Son görünüm şu şekilde olacak :
Code:
// 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);
mysql_query("SET NAMES 'latin5'");
mysql_query("SET CHARACTER SET latin5");
mysql_query("SET COLLATION_CONNECTION = 'latin5_turkish_ci'");
Dosyayı kaydedip kapatınız.
İşte yapmanız gereken işlemler bunlar. Artık SMF kurulumunuzu yapabilirsiniz. Eğer bunları yaptıktan sonra hala Türkçe karakterlerde sorun yaşıyorsanız sorun ya kullandığınız temada ISO-8859-9 yerine farklı bir karakter kodlaması belirtilmesi ya da sunucunuzda Türkçe karakter desteğiyle ilgili yapılandırmanın yanlış olmasıdır.
* Bu iÅŸlemleri yaptıktan sonra veritabanından “Dışarı Aktar” komutu ile tüm tabloların SQL döküm verisini yedekleyebilir, Türkçe karakter konusunda da herhangi bir sıkıntı yaÅŸamazsınız.
Yardımcı olması dileğiyle,
Sevgi ve Saygılarımı Sunarım.
Ahmet OÄŸuzhan DOÄžAN
*Özel hayatımdaki yoğunluktan dolayı bir süre başlığı takip edemeyeceğim. Söylediklerimi uyguladığınız halde sorun yaşıyor ve bana bildirmek istiyorsanız bu başlık altında yazabilir ve geç vereceğim cevaplardan dolayı kusuruma bakmayabilirsiniz. 





