Ich habe eine Reihe von Anwendungen geschrieben in PyQt4, wo ich Standard-Python-gettext-Bibliothek für die Internationalisierung und Lokalisierung von GUI verwendet habe. Es funktioniert gut für mich. Aber ich habe Gettext gewählt, nur weil ich bereits Kenntnisse und Erfahrung mit Gettext-Nutzung und null Erfahrung mit Qt4 tr () -Ansatz hatte.
Nun möchte ich lieber beide Ansätze vergleichen und verstehen, was ich verpasse, indem ich gettext anstelle von QObject.tr verwende, und gibt es einen ernsthaften Grund, warum ich gettext nicht für Qt4 / PyQt4-Anwendungen verwenden sollte?
>Nach meinem Verständnis sind die Vorteile von gettext:
Was ich als Vorteile von QObject.tr () sehe:
Was ich als Nachteile von QObject.tr () gegenüber gettext:
seheAber alle obigen Punkte sind nicht kritisch genug, um klar zu sagen, dass jedes Werkzeug besser ist als das andere. Und ich will keinen Flammenkrieg darüber führen, was besser ist, weil es sehr subjektiv ist. Ich möchte nur wissen, was ich vermisse als Vor- und Nachteile von QObject.tr () vs gettext.
Ein einfacher Grund, QObject.tr()
zu verwenden, ist:
Es erspart Ihnen die Installation von gettext unter Windows, wodurch die plattformübergreifende Arbeit ein wenig einfacher wird. Ich versuche, so wenig binäre Abhängigkeiten wie möglich auf Windows zu haben.
Alle haben ihre Vor- und Nachteile, aber um sie klarer zu definieren, müssten Sie zuerst definieren, ob Sie auf eine mobile Umgebung oder eine Desktop-Umgebung abzielen.
In unserem Unternehmen verwenden wir verschiedene Methoden, einfach weil die ideale Lösung noch nicht existiert. Für die Desktop-Entwicklung verwenden wir PO-Dateien einfach deshalb, weil die Schaltflächen nicht skaliert sind und daher der Text passt. Bei der mobilen Entwicklung hängt die Übersetzung einer Zeichenfolge von der Größe der Schaltfläche ab, die bei Quer- und Hochformatgeräten unterschiedlich sein kann. Das macht es etwas komplizierter, da eine PO-Datei nur eine Übersetzung eines bestimmten Wortes enthalten kann. Also haben wir XLIFF dafür gewählt, also konnten wir einer Zeichenkette eindeutige IDs zuweisen. Dies ist auch keine leichte Aufgabe, da es keine guten Lösungen gibt, um .RC-Dateien in XLIFF-Dateien umzuwandeln. (Weil aktuelle Werkzeuge ALLE Zeichenfolgen zwischen "" umwandeln, was natürlich unerwünschtes Verhalten ist). Also habe ich einen Konverter für diese Aufgabe geschrieben.
Wenn Sie jedoch an Lokalisierung denken, dann sind Pluralformen sehr wichtig, also ist dies keine gute Lokalisierungslösung. Daher würde ich sagen, für PO Gettext gehen.
Grüße, Floris.
Zur Zeit verarbeitet Qt keine Pluralformen, wenn Sie QT_TRANSLATE_NOOP
verwendenTags und Links pyqt4 localization internationalization gettext