2011-01-11 21 views
1

アプリケーションでは、明らかにQObjectの子孫ではないクラスが多数あり、これらのオブジェクトは明らかに例外をスローします。これらの例外は明らかに変換する必要があります。だから、QT_TR_NOOPマクロに例外でスローされたすべての文字列を囲みました。翻訳ファイルを生成することができました。しかし、私のプログラムを実行すると、文字列はまだ翻訳されていません。 QApplication :: translate( "MyClassName"、 "Text in english")で取得しようとすると、文字列を取得できますが、QT_TR_NOOP( "Text in english")はテキストを英語で返します。それを正しく機能させるために必要な追加ステップはありますか?QT_TR_NOOP:翻訳ファイルは生成されますが、翻訳された文字列は使用されません。なぜですか?

もう少しの質問:QT_TR_NOOPをどのクラスのメンバーでもない関数で使用している場合、どうなりますか? Qtはこの状況を黙って無視していますか?

答えて

4

私が全部が間違っなっているようです:(

QT_TR_NOOPが翻訳外の機能のための文字列をマーキングするためである。それは、元のテキストを返すことになっている私は何を必要とする非qtのクラスに変換を適用することでした。 、ここでは詳細に説明されている:。だから、

3

QT_TR_NOOPは、テキストを翻訳が必要なものとしてマークするだけです(Qt言語学者に表示されるように)。ただし、翻訳は一切行いません。そのためには、tr()を使う必要があります。

+0

を悩ませて申し訳ありません

Internationalization with Qt: Translating Non-Qt Classes

を、私は二回翻訳されたテキストを埋め込む必要があります一度QT_TR_NOOPで、そして再びTRに()簡単にはありますか??溶液? – Septagram

関連する問題