Merhaba, genellikle web teknolojileri, web programlama dilleri, linux ile ilgili yazıların yazıldığı bir sitede bulunmaktasınız. Eğer bu konular ilginizi çekiyorsa yazılarıma abone olmanızı öneririm. Yazar hakkında ayrıntılı bilgi için tıklayın.

Drupal, Moodle gibi sistemlerde oluşan Türkçe karakter problemini giderme

Türkçe karakter problemi konusuna devam ediyoruz.. Moodle veya drupal kurdunuz, Türkçe dil dosyalarını yüklediniz.. Herşey güzel çalıştı. Fakat Türkçe karakter içeren bir yazı eklediğinizde karakterler bozuk gözüktü…

Bu problem genelde MySQL veritabanında bulunan tabloların kullandığı karakter setlerinin Türkçe karakteri desteklememesinden dolayı oluşur. Veritabanındaki her tablonun karakter setini Türkçe karakter desteği bulunan bir sete (Örneğin : utf8) çevirmek bu problemi çözüyor..

Moodle, drupal gibi sistemlerde tablo sayısı çok fazla olduğundan her tabloyu tek tek düzenlemek zor.. Bu işlemi bir php kodu yardımı ile otomatik olarak yapabiliyoruz.. Bu kod veritabanındaki tüm tablo ve alanların karakter setlerini utf8′e çeviriyor ve Türkçe karakter problemini çözüyor.. Yapmanız gereken şey kodu indirip mysql user,pass,db ayarlarını yaptıktan sonra kodu servera yollayıp çalıştırmak..

Bu kodu kullanarak Drupal ve Moodle daki Türkçe karakter problemini çözdüm. Ancak moodle’da bu kodu çalıştırınca kullanıcı girişi yapılamıyor.. Bu yüzden bir kod ekleyerek adında mdl_user geçen tabloların karakter setini değiştirmedim ve sorun kalmadı..

Drupal içinse cache ile alakalı tabloları utf8e çevirmede problem yaşadım o yüzden drupalda içinde cache kelimesi geçen tabloların karakter setine dokundurmadım.

Sonuç olarak elimde iki adet mysql veritabanı karakter kodlaması çevirme kodu var;

Drupal için tüm veritabanını utf8 karakter kodlamasına çevirme dosyası
Moodle için tüm veritabanını utf8 karakter kodlamasına çevirme dosyası

Başka sistemler için de birkaç değişiklik ile bu kodu kullanabilirsiniz..

Creative Commons License

12 Yorum

merhaba, aranırken buldum burayı. drupal de Türkçe karakter sorunu yaşıyorum ve bir türlü gideremedim. drupal_cevir .php dosyasını ana dizine atıp çalıştırdığımda şu hatayı verdi:
SQL Error:
Column ‘Content’ cannot be part of FULLTEXT index

kırmızı harflerle:)

Hüseyin Berberoğlu Ocak 18th, 2008, 19:55

O hata ile daha önce karşılaşmadım fakat phpmyadmin’e girip Content alanının bulunduğu tabloya girin alt kısımda Indeksler diye bir bölüm var oradan Content’i kaldırın daha sonra drupal_cevir’i çalıştırın.

tabloların çoğunu kontrol ettim. drupal kurulmu yapılırken dosyalar zaten utf-8 formatında. gelen eklentilerden olabilir diye düşünüyorum. drupalle ilgili fazla bir türkçe destek olmadığından sorunu kendimiz bir şekilde çözmeye çalışyoruz. Acaba server ayarlarında falan mı bir sorun var diye düşünmüyor değilim. Host’umun başına diyorum: tabloları sıra ile çeviriyor yazdığınız kodlar ve sıradaki tabloda content diye bir index bulamadım.

Çözülmüyor… ya da çözemedim :(

Arkadaşlar bende aynı şekilde sorun çekiyorum. Bu sorunun kalıcı bir çözümünü bilip te söylemeyen varsa sitesi çöksün yahu…

Hüseyin Berberoğlu Nisan 11th, 2008, 10:42

arkadaşlar, dosyaların linki yanlıştı, düzelltim. sisteminize uygun dosyayı indirip, sitenize yükleyin ve dosyayı çalıştırın. dosya çalıştığında tüm veritabanınız utf8′e dönüşecek. ve bu işlemi yaptıktan sonra yazdığınız yazılar Türkçe destekli olacak..

önceki yazılar için bir şey yapılamıyor

Sonunda hallettim…. moodle ı fantastico yerine, moodle.org da yayınlanan türkçe moodlı indirdim, ftp ile atıp, kurdum simdi masallah sorunsuz :)

Mükemmel arkadaşım. moodle iki dakikada çözüldü. sigara içiyorsan gel siteye sana özel olarak sigarayı bıraktıracağım. helal olsun sana.

Ne kadar teşekkür etsem azdır. Muhteşemsiniz :)

Merhabalar

İlgili dosları nereye atmam lazım?

Kurmuş olduğum Drupal’de Türkçeleştirme sıkıntım var..

Hüseyin Berberoğlu Aralık 12th, 2008, 18:06

Dosyaları hostinginizde herhangi bir yere atıp, içindeki mysql ayarlarını yaptıktan sonra dosyayı Firefox gibi bir tarayıcı üzerinden çalıştırmanız gerekli.

Bu arada bu dosyalar hala geçerli mi onu bilmiyorum

Emeğiniz ve bunu paylaştığınız için teşekkür ederim.

Yorum Yazın

Kısa da olsa bir yorum yazmanız yazar için çok önemli.
Yorumunuz