Python İle Yazılan Programlara Dil Desteği

Yazan : Ömer Ücel - Tarih : May 31, 2008 - 8:35 pm - Etiketler :

Hatırlat için dil konusunda araştırma yaparken, gettext modülü ile bir programa nasıl farklı dil ile çalışabilme özelliğinin verilebileceğini öğrendim. İlk başta karışık geldi biraz ama pek zor bir şey değilmiş.

İlk olarak yapmanız gereken bir .po dosyası hazırlamak. Bu dosyayı en basit hali ile aşağıdaki gibi oluşturabilirsiniz.

# hatirlat.py satır 35
msgid "kullanici girisi"
msgstr "Kullanıcı Girişi"
 
# arabirim.py satır 124
msgid "hakkinda"
msgstr "Hakkında"

Bu dosyadaki # karakteri ile isterseniz açıklamalar yapıyorsunuz. msgid ile belirtilen veri programda kullanılacak olan bölüm, msgstr ile belirtilen içerik ise, msgid kısmının kullanıldığı yerlerde görüntülenecek olan içeriktir.

Bu dosyayı oluşturduktan sonra .mo dosyasını oluşturmalısınız. Bunun için gettext'in bilgisayarınızda kurulu olması lazım. Bir Linux dağıtımı kullanıyorsanız paket yöneticinizle (örn: apt-get install gettext) basitçe kurabilirsiniz.

.mo dosyasını konsolda aşağıdaki komutla oluşturabilirsiniz.

omer@ubuntu:~/gelistirme/hatirlat/po$ msgfmt tr.po -o hatirlat.mo

Bu işlemin ardından artık .mo dosyanızı projenizde kullanabilirsiniz. Aşağıda basit bir örnek bulunmakta. Dil klasörünün içeriğide şu şekilde olmalı.

dil/
dil/tr/
dil/tr/LC_MESSAGES/hatirlat.mo

 
import gettext
 
ceviri = gettext.translation("hatirlat","dil/",languages=["tr"])
_ = ceviri.ugettext
 
print _("kullanici girisi")
print _("hakkinda")
 

Buradaki "hatirlat" kısmı, .mo dosyamızın ismi. "dil/" değeri ise .mo dosyalarının bulunduğu klasörün yoludur. Klasör içerisinde açılan "tr", "en" isimli klaörleri seçmek içinse yani bir nevi dili seçmek için languages değerini düzenleyebilirsiniz.

Çalışmalarımda kullandığım programlar, siteler, teknolojiler vs.

Resimler Renkler Gimp PHP Python wxPython Geany Swish Max 2 jQuery

Günlük WordPress tabanlıdır.
Kapat



Bilmiyorum  Ben alacağım/aldım  Bu iÅŸi size bırakıyorum  Evet  Hayır


Kapat