質問

どのように私は簡単に標準ボタン(はい、いいえ)QMessageBoxからを翻訳することができますか?私は、これらの引数にself.tr使用することはできませんので、私は他のいくつかの簡単な方法でそれを達成したいと思います。私は、全体の翻訳システムを使用する必要がありますか?

役に立ちましたか?

解決

ここで私がやった方法です。

まず、あなたのアプリケーションディレクトリにqt_LOCALE.qmファイルをコピーする必要があります。鉱山だっます:

cp /usr/share/qt4/translations/qt_fr.qm .

第二に、あなたはあなたのアプリケーションのためのトランスレータをロードする必要があります。

application = QApplication(argv)

locale = QLocale.system().name()
qtTranslator = QTranslator()
if qtTranslator.load("qt_"+locale):
    application.installTranslator(qtTranslator)

main_window = QMainWindow()
main_window.show()

exit(application.exec_())

他のヒント

あなたが自分で変換する必要がよろしいですか?他のツールキットでは、標準的なボタンは自動的にユーザーが使用している言語に翻訳されています。

最も簡単な方法は次のようなものです。

mymessagebox.button(mymessagebox.Yes).setText("Yes, please!")
mymessagebox.button(mymessagebox.No).setText("No, thanks.")

すべての可能な標準のボタンがのQMessageBoxのドキュメントを参照してください。

あなたがはい/いいえ、通常は十分なはずシステム言語の設定、現在の言語に翻訳されていないようにしたい場合。それ以外の場合はNatimの提案をしてみてください。

カスタムテキスト場合:質問()などのような静的メソッドをカスタムボタンのテキストを許可していません。それは、(1は全体のメッセージを読むために持って、はいを意味し、誤って何かないことを意味し、それらを否定するもの誤解してその簡単な、彼らは説明的ではありません)「はい」/「いいえ」のダイアログが考慮される悪いスタイルとして、残念です。カスタムテキストのために、あなたは直接QMessageBoxを使用する必要があります。私は、オプションボタンのテキストを受け入れ、独自の静的メソッドを書くことをお勧めしたい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top