2016-08-10 14 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.

는 동적 응용 프로그램 번역 :

일 - 오픈 Qt는 명령 단자 및 프로젝트 폴더로 이동합니다. 2 - 당신이 QLinguist 4 사용하여 원하는 언어에 대한 모든 문자열을 번역 - -

lupdate -pro Example.pro -ts example.ts 

3 프로젝트에서 모든 번역 문자열을 가져 오기 실행 모든 번역과 .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

을 찾으십시오. 글꼴은 어디에서로드합니까? 내 글꼴을로드 할 수 없다고 생각합니다. –