Çok çok uzun zamandır bulmaya çalıştığım ama bulamadığım bir çözümü bugün çözmüş bulunmaktayım.Sorun şuydu:
PyQt4 ile yazdığım programdaki QLineEdit gibi nesnelere sağ tıklayınca açılan "kes,kopyala,yapıştır vs vs" menüsünde yazılar hep ingilizce yazıyordu.Yani yine örnek üzerinden gitmek gerekirse "Cut,Copy,Past vs vs" yazıyordu.Tabi diğer tüm nesnelerdeki başlıklar,içerikler etiketleri vs herşey ingilizce yazıyordu.Dil seçimine falan bakınca herşey normal görünüyordu yani varsayılan dil türkçe/türkiye olarak zaten belirliydi.Çok uğraşmıştım geçici bir çözüm olarak internette bulduğum bir çeviri dosyasını ".qm" projeme dil dosyası olarak tanıtıp türkçe arayüze kavuşmuştum.
Fakat şimdi PyKDE4`üde kullanmaya başladım aynı projede.Dosya seçim menüsü falan tahmin edeceğiniz üzere yine ingilizce görünüyordu.PyQt4 neslerini türkçeye çevirmeyi başarmıştım ama PyKDE4 nesnelerinide aynı yolla çözmek imkansız gibi bişeydi.Bunun için yine araştırmalara başladım.Yine çok uğraştım ama bu sefer güzel bir çözüm buldum.Çokda basitmiş aslında ama cahillik işte.İlk önce bir ".po" dosyası oluşturuyoruz.İçerisinde hiç bir çeviri bilgisi olması şart değil sadece gerekli tanımlamalar yapılmış olsun yeter.Bu ".po" dosyasını ".mo" dosyasına çevirmemiz gerekmektredir bunun içinde konsole aşağıdaki satırları yazabilirsiniz.
msgfmt tr.po -o tr.mo
KApplication`ı tanımlarken "catalog" değerine yazdığınız bilgi oluşturduğumuz ".mo" dosyasının adına yazıyoruz.Örnek olarak ben
catalog = "OrganizasyonizM"
yazmıştım buna göre oluşturduğumuz ".mo" dosyasının adıda "OrganizasyonizM.mo" olmalı.
Şimdi bu dosyamızı "/usr/share/locale/tr/LC_MESSAGES" (1) dizinine yada sadece kendi kullanıcımızın dizinine yani "/home/xxxxxxxx/.kde4/share/locale/tr/LC_MESSAGES" (2) dizinine kopyalayalım.
(1) = kopyalayabilmeniz için root yetkileri gerekir ve her kullanıcı için türkçe yapılmış olur
(2) = sadece kendi kullanıcımız türkçe görür.Sistemdeki diğer kullanıcılar yine ingilizce göreceklerdir.
Artık programınız tamamen türkçe oldu.Tüm nesneler,tüm dialoglar,dosya seçme-kaydetme pencereleri vs vs her şey tamamen türkçe oldu.
KDE size birde sürpriz yapıyor bu durumda.Bildiğiniz gibi "File" kelimeisisin türkçe karşığı "Dosya"`dır.Bundan KDE`nin de haberi var ve bunu size her istediğiniz zaman söyleyebilir.Yani programınızda aşağıdaki gibi bir kod yazarsanır siz oraya yazdığınız "File" kelimesini değil, türkçe karşılığı olan "Dosya" kelimesini göreceksiniz.
self.pbtnSave = QPushButton(self.tr("File"))
Bu satır ile butonun adı bize yukarıda belirttiğim gibi "File" değil,"Dosya" olarak görünecektir.
Bu sistemi çözmek beni epeyce zorladı ama gerçekten süper bir sistem yapmışlar.Bir çok çeviriyi yapmama gerek kalmadı bu sürpriz sayesinde.
Diğer merak ettikleriniz için OrganizasyonizM projemi takip edebilirsiniz.SVN den kodları çekip bakabilrisiniz.Henüz bu halini yayımlamadım.SVN de çokludil gelişimini "https://organizasyonizm.googlecode.com/svn/trunk/EN/" dizininde yapıyoruz.Projeyi svn den bu bilgiyle çekebilirsiniz veya "http://code.google.com/p/organizasyonizm/source/browse/#svn/trunk/EN%3Fstate%3Dclosed" linklinden hiç bir şey indirmeden de kodlara bakabilirsiniz.Henüz tüm projeye uygulanmadı bu yüzden kodlarda bulmanız birazcık zaman alabilir:).
I love you Python, I love you PyQt4, I love you PyKDE4 and I love you Baby:).
Günlüğümde paylaştığım hiç bir şey için doğruluk garantisi veremem. Bazen içimden geleni, bazen olması gerekeni, bazen yaşadığımı, bazen düşündüğümü, bazende istediğimi yazıyorum. Amacım kesinlikle birilerini yanıltmak, kırmak, sevindirmek değildir. En genel amacım piskolojik olarak rahatlamaktır. Bunun dışındaki ender amaçlarımdan birkaçıda paylaşmak, bir şeyleri ıspatlamak ve kendimi tanıtmaya çalışmaktır. Yazdığım hiç bir şeye inanmak ve hiç bir şeyi uygulamak zorunda değilsiniz. Hatta okumanız bile zorunlu değildir. Tüm bunların yanında yazdığım herşeyi paylaşma özgürlüğünüz bulunmaktadır. İstediğiniz gibi, istediğiniz yerde, istediğiniz zaman, istediğiniz kişilerle paylaşabilirsiniz.Bunun için bir şart belirlemem gerekirse tek şartım "Hiç bir şey için doğruluk garantisi vermiyorum" notu ile birlikte paylaşmanız olacaktır.
Yazan, çizen, düşünen, belirten, ifade eden, açıklamaya çalışan... kısacası gördüğünüz, okuduğunuz, hissettiğiniz, düşündüğünüz herşeyin sebeblerinden birisi benim. Bu yüzden herşeyi unutmanızı tavsiye ederim. Eğer unutmazsanız bu sizin probleminiz olacaktır artık.
Yazdığım herşeyi özgür iradem ile yazdığımı belirtmek istiyorum. Ben Murat Demir.
Son yorumlar
6 hafta 5 gün önce
12 hafta 6 gün önce
17 hafta 1 gün önce
17 hafta 2 gün önce
22 hafta 3 gün önce
22 hafta 4 gün önce
38 hafta 6 gün önce
43 hafta 2 gün önce
45 hafta 6 gün önce
1 yıl 7 hafta önce