日本語 English

PySideプログラムの国際化

まず、次のようにプロジェクトファイルを作成します。
kalam.pro

  1. SOURCES = main.py
  2. TRANSLATIONS = i18n/en_GB.ts \
  3.     i18n/eo_EO.ts

TRANSLATIONSでは、これから作成する翻訳したい言語の翻訳ファイルを指定します(この例ではイギリス英語とエスペラント語)。

次のコマンドを実行します。

  1. # Ubuntuの場合、このツールはpyside-toolsパッケージに含まれています
  2. $ pyside-lupdate kalam.pro

これでQt Linguist( Linguistのチュートリアル [doc.qt.nokia.com] )で使用する翻訳ファイルが作成されました。 Qt Linguistで.tsファイルを読み込み、各項目をダブルクリックして訳を入力します。翻訳が済んだら「?」アイコンをクリックして完了アイコンに切り替えます。最後に「ファイル」→「リリース」を実行してqmファイルを作成します。Qtのtranslatorはこのqmファイルを使ってアプリケーションの翻訳を行います。

アプリケーションの翻訳対応は次のように簡単に追加できます。

  1.     translator = QtCore.QTranslator()
  2.     translator.load('i18n/eo_EO')
  3.     app = QtGui.QApplication(sys.argv)
  4.     app.installTranslator(translator)

上の例ではエスペラント語の翻訳をロードしています。

QObjectは翻訳された文字列を返す関数trをもっています。先ほど使用したpyside-lupdateコマンドはソースコードをスキャンして、関数trを呼んでいるインスタンスの場所を探しています。

  1. self.tr('sksddsl')
  2. QObject.tr('xyz')
  3. MyClassX.tr('nanana')

Categories: