Merhaba arkadaşlar,

Günümüzde artık birçok sitede çoklu dil desteğini görmekteyiz. Çoklu dil desteği için birçok yöntem kullanılıyor. Bunlardan birkaçı, kelimeleri değişken olarak global bir şekilde tutmak, her dil için ayrı klasörler oluşturmak gibi yöntemler geliyor. Başlarda bende kelimeleri global değişkenler şeklinde yapmayı düşündüm. Sonra baktım ki bu iş biraz hamallık oluyor farklı yollara aramaya başladım.

Php nin “gettext” diye bir fonksiyonu var. Bu fonksiyonu daha çok wordpress kullanıyor. Gettext fonksiyonu diğer dil dosyası oluşturma yollarından farkı daha kolay ve pratik olması, ayrıca çeviri yapacak kişinin kodlarla uğraşmamaması poedit programını açıp rahat bir şekilde çeviriyi yapmasıdır. Gettext fonksiyonunu kullanmak gayet basit, ne şekilde kullanılıyor şimdi ona geçelim.

İlk önce sunucunuzda gettext fonksiyonun aktif olup olmadığını kontrol etmelisiniz. Bunun iki yöntemi var. Birincisi,

Yukarıdaki kodu çalıştırıp gettext fonksiyonun aktif olup olmadığını kontrol etmek. İkincisi ise, phpinfo ya bakıp gettext fonksiyonun arattığınızda “GetText Support” enabled ise herhangi bir problem yoktur demektir. Eğer gettext fonksiyonu aktif değilse php.ini dosyasından

fonksiyonun başındaki “;” noktalı virgülü kardırın. Eğer hala gettext fonksiyonu yok diyorsa php kurulumuzu kontrol edin.

Gettext fonksiyonu kontrol ettikten sonra gelelim kullanımına,

bu şekilde gettext fonksiyonun dil desteği olacak cümlelere ekliyoruz. Eğer her yerde echo yazmak istemiyorsanız, bir fonksiyon tanımlayıp o fonksiyonu çağırın.

Bu şekilde projenizin heryerinde _e() fonksiyonunu kullanabilirsiniz.

Şimdi gelelim dil olayına. Dil için kullanacağımız “.po” ve “.mo” dosyaları, bu dosyaları kullanmak için bilgisayarmıza poEdit programını kurmamız gerekiyor. Bu adresten poEdit porgramına ulaşabilirsiniz. Bu program po formatından mo formatına çeviri yapmaktadır. po dosyasın genel ayar dosyası olarak düşünebilirsiniz. mo dosyası derlenmiş dosyalardır. po dosyasından örnek vermek gerekirse,

#: index.php:3
msgid “Merhaba Dünya”
msgstr “Hello World”

Burada önemli bir olay var. Şöyle ki, dizin yapısı çok önem arzetmek eğer dizin yapısını düzgün yapmaz iseniz dil desteği çalışmaz. Öncelikle projemizin kök dizinine ismine her ne derseniz ben lang diye bir klasör oluşturun. Sonra bu klasörün içine hangi dili kullanmak istiyorsanız o dil için bir klasör oluşturacaz. Genelde bu klasör adı ülkenin koduna göre oluşturuluyor. Mesela tr_TR veya en_US şeklinde. Klasörünü oluşturduktan sonra klasörün içine “LC_MESSAGES” klasörü oluşturuyoruz. Bu işlemler sonucundan poEdit dosyasından oluşturduğunuz po ve mo dosyalarını bu klasörün altına kopyalayın. Bu işlemden sonra geldik son aşamaya controller dosyanıza veya nerede dil desteğini yapmak istiyorsanız oraya,

Programı çalıştırdığımızda, karşımıza Hello World ve Hello Php yazılarını göreceksiniz. Gettext fonksiyonu genel olarak bu şekilde elimden geldiğince anlatmaya çalıştım kafanıza takılan soru olursa yorum atabilirsiniz.

PHP Çoklu Dil Desteği
Etiketlendi:                     

PHP Çoklu Dil Desteği” üzerine 2 düşünce

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir