2016-08-10 8 views
0

私はプログラムをさまざまな言語で翻訳するためにqt言語学者を使用しますが、プログラム内で翻訳されたテキストは表示されません。 適切なフォントを設定し、.tsファイルをTRANSLATIONSに追加します。qt translatorはプログラム内で翻訳されたテキストを表示しません

私はlupdatelreleaseコマンドを使用します。

どのように私も.tsファイルを作成できますか? (私はテキストファイルを作成し、フォーマットを.tsに変更するのは正しい方法ですか?)

+0

翻訳をアプリケーションにロードしましたか? http://doc.qt.io/qt-5/qcoreapplication.html#install翻訳者http://doc.qt.io/qt-5/qtranslator.html#load –

+0

はい。 .tsファイルと.qmファイルをロードする –

+0

翻訳を有効にするには、たくさんのことがあります。あなたの問題の説明は短くて不完全であることが簡単です。 Qtの指示に従って、何も見逃していないことを確認してください。 Qtが何らかのエラーを報告している可能性もあります。 –

答えて

2

Revie Qt Translation

動的にアプリを翻訳するには、次の

1 - オープンQtは、端末コマンドと、プロジェクトフォルダに移動します。 2 -

lupdate -pro Example.pro -ts example.ts 

3プロジェクトからすべての翻訳可能な文字列を取得します - あなたはQLinguist 4を使用したい言語にすべての文字列を翻訳 - 実行するすべての翻訳と.qmファイルを生成します。

lrelease example.ts 

5 - このファイルexample.qmをプロジェクトにリソースとして追加して、実行可能ファイルに追加します。 Resource System

6 - 今、アプリを翻訳しQTranslatorを使用します。

QTranslator* translator = new QTranslator; 
if(translator->load(":/"+example.qm)){ 
    qApp->removeTranslator(translator); // Remove the translator if was used before 
    qApp->installTranslator(translator); // Install again the translator to force a new translation. 
    qDebug() << "Translation success!" ; 
}else{ 
    qDebug() << "Error file not found!"; 
} 

7 - あなたはChangeEventの使用翻訳イベントを処理することができますすべての人々だ

void MainWindow::changeEvent(QEvent* event) 
{ 
    if (event) { 
      switch(event->type()) { 
       // When the translator is loaded this event is send. 
       case QEvent::LanguageChange: 
        break; 
       // Whem the system language changes this event is send. 
       case QEvent::LocaleChange: 
        //retranslate the ui. 
        break; 
       default: 
        break; 
      } 
    } 
    QMainWindow::changeEvent(event); 
} 

+0

qtコマンド端末とは何ですか?私はそれがないと思う。 –

+1

WindowsでQtを使用している場合は、qtプログラムフォルダを開いて、Qt MVSC/MinGWコマンドプロンプト – mohabouje

+0

を探してください。どこにフォントをロードしますか? 私は自分のフォントを読み込めないと思う –

関連する問題