Bir çok kullanıcı İngilizce yazılmış bir php çatısının Türkçe karakterler kullanılmaısnda sorunlar yaşadığını bilir. Bir çok kullanıcı kendi dili için geliştirdiği yöntemleri forumlarda paylaşsa da Türkçe kullanıcının azlığından dilimize ait sorunlar ya çözülmek için çok aranır taranır, ya da çözen unutur gider. Bu yazıda genelde kodlamada, özelde CodeIgniter`da Türkçe karakter sorununun çözümüne değineceğiz.
Türkçe karakter sorunu öncelikle kullandığınız editörden kaynaklanan bir sorundur. Eğer editörünüzde yazdığını php dosyasını uygun karakter formatında kayıt etmiyorsanız, hangi dil kullanırsanız kullanın Türkçe karakterlerin ekrana basılmasında sorun yaşarsınız.
Bu sorunu çözmek için yazdığınız kodun bulunduğu php dosyasının formatını UTF8 without BOM olarak değiştirmeniz gereklidir. Bu formatın ve diğer formatların da bulunduğu, ücretsiz ve güçlü yazı editörü Notepad++ programını kullanmanızı öneririm. Sol kolonunda dosya gezginin de bulunması hangi dizin altında çalıştığınızı görmeniz açısından da CodeIgniter kullanıcıları için ayrıca faydalıdır.
CodeIgniter`da bir diğer sorun da URL satırında gelen Türkçe karakterlerin işlenmesi sorunudur. Adres satırından alacağınız ve Türkçe karakter içeren bir değişken için kullandığınız link: http://site.com/user/çağla olsun diyelim. Çağla isimli kullanıcının bilgilerini çekmek istediğinizde alacağınız hata mesajı : "The URI you submitted has disallowed characters." olacaktır. Bunu düzeltmek için iki yolunuz var: birinci yol -ki en çok uygulananı- türkçe karakterli isimleri kabul etmeyeceksiniz. ikinci yol ise application/config/config.php dosyası içinde bulunan aşağıdaki satırı değiştireceksiniz:
// aşağıda kodla birlikte gelen satırı: //$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; //bu satır ile değiştirin: $config['permitted_uri_chars'] = 'a-üöçşığz A-ÜÖÇŞİĞZ 0-9~%.:_\-';
Türkçe karakterlerde yaşayacağınız diğer bir sorun da HTML şablon dosyanızda tanımlı meta kodların bulunduğu satırın utf8 değerinden farklı olmasının getirdiği sorunlardır. Bunun çözümü de View dosyası içindeki meta etikentini değiştirmektir:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Son olarak CodeIgniter`ın hata mesajlarını Türkçe almak isterseniz neler yapmanız gerektiğini anlatalım:
Kurduğunuz CodeIgniter versiyonuna ait Türkçe dil dosyasını indirin ve system/language dizini altına turkish ismi ile kurun. Daha sonra application/config dizini altındaki config.php dosyasını açın ve altta tanımlı değişikliği yapın:
$config['language'] = "turkish";
Permalink | Yazarı : Fatih BAZMAN | Yorum Ekle | Etiketler : Türkçe Karakter UTF8
Türkiye