奇妙な Qt Translation の問題が発生しています。
変換テーブルのレガシーデータベースを含む変更できない理由により、私たちの「自然言語」は「列挙型」です。
QString myString = tr("OUR_APP_MY_STRING");
Qt で使用するデータベースから *.TS ファイルを作成するスクリプトがあります。
英語の *.TS ファイルのエントリは次のようになります。
<message>
<source>OUR_APP_MY_STRING</source>
<translation>My String</translation>
</message>
*.TS ファイルは Qt Linguist に正常に読み込まれます。そこにあるものはすべて問題ないように見えます。「OUR_APP_MY_STRING」が見つかり、その「英語の翻訳」は問題ないようです。
QT プロジェクト ファイルの TRANSLATION セクションに *.TS ファイルが含まれています。lRelease を使用して.QM ファイルを生成し、それらをアプリケーションのリソース ( .qrc) ファイルに配置しています。
アプリケーションのセットアップ関数 (構築後に main() によって呼び出される) には、次のコードがあります。
// initialize translator
this->currentTranslator = new QTranslator(instance());
if (this->currentTranslator->load(":/translation/myApp_en.qm"))
{
this->installTranslator(this->currentTranslator);
QString test = tr("OUR_APP_MY_STRING"); // <<----- problem. output is always "OUR_APP_MY_STRING"
}
何か案は?