From 90825e2392b2d70e43c7a25b8a3752299a933894 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- python/pyqt/examples3/i18n/i18n.pro | 15 +++ python/pyqt/examples3/i18n/i18n.py | 147 ++++++++++++++++++++++++++++++ python/pyqt/examples3/i18n/mywidget.py | 47 ++++++++++ python/pyqt/examples3/i18n/mywidget_cs.qm | Bin 0 -> 818 bytes python/pyqt/examples3/i18n/mywidget_cs.ts | 75 +++++++++++++++ python/pyqt/examples3/i18n/mywidget_de.qm | Bin 0 -> 913 bytes python/pyqt/examples3/i18n/mywidget_de.ts | 69 ++++++++++++++ python/pyqt/examples3/i18n/mywidget_el.qm | Bin 0 -> 832 bytes python/pyqt/examples3/i18n/mywidget_el.ts | 68 ++++++++++++++ python/pyqt/examples3/i18n/mywidget_en.qm | Bin 0 -> 337 bytes python/pyqt/examples3/i18n/mywidget_en.ts | 69 ++++++++++++++ python/pyqt/examples3/i18n/mywidget_eo.qm | Bin 0 -> 835 bytes python/pyqt/examples3/i18n/mywidget_eo.ts | 72 +++++++++++++++ python/pyqt/examples3/i18n/mywidget_fr.qm | Bin 0 -> 884 bytes python/pyqt/examples3/i18n/mywidget_fr.ts | 68 ++++++++++++++ python/pyqt/examples3/i18n/mywidget_it.qm | Bin 0 -> 763 bytes python/pyqt/examples3/i18n/mywidget_it.ts | 72 +++++++++++++++ python/pyqt/examples3/i18n/mywidget_jp.qm | Bin 0 -> 738 bytes python/pyqt/examples3/i18n/mywidget_jp.ts | 68 ++++++++++++++ python/pyqt/examples3/i18n/mywidget_ko.qm | Bin 0 -> 738 bytes python/pyqt/examples3/i18n/mywidget_ko.ts | 68 ++++++++++++++ python/pyqt/examples3/i18n/mywidget_no.qm | Bin 0 -> 830 bytes python/pyqt/examples3/i18n/mywidget_no.ts | 68 ++++++++++++++ python/pyqt/examples3/i18n/mywidget_ru.qm | Bin 0 -> 799 bytes python/pyqt/examples3/i18n/mywidget_ru.ts | 68 ++++++++++++++ python/pyqt/examples3/i18n/mywidget_zh.qm | Bin 0 -> 706 bytes python/pyqt/examples3/i18n/mywidget_zh.ts | 68 ++++++++++++++ 27 files changed, 1042 insertions(+) create mode 100644 python/pyqt/examples3/i18n/i18n.pro create mode 100755 python/pyqt/examples3/i18n/i18n.py create mode 100644 python/pyqt/examples3/i18n/mywidget.py create mode 100644 python/pyqt/examples3/i18n/mywidget_cs.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_cs.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_de.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_de.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_el.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_el.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_en.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_en.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_eo.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_eo.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_fr.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_fr.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_it.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_it.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_jp.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_jp.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_ko.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_ko.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_no.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_no.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_ru.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_ru.ts create mode 100644 python/pyqt/examples3/i18n/mywidget_zh.qm create mode 100644 python/pyqt/examples3/i18n/mywidget_zh.ts (limited to 'python/pyqt/examples3/i18n') diff --git a/python/pyqt/examples3/i18n/i18n.pro b/python/pyqt/examples3/i18n/i18n.pro new file mode 100644 index 00000000..fc55895e --- /dev/null +++ b/python/pyqt/examples3/i18n/i18n.pro @@ -0,0 +1,15 @@ +SOURCES = mywidget.py \ + i18n.py + +TRANSLATIONS = mywidget_cs.ts \ + mywidget_de.ts \ + mywidget_el.ts \ + mywidget_en.ts \ + mywidget_eo.ts \ + mywidget_fr.ts \ + mywidget_it.ts \ + mywidget_jp.ts \ + mywidget_ko.ts \ + mywidget_no.ts \ + mywidget_ru.ts \ + mywidget_zh.ts diff --git a/python/pyqt/examples3/i18n/i18n.py b/python/pyqt/examples3/i18n/i18n.py new file mode 100755 index 00000000..06cc97f5 --- /dev/null +++ b/python/pyqt/examples3/i18n/i18n.py @@ -0,0 +1,147 @@ +#!/usr/bin/env python + +# Copyright (c) 2002 Detlev Offenbach + +from whrandom import randint +import sys + +from qt import * + +from mywidget import MyWidget + +class QVDialog(QDialog): + def __init__(self, parent=None, name=None, modal=0, flags=0): + QDialog.__init__(self, parent, name, modal, flags) + + self.vb = QVBoxLayout(self, 8) + self.vb.setAutoAdd(1) + + self.hb = None + self.map = {} + #self.sm = QSignalMapper(self) + self.connect(self, PYSIGNAL('mapped(int)'), self.done) + + def addButtons(self, cancel=None, ok=None, mid1=None, mid2=None, mid3=None): + if ok is None: + self.addButton(self.tr("OK"),1) + else: + self.addButton(ok,1) + + if mid1 is not None: + self.addButton(mid1,2) + + if mid2 is not None: + self.addButton(mid2,3) + + if mid3 is not None: + self.addButton(mid3,4) + + if cancel is None: + self.addButton(self.tr('Cancel'),0) + else: + self.addButton(cancel,0) + + def addButton(self, text, result): + if self.hb is None: + self.hb = QHBox(self) + c = QPushButton(text, self.hb) + self.setMapping(c, result) + self.connect(c, SIGNAL('clicked()'), self.mapit) + + def setMapping(self, c, result): + self.map[c] = result + + def mapit(self): + qo = self.sender() + self.emit(PYSIGNAL('mapped(int)'), (self.map[qo],)) + +translator = None +wlist = [] # keep reference to widgets + +def showLang(lang): + global translator + + qApp.setPalette(QPalette(QColor(220-randint(0,64),220-randint(0,64),220-randint(0,64)))) + + language = "mywidget_"+lang+".qm" + fi = QFileInfo(language) + + if not fi.exists(): + QMessageBox.warning(None, "File error", + "Cannot find translation for language: "+lang+\ + "\n(try eg. 'de' or 'en')") + return None + + if translator is not None: + qApp.removeTranslator(translator) + translator = None + + translator = QTranslator(None) + translator.load(language,".") + qApp.installTranslator(translator) + m = MyWidget() + m.setCaption("PyQt Example - i18n - " + unicode(m.caption())) + wlist.append(m) + return m + +def main(argv): + app = QApplication(argv) + + qm = ["cs", "de", "el", "en", "eo", "fr", "it", "jp", "ko", "no", "ru", "zh"] + + lang = None + if len(argv) == 2: + lang = argv[1] + + if (len(argv) != 2) or (lang == "all"): + dlg = QVDialog(None, None, 1) + qmb = [] + r = 0 + if lang == "all": + r=2 + else: + bg = QButtonGroup(4, Qt.Vertical, "Choose Locales", dlg) + loc = QTextCodec.locale() + for i in range(0,len(qm)): + qmb.append(QCheckBox(qm[i], bg)) + qmb[i].setChecked(str(loc) == qm[i]) + dlg.addButtons("Cancel","OK","All") + r = dlg.exec_loop() + + if r: + tight = qApp.desktop().screen().width < 1024 + x = 5 + y = 25 + for i in range(0,len(qm)): + if (r == 2) or (qmb[i].isChecked()): + w = showLang(qm[i]) + + if w == None: + sys.exit(0) + + app.connect(app, SIGNAL('lastWindowClosed()'), qApp, SLOT('quit()')) + w.setGeometry(x,y,197,356) + w.show() + if tight: + x += 8 + y += 8 + else: + x += 205 + if x > 1000: + x = 5 + y += 384 + + else: + sys.exit(0) + + else: + lang = argv[1] + m = showLang(lang) + app.setMainWidget(m) + m.setCaption("PyQt Example - i18n") + m.show() + + return app.exec_loop() + +if __name__ == "__main__": + main(sys.argv) diff --git a/python/pyqt/examples3/i18n/mywidget.py b/python/pyqt/examples3/i18n/mywidget.py new file mode 100644 index 00000000..60e267a4 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget.py @@ -0,0 +1,47 @@ +# Copyright (c) 2002 Detlev Offenbach + +from qt import * + +class MyWidget(QMainWindow): + + def __init__(self, parent=None, name=None): + QMainWindow.__init__(self, parent, name) + + self.central = QVBox(self) + self.central.setMargin(5) + self.central.setSpacing(5) + self.setCentralWidget(self.central) + + self.setCaption(self.trUtf8("""Internationalization Example""")) + + self.file = QPopupMenu(self) + self.file.insertItem(self.trUtf8("E&xit"), qApp, SLOT("quit()"), + QKeySequence(self.trUtf8("Ctrl+Q","File|Quit"))) + self.menuBar().insertItem(self.trUtf8("&File"), self.file) + + self.statusBar().message(self.trUtf8('''Language: English''')) + + self.label = QLabel(self.trUtf8("The Main Window"), self.central) + + self.gbox = QButtonGroup(1, QGroupBox.Horizontal, + self.trUtf8("View"), self.central) + rb = QRadioButton(qApp.translate('MyWidget','Perspective'), self.gbox) + rb = QRadioButton(qApp.translate('MyWidget','Isometric'), self.gbox) + rb = QRadioButton(qApp.translate('MyWidget','Oblique'), self.gbox) + + self.initChoices(self.central) + + choices = [ + QT_TRANSLATE_NOOP("MyWidget", "First"), + QT_TRANSLATE_NOOP("MyWidget", "Second"), + QT_TRANSLATE_NOOP("MyWidget", "Third") + ] + + def initChoices(self, parent): + self.lb = QListBox(parent) + for ch in self.choices: + self.lb.insertItem(self.trUtf8(ch)) + + def closeEvent(self, e): + QWidget.closeEvent(self, e) + self.emit(PYSIGNAL('closed'), ()) diff --git a/python/pyqt/examples3/i18n/mywidget_cs.qm b/python/pyqt/examples3/i18n/mywidget_cs.qm new file mode 100644 index 00000000..f95090d6 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_cs.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_cs.ts b/python/pyqt/examples3/i18n/mywidget_cs.ts new file mode 100644 index 00000000..4cf61f15 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_cs.ts @@ -0,0 +1,75 @@ + + + MyWidget + + View + Pohled + + + &File + &Soubor + + + E&xit + &Konec + + + First + První + + + Third + Třetí + + + Language: English + Jayzk: Český + + + The Main Window + Hlavní okno + + + Ctrl+Q + Ctrl+Q + + + Oblique + Nakloněný + + + Second + Druhý + + + Isometric + Isometrický + + + Perspective + Perspektivní + + + Internationalization Example + Ukázka lokalizace + + + + QAccel + + Ctrl + Ctrl + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_de.qm b/python/pyqt/examples3/i18n/mywidget_de.qm new file mode 100644 index 00000000..64338556 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_de.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_de.ts b/python/pyqt/examples3/i18n/mywidget_de.ts new file mode 100644 index 00000000..d114b8b5 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_de.ts @@ -0,0 +1,69 @@ + + + MyWidget + + First + Erstens + + + Second + Zweitens + + + Third + Drittens + + + Internationalization Example + Internationalisierungsbeispiel + + + E&xit + Be&enden + + + &File + &Datei + + + Language: English + Sprache: Deutsch + + + The Main Window + Das Hauptfenster + + + View + Ansicht + + + Perspective + Perspektivisch + + + Isometric + Isometrisch + + + Oblique + Schief + + + Ctrl+Q + File|Quit + Strg+Q + + + + QVDialog + + OK + OK + + + Cancel + Abbruch + + + diff --git a/python/pyqt/examples3/i18n/mywidget_el.qm b/python/pyqt/examples3/i18n/mywidget_el.qm new file mode 100644 index 00000000..15d76895 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_el.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_el.ts b/python/pyqt/examples3/i18n/mywidget_el.ts new file mode 100644 index 00000000..59fb2289 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_el.ts @@ -0,0 +1,68 @@ + + + MyWidget + + &File + &Αρχείο + + + Ctrl+Q + Ctrl+Q + + + E&xit + Έ&ξοδος + + + First + Πρώτο + + + Internationalization Example + Παράδειγμα διεθνοποίησης + + + Isometric + Ισομετρική + + + Language: English + Γλώσσα: Ελληνικά + + + Oblique + Πλάγια + + + Perspective + Προοπτική + + + Second + Δεύτερο + + + The Main Window + Κύριο παράθυρο + + + Third + Τρίτο + + + View + Όψη + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_en.qm b/python/pyqt/examples3/i18n/mywidget_en.qm new file mode 100644 index 00000000..6bd22c41 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_en.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_en.ts b/python/pyqt/examples3/i18n/mywidget_en.ts new file mode 100644 index 00000000..f231669f --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_en.ts @@ -0,0 +1,69 @@ + + + MyWidget + + First + + + + Second + + + + Third + + + + Internationalization Example + + + + E&xit + + + + &File + + + + Language: English + + + + The Main Window + + + + View + + + + Perspective + + + + Isometric + + + + Oblique + + + + Ctrl+Q + File|Quit + + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_eo.qm b/python/pyqt/examples3/i18n/mywidget_eo.qm new file mode 100644 index 00000000..372cf792 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_eo.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_eo.ts b/python/pyqt/examples3/i18n/mywidget_eo.ts new file mode 100644 index 00000000..381870de --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_eo.ts @@ -0,0 +1,72 @@ + + + MyWidget + + &File + &Dosiero + + + Ctrl+Q + Ctrl+F + + + E&xit... + &Fini... + + + First + Unue + + + Internationalization Example + Ekzemplo pri internaciigo + + + Isometric + Isometria + + + Language: English + Lingvo: Esperanto (ĈĜĤĴŜŬĉĝĥĵŝŭ) + + + Oblique + Oblikva + + + Perspective + Perspektiva + + + Second + Due + + + The Main Window + La Ĉeffenestro + + + Third + Trie + + + View + Aspekto + + + E&xit + + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_fr.qm b/python/pyqt/examples3/i18n/mywidget_fr.qm new file mode 100644 index 00000000..12a84640 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_fr.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_fr.ts b/python/pyqt/examples3/i18n/mywidget_fr.ts new file mode 100644 index 00000000..a029084a --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_fr.ts @@ -0,0 +1,68 @@ + + + MyWidget + + View + Vue + + + &File + &Fichier + + + E&xit + &Quitter + + + First + Premier + + + Third + Troisième + + + Language: English + Langage : Français + + + The Main Window + La fenêtre principale + + + Ctrl+Q + Ctrl+Q + + + Oblique + Oblique + + + Second + Second + + + Isometric + Isométrique + + + Perspective + Perspective + + + Internationalization Example + Exemple d'internationalisation + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_it.qm b/python/pyqt/examples3/i18n/mywidget_it.qm new file mode 100644 index 00000000..075bee25 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_it.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_it.ts b/python/pyqt/examples3/i18n/mywidget_it.ts new file mode 100644 index 00000000..a450deb4 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_it.ts @@ -0,0 +1,72 @@ + + + MyWidget + + E&xit... + &Esci... + + + First + Primo + + + Internationalization Example + Esempio di localizzazione + + + Isometric + Isometrica + + + Language: English + Lingua: Italiano + + + Oblique + Obliqua + + + Perspective + Prospettica + + + Second + Secondo + + + The Main Window + La Finestra Principale + + + Third + Terzo + + + View + Vista + + + E&xit + + + + Ctrl+Q + + + + &File + + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_jp.qm b/python/pyqt/examples3/i18n/mywidget_jp.qm new file mode 100644 index 00000000..8942dd7c Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_jp.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_jp.ts b/python/pyqt/examples3/i18n/mywidget_jp.ts new file mode 100644 index 00000000..2a7345f6 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_jp.ts @@ -0,0 +1,68 @@ + + + MyWidget + + &File + ファイル(&F) + + + Ctrl+Q + Ctrl+Q + + + E&xit + 終了(&X) + + + First + 第一行 + + + Internationalization Example + 国際化(i18n)の例 + + + Isometric + 等角投影法 + + + Language: English + 言語: 日本語 + + + Oblique + 斜め投影法 + + + Perspective + 遠近法 + + + Second + 第二行 + + + The Main Window + メインウィンドウ + + + Third + 第三行 + + + View + 表示方式 + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_ko.qm b/python/pyqt/examples3/i18n/mywidget_ko.qm new file mode 100644 index 00000000..dccc2ba9 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_ko.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_ko.ts b/python/pyqt/examples3/i18n/mywidget_ko.ts new file mode 100644 index 00000000..acc8f9b5 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_ko.ts @@ -0,0 +1,68 @@ + + + MyWidget + + &File + 파일&F + + + Ctrl+Q + Ctrl+E + + + E&xit + 종료&X + + + First + 첫번째 + + + Internationalization Example + 국제화 예제 + + + Isometric + Isometric + + + Language: English + 언어 : 한국어 + + + Oblique + Oblique + + + Perspective + Perspective + + + Second + 두번째 + + + The Main Window + 메인 윈도우 + + + Third + 세번째 + + + View + 보기 + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_no.qm b/python/pyqt/examples3/i18n/mywidget_no.qm new file mode 100644 index 00000000..2adc1361 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_no.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_no.ts b/python/pyqt/examples3/i18n/mywidget_no.ts new file mode 100644 index 00000000..341c6647 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_no.ts @@ -0,0 +1,68 @@ + + + MyWidget + + View + Visning + + + &File + &Fil + + + E&xit + &Slutt + + + First + Første + + + Third + Tredje + + + Language: English + Språk: Norsk + + + The Main Window + Hovedvinduet + + + Ctrl+Q + Ctrl+S + + + Oblique + Skjev + + + Second + Andre + + + Isometric + Isometrisk + + + Perspective + Perspektiv + + + Internationalization Example + Internasjonaliseringseksempel + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_ru.qm b/python/pyqt/examples3/i18n/mywidget_ru.qm new file mode 100644 index 00000000..ebc512ec Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_ru.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_ru.ts b/python/pyqt/examples3/i18n/mywidget_ru.ts new file mode 100644 index 00000000..07070b03 --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_ru.ts @@ -0,0 +1,68 @@ + + + MyWidget + + View + Вид + + + &File + Файл + + + E&xit + Выход + + + First + Первый + + + Third + Третий + + + Language: English + Язык: Русский + + + The Main Window + Главное окно + + + Oblique + Курсив + + + Second + Второй + + + Isometric + Изометрический + + + Perspective + Перспектива + + + Internationalization Example + Пример интернациноализации + + + Ctrl+Q + + + + + QVDialog + + OK + + + + Cancel + + + + diff --git a/python/pyqt/examples3/i18n/mywidget_zh.qm b/python/pyqt/examples3/i18n/mywidget_zh.qm new file mode 100644 index 00000000..a890c096 Binary files /dev/null and b/python/pyqt/examples3/i18n/mywidget_zh.qm differ diff --git a/python/pyqt/examples3/i18n/mywidget_zh.ts b/python/pyqt/examples3/i18n/mywidget_zh.ts new file mode 100644 index 00000000..8b015d6d --- /dev/null +++ b/python/pyqt/examples3/i18n/mywidget_zh.ts @@ -0,0 +1,68 @@ + + + MyWidget + + View + 视图 + + + &File + 文件[&F] + + + E&xit + 退出[&x] + + + First + 第一个 + + + Third + 第三个 + + + Language: English + 语言: 简体中文 + + + The Main Window + 主窗口 + + + Ctrl+Q + Ctrl+Q + + + Oblique + 斜投影 + + + Second + 第二个 + + + Isometric + 等角投影 + + + Perspective + 透视投影 + + + Internationalization Example + 国际化范例 + + + + QVDialog + + OK + + + + Cancel + + + + -- cgit v1.2.1