私はフランス語で私の英語UIを翻訳するのに必要なので、私は.TSと.qmファイルで必要なすべてのでした、QTranslatorクラスでそれをロードし、そしてはQApplicationにそれをインストールします。私のC++ Qt UIは私のプログラムに翻訳されていますが、私のQStringは翻訳されませんでしたか?
//in the InterfaceWidget constructor:
QTranslator myappTranslator;
bool loaded = myappTranslator.load("myApp_" + QLocale::system().name());
qDebug() << "Is translation file loaded?" << loaded; // RETURNS TRUE
QApplication::installTranslator(&myappTranslator);
ui.setupUi(this);
ui.retranslateUi(this); //works, it translates the UI
その後 、私が作成しConfigurationTabUI呼ばInterfaceWidget(タブで)別のウィジェットにアタッチ:
m_ConfigurationTabUI = new ConfigurationTabUI(ui.configTab);
対応するUIも正しく、フランス語に翻訳されています。
そしてここでは私の問題です:
void ConfigurationTabUI::on_ValidButton_clicked(){
QString msg(ConfigurationTabUI::tr("message to translate"));
qDebug() << "translated string: " << msg; // NOT TRANSLATED
}
私は本当に何の手掛かりなぜ... ありがとうを持っていない:私は簡単なのQStringを翻訳しようとすると、ConfigurationTabUIの方法で、それは動作しません。あなたの助け。
注:Qt5.2を使用して、.tsファイルに正しい翻訳文字列が含まれているかどうかを2回確認しました。
あなたが印刷している何が翻訳された文字列を格納し、同じ変数ではありません。 "msg"に翻訳を保存しましたが、 "l_sMsg"と表示されました。これはどこにも定義されておらず、何が設定されているのかわかりません。タイプミスであれば、問題を解決してからもう一度見てください。 – goug
ああ、申し訳ありませんでした...それを見ていただきありがとうございます – toussa
'ConfigurationTabUI'クラスに' Q_OBJECT'マクロがありますか? 'ConfigurationTabUI :: tr'の代わりに' QObject :: tr'を使うとどうなりますか? – Mike