web-dev-qa-db-ja.com

gettextを使用してQMLファイルを翻訳可能にする方法

Python( PySide )および QML に基づいて QtQuick アプリを作成したいと思います。

Qtアプリには独自の翻訳技術があることは知っていますが、これについては gettext に固執したいと思います。私はそれが可能かどうか知りたい:

  • Gettextツールが.potファイルに文字列を抽出できるように、QMLファイルで翻訳する文字列をマークします
  • 実行時にgettextにQMLファイルを変換させます。

私はこれがC++の nity 2Dコード で行われることを知っているので、Pythonでどのように行うことができるのか疑問に思っています。

注:gettextとQt Linguist形式の間の変換ではなく、実行時に排他的にgettextを使用することについて話しています。

10
David Planella

一般的に言えば、QTでgettext翻訳を使用する方法はありません。これは、ライブラリがここで説明しているように内部翻訳メカニズム(Qtranslateおよび.tsファイル)を使用するためです QTBUG-2404

ただし、実行可能な代替手段があります。

QTには、lconvertと呼ばれるツールキットがあり、これを使用して.tsファイルを.poに、またはその逆に変換できます。

したがって、次の方法ですべての翻訳を抽出できます。

lupdate

次に、lconvertを使用してpoファイルを取得します。

lconvert -of po -o file.po file.ts

翻訳後、poファイルをtsに戻すことができます。

lconvert -of ts -o file.ts file.po

その後、ソフトウェアで使用できます。

lupdateは、QTとQtQuickの両方で使用できます。

6
Angelo

Lupdateのソースをハックして、qsTrの代わりに好きなものを使用できます。 (簡単です)次に、ハッキングされたlupdate + lconvert + libintlを使用してgettextの目的を達成します。

0
snyh