Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Python / Zope

Cevapla
 
LinkBack Seçenekler
Eski 31/05/2008, 18:34   #1 (permalink)
Yönetim Kurulu
 
Muallim-i Âli Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Yer: İstanbul
Mesaj: 254
Varsayılan QT Designer - PyQt - Arayüzü Tamamen Türkçeleştirme

Qt Designer ile birlikte kurulan Linguist adlı programı çalıştırıyoruz. Daha sonra File > Open menüsünden
Qt' nin kurulu olduğu dizindeki translations klasöründen qt_untranslated.ts adlı dosyayı seçip açıyoruz.

Diyelim ki lineEdit e sağ tıklayınca gelen menüdeki yazıları Türkçe yapmak istiyoruz.
Yapmamız gereken aşağıdaki resimdeki gibi QLineEdit i seçmek ve altındakileri tıklayıp
sağ kısımdaki Translation bölümüne & karakterini koyduktan sonra karşılığını yazmak.
& karakterini olmayanlarda aynı durum söz konusu değildir. Onların karşılıklarını direk yazabilirsiniz.



Dil çalışmamızı ayrı bir dosya olarak save_as kısmından kaydedebiliriz.
Eğer dil dosyasını kaydedersek daha sonra üzerinde istediğimiz kısımları da istediğimiz dilde çeviri için düzenleyebiliriz.
qm dosyası üzerinde oynama yapılamaz.

Şimdi aşağıdaki resimdeki yönergeleri yaparak .qm adlı dosyayı oluşturalım :




Evet geriye bir tek .qm dosyasını arayüze uygulamak kaldı.
qt_turkce.qm diye dosyayı oluşturduğunuzu varsayıyorum :

app = QtGui.QApplication(sys.argv) kodundan hemen sonra aşağıdaki tarzda kodlarımızı yazıyoruz :

1. yol : (C:\ dizinine qt_turkce.qm diye dosyayı oluşturduğunuzu varsayıyorum.)

Kod:
tr_yukle = QtCore.QTranslator()
tr_yukle.load("C:/qt_turkce.qm")
app.installTranslator(tr_yukle)
2. yol : (Eğer .pyw dosyasımızın bulunduğu dizine koymak istiyorsak bu dosyayı o zaman şöyle bir yol izlenebilir.)

Kod:
dizin_pyw = os.path.realpath(__file__)

# En sondaki nokta karakterini arayıp konumunu buluyoruz.
dizin = dizin_pyw.rfind('.')

# dizin - 6 ile .pyw den önceki kısım ne kadarlık karakterse / karaktere kadar olan kısımı alıyoruz.
dizin = dizin_pyw[: dizin - 6]

# Eğer C:\ şeklinde bulduysa C:/ bu hâle getiriyoruz.
# Gerçi bu hâle getirmesek de düzgün çalışıyor. (Linux'ta denemedim)

if dizin.find('\\'):
    # Eğer .pyw dosyamızın olduğu yerde bir klasöre atacaksak onu burada ekliyoruz.
    dizin = dizin.replace('\\', '/') + "ts/"

# Qt dil dönüştürücünü tr_yukle değişkenine atama yapıyoruz.
tr_yukle = QtCore.QTranslator()

# Eğer buradaki gibi (dizin + "dosya_adi.qm") şeklinde yapmazsanız, qm dosyasını yüklenmez.
# Ya bu tarzda yapın veya 1. yolu deneyin.
tr_yukle.load(dizin + "qt_turkce.qm")

# qm dosyasımı arayüze yüklüyoruz.
app.installTranslator(tr_yukle)

İlk Hâli :



Sonuç :



Kod:
# -*- coding: utf-8 -*-

import sys, os
from PyQt4 import QtCore, QtGui

class turkce:
    def __init__(self, ui):
        self.ui = ui

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(QtCore.QSize(QtCore.QRect(0,0,300,300).size()).expandedTo(MainWindow.minimumSizeHint()))
        MainWindow.setMinimumSize(QtCore.QSize(300,300))
        MainWindow.setMaximumSize(QtCore.QSize(300,300))

        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.lineEdit = QtGui.QLineEdit(self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(30,90,241,31))
        self.lineEdit.setObjectName("lineEdit")
        MainWindow.setCentralWidget(self.centralwidget)

        self.statusbar = QtGui.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "lineEdit - Türkçe Menü", None, QtGui.QApplication.UnicodeUTF8))

app = QtGui.QApplication(sys.argv)
"""
dizin_pyw = os.path.realpath(__file__)
dizin = dizin_pyw.rfind('.')
dizin = dizin_pyw[: dizin - 6]
if dizin.find('\\'):
    dizin = dizin.replace('\\', '/') + "ts/"
"""
tr_yukle = QtCore.QTranslator()
tr_yukle.load("C:\qt_turkce.qm")
app.installTranslator(tr_yukle)
      
window = QtGui.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(window)
window.show()
sys.exit(app.exec_())
__________________
Güzel gören güzel düşünür, güzel düşünen hayatından lezzet alır.
(Said Nursi)


Java Tutorial:http://java.sun.com/docs/books/tutor.../download.html
Muallim-i Âli hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
PhotoShop Dökümanlarını Türkçeleştirme C-Nem Beyin Fırtınası 23 03/02/2007 12:25
PHP doc. türkçeleştirme çalışması Yns PHP 6 10/05/2005 23:58
Forumu Türkçeleştirme hakkında o-z-a-n Ceviz.net Hakkında 0 07/01/2005 17:17
Program Arayüzü ab Photoshop / Corel / PSP 15 09/08/2002 12:27


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 17:38.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net