QTranslatorの使用

2828 ワード

一、uiファイルの削除方法
1、uiファイルを削除する理由
プロジェクト開発は推奨されません.uiファイルです.uiファイルは一部のコードを非表示にし、複数の人が同時に開発すると、マージブランチに多くの競合が発生します.
2、uiファイルを削除する方法
QtDesignerを使用してuiファイルを開き、「フォーム」メニューの「コードの表示」項目をクリックすると、uiファイルに対応するソースファイルがポップアップします.
uiファイルを参照するソースファイルに含まれるファイルをコピーします.
UI_***をクラスのメンバー変数、uiファイルを参照するヘッダファイルのクラスにコピーし、setupUi関数、retranslateUi関数をクラスのメンバー関数にコピーし、関数体をコピーします.
クラスのコンストラクション関数で「ui.setupUi(this)"の呼び出しを"setupUi(this)";
      
二、QTranslatorの使用
1、翻訳ファイルの生成
プロジェクト名の右クリックメニューで、「create new translation file」を選択します.プロジェクトに追加します.ts"接尾辞のファイル、例えば"testtranslator_zh.ts“;
Qt Linguistを使用してファイルを開くと、指定した文字列に翻訳文を設定できます.
翻訳が完了したら、「ファイル」メニューの下の「パブリッシュ」項目をクリックすると、.qmファイルが生成されます.
 
2、翻訳ファイルを読み込む
アプリケーションの起動時に翻訳ファイルをロードし、main関数の開始位置に置くのが一般的です.
 
QApplication a(argc, argv);

	//     
	QTranslator qtTranslator;
	qtTranslator.load( "testtranslator_zh");
	a.installTranslator( &qtTranslator );

3、update翻訳ファイル
アプリケーションコードを変更して翻訳文字列を追加すると、.tsファイルは自動的に更新されません.更新するには、対応する「.ts」ファイルの右クリックメニューで「lupdate」項目をクリックする必要があります.
 
 
注:翻訳ファイルのロード場所は、インタフェースのインスタンス化前に完了する必要があります.
 
注意:プログラム内のtr()関数を使用する各文字列はQt Linguistに表示されます.また、tr()の役割ドメイン修飾は重要です.Qt Linguistは、ソースコードにTestTranslator::tr("*")とTestTranslatorClass::tr("*")の2種類の文字列しか存在しないため、その役割ドメインに応じて異なるコンテキストを設定します.Qt Linguistでは、TestTranslatorとTestTranslatorClassの2つのコンテキストが生成されます.TestTranslatorで修飾された文字列はTestTranslatorコンテキストに表示され、TestTranslatorClassで修飾された文字列はTestTranslatorClassコンテキストに表示され、文字列の管理が便利になります.
      
三、Qt標準ダイアログの翻訳
1、qt標準の翻訳ファイルをインストールする
Qtインストールディレクトリで「qt_zh_CN.qm」ファイルと「qt_zh_CN.ts」ファイルを検索し、プロジェクトディレクトリにコピーします.
 
QTranslator qtTranslatorStandard;
	qtTranslatorStandard.load("qt_zh_CN");
	a.installTranslator(&qtTranslatorStandard);

2、tsファイルの修正
 
**QDIalogButtonBoxの確定、キャンセルボタンが正常に翻訳されていない
解決方法:「qt_zh_CN.ts」に手動で追加:
 
  
    QPlatformTheme  
      
          
          
        OK  
            
      
      
          
        Cancel  
            
      
.....  
  

**QMessageBoxのQMessageBox::Yes,QMessageBox::No正常な翻訳はありません
 
解決方法:上記contextに追加:
 
 
        &Yes
         
    
    
        &No
         
    

注意:xmlでは&Yesの書き方は&Yes
 
3、修正した翻訳ファイルを保存して配布する