gettext
yazım: 24 Mart 09 10:44 / güncelleme: 27 Mart 09 15:02
gettext ile çoklu dil çözümü (multi language)
Çok dilli projeler için sağlam standart bir çözüm gettext. Ayrıntılı bilgi için http://www.gnu.org/software/gettext/ ziyaret edilebilir.
po dosyaları şeklinde düzenlenen dil dosyaları mo dosyalarına dönüştürülerek saklanıyorlar. po dosyaları oluşturmak ve düzenlemek için poEdit MIT lisansı ile dağıtılan süper bir araç.
http://www.poedit.net adresinden edinilebilir.
PHP içinden projede basit kullanımı:
yukarıdaki kod ile
dosyasını işleme koyduk.
mo dosyası üzerinde yaptığımız değişiklikler cache nedeniyle hemen aktif olmaz, o yüzden server 'ı restart etmeniz gerekir.
gettext ile kullanacağınız dilleri
içinden aktif hale getirmeniz gerekiyor. Kullanabileceğiniz bütün dilleri aktif hale getirmek için
locale-gen komutu sistem üzerinde locale.gen dosyasında belirtilen lokasyonlara göre lokasyon bilgilerini oluşturur.
po dosyaları şeklinde düzenlenen dil dosyaları mo dosyalarına dönüştürülerek saklanıyorlar. po dosyaları oluşturmak ve düzenlemek için poEdit MIT lisansı ile dağıtılan süper bir araç.
http://www.poedit.net adresinden edinilebilir.
PHP içinden projede basit kullanımı:
// MULTI LANGUAGE with PHP_GETTEXT// Set language to Turkishsetlocale(LC_ALL, 'tr_TR'); // local ayarları Türiye Türkçe olarak ayarladık// Specify location of translation tablesbindtextdomain("default", $_SERVER["DOCUMENT_ROOT"].'/locate'); // dil dosyasının adını ve yerini belirttik.bind_textdomain_codeset("default", 'UTF-8'); // bu kısım önemli, UTF-8 belirtmezsek ISO dönüyor.// Choose domaintextdomain("default"); // dosyayı seçtik.yukarıdaki kod ile
/locate/tr_TR/LC_MESSAGES/default.modosyasını işleme koyduk.
mo dosyası üzerinde yaptığımız değişiklikler cache nedeniyle hemen aktif olmaz, o yüzden server 'ı restart etmeniz gerekir.
gettext ile kullanacağınız dilleri
nano /etc/locale.geniçinden aktif hale getirmeniz gerekiyor. Kullanabileceğiniz bütün dilleri aktif hale getirmek için
cp /usr/share/i18n/SUPPORTED /etc/locale.genlocale-genlocale-gen komutu sistem üzerinde locale.gen dosyasında belirtilen lokasyonlara göre lokasyon bilgilerini oluşturur.






