Qt lupdateとQTranslatorは、ソース文字列を排他コンテキストにグループ化します。つまり、あるコンテキストで定義された変換は、別のコンテキストではアクセスできません。カスタムQTranslatorコンテキストの自動化
C++内のデフォルトのコンテキストは、QObject::tr()
をオーバーライドしたクラスの名前です。宣言的なQMLの中のデフォルトのコンテキストは、拡張子のない現在のファイル名です。翻訳コンテキストをオーバーライドするには、C++またはQMLでqApp->translate("context", "source")
またはqsTranslate("context", "source")
を使用します。
大きなプロジェクトで共通の翻訳コンテキストを使用したいと思っています。私は、すべての翻訳機能で翻訳コンテキストを指定するのは非常に面倒です。このタスクを簡略化する既存または将来のQt翻訳フレームワーク拡張はありますか? tr("source")
とqsTr("source")
のような単純なものを探していますが、システム全体またはプロジェクト全体のデフォルトコンテキストを使用しています。何か案は?
これはうまくいくようです、ありがとう! 「ID」は、空白と句読点を含む複雑な文字列ですが、言語学者には表示されません。代わりに、 'qtTrId()'/'qsTrId()'が呼び出される前に特別な '//%"ソーステキスト "コメントを追加する必要があります。 ...またはID文字列をソースタグに自動的にコピーするスクリプトを記述します。 :)うまくいけば、私は道のりで文脈上の分離を必要としないだろう。 – Igor