[Linux-programlama] Re: Python ile çok dilli programlar geliştirmek?

---------

[Linux-programlama] Re: Python ile çok dilli programlar geliştirmek?

From: Mustafa Ünal <mustafaunl_at_gmail.com>
Date: Fri, 23 May 2008 23:58:40 +0300
Message-ID: <48373000.2040200@gmail.com>

Necmettin Begiter wrote:
> 2008/5/23 Aydın ŞEN <adigeaydin_at_gmail.com>:
>
>> Bu tip işler içinde Python'da tuple (demet) değişken türü bulunmaktadır.
>> Ayrıca bir dil dosyası oluşturmanıza gerek yok. Buton isimleri için
>> yayınlamak istediğiniz diller kadar tuple nesnesi oluşturursunuz ve buton
>> isimlerini o listeden çekersiniz.
>>
>> Dil seçimi yapıldıktan sonra seçilen dili bir değişkene alıp basit bir if
>> sorgusu içerisinde istediğiniz tuple nesnesinden buton vb. isimlerini
>> yükleyebilirsiniz.
>>
>
> Peki bir soru. Diyelim programımda 5 tane düğme var, isimleri dgmTmm,
> dgmIp, dgmYuru, dgmDur, dgmYavas olsun. Beş dile de destek vermek
> istiyorum. Bunlar da tr_TR, en_US, pt_BR, tr_AZ, de olsun.
>
> Nasıl yapacağım, bana basit bir örnek kod yazabilir misiniz?
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama_at_liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
ilk başta test diyebir klasör oluştur.
ilk başta mo dosyaları hazırlayacağız iki tane birisi ingilizce diğeri
türkçe olucak

ingilizce olan:

domain "test"

msgid "Hello"
msgstr "hello"

msgid "World"
msgstr "world"

türkçe olan:

domain "test"

msgid "Hello"
msgstr "merhaba"

msgid "World"
msgstr "dünya"

Bunların ikisde ayrı dosya !
şimdi önce birinciyi al test.po olarak kaydet ve msgfmt test.po ile mo
dosyalarını üret ilk başta
test/locale/en/LC_MESSAGES/test.mo ya kopyala
sonra aynı şeyi türkçe içinde yap onuda
test/locale/tr/LC_MESSAGES/test.mo ya kopyala
burası zor kısmıydı :-)
sonra test klasörüne şu kodu kopyala

import gettext
turkce=gettext.translation('test', './locale' ,languages=['tr'])
eng=gettext.translation('test', './locale', languages=['en'])
_=eng.ugettext
print _('Hello')+" "+_('World')
_=turkce.ugettext
print _('Hello')+" "+_('World')

sonra kodu çalıştır sırasıyla
hello world
merhaba dünya
yazıcak.
biraz karmaşık oldu. :-) ama umarım isteğinizi karşılar.
_______________________________________________
Linux-programlama mailing list
Linux-programlama_at_liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
Received on Fri 23 May 2008 - 23:29:15 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.