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

---------

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

From: Necmettin Begiter <necmettin.begiter_at_gmail.com>
Date: Fri, 23 May 2008 22:45:55 +0300
Message-ID: <3787dfa80805231245r70ee7834mf4227230dad84c3b@mail.gmail.com>

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.

Bu söylediðiniz içinde sadece 5-10 katar bulunan programlar için
geçerli olabilir, onlara da program demiyoruz zaten :)

- Bir yazýlýmý bütün dillere ayný adam çevirmez.
- Bir yazýlýmý baþka baþka dillere çevirme iþleri eþzamanlý olarak
yürütülür, tek bir dosya üzerinde birden fazla insanýn ayný anda
çalýþmasý sadece problem demektir.
- Bir yazýlýmýn birden fazla dile çevrilmesi için kaynak koduna
müdahale etmek mantýksýz bir uygulama þeklidir, çevirmenin kaynak kod
üzerinde deðiþiklik yapýp yapmadýðýný (isteyerek ya da istemeyerek)
kontrol etmek gibi lüzumsuz uðraþlara neden olur.
- Bir yazýlýmýn kaynak kodunda, bayt kodunda ya da derlenmiþ halinde
ne kadar az katar olursa hafýzada kaplayacaðý alan o kadar azalýr.
Ýçinde 500 katar olan bir programýn 10 dilli olmasý durumunda bu 1000
katar demektir, bu katarlarý programýn içine koymak programýn bakýmýný
zorlaþtýrmaktan baþka bir iþe yaramaz.
- Dil seçimi gibi iþler için Linux sistemlerde çevre deðiþkenleri
bulunur, gettext altyapýsýný kullandýðýnýzda programýnýz otomatik
olarak sistem diliyle açýlýr (eðer program o diline çevrilmiþse),
üstelik çalýþma anýnda programýn arayüz dilini deðiþtirmek çok
kolaydýr.
- Diller kaynak kodda tutulduðunda her çevirmen deðiþen katarlarý
takip etmek zorundadýr. Oysa gettext gibi bir altyapý kullanýldýðýnda
sadece PO dosyalarý hazýrlanýrken bu kontroller otomatik olarak
yapýlýr, çevirmenler bulanýk iletilere bakarak deðiþen katarlarý
kolaylýkla görebilir ve çevirilerini güncelleyebilirler.
- Gettext kullanýldýðýnda tek bir komut ile kaynak kodda çevrilebilir
olan katarlar bir POT dosyasýna alýnýr. Bu POT dosyasý çoðaltýlýr, adý
istenen dillerin ISO bilmemkaç tablosundaki kýsaltmalarýyla ve PO
uzantýsýyla deðiþtirilir (proje.pot dosyasý tr.po, de.po, pt_BR.po
gibi adlarla çoðaltýlýr), çevirmen çevirisini yapar, PO dosyasýný
programýn bakýmýndan sorumlu olan kiþiye gönderir, o kiþi de o PO
dosyalarýný tek bir komutla MO haline getirir ve pakete dahil eder.

Eðer programýnýzda 10'dan fazla katar ve/veya 2'den fazla dile destek
bulunacaksa, gettext kullanmamak kendi iþini zorlaþtýrmaktýr.

-
Bu arada þunu da söyleyeyim, gettext altyapýsýnýn Python ile nasýl
kullanýldýðýna dair örneklere Pardus SVN'sindeki Pardus projelerinden
bakabilirsiniz, en güzel kullanýmlarýnýn nasýl olduðunu birinci elden
öðrenmiþ olursunuz.

Necmettin Begiter
Pardus Geliþtiricisi
_______________________________________________
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 - 22:16:30 EEST

---------

Bu arsiv hypermail 2.2.0 tarafindan uretilmistir.