2012-02-27 8 views
0

나는 응용 프로그램을 사용할 수 있도록 traslation을 설정하려고합니다. 나는 브라질 출신이므로 앱 코딩은 pt br 및 en-us이어야하며 코딩 할 때는 영어를 사용해야합니다. 나는 QTranslator을 사용하는 방법에 대한이 게시물을 발견 :Qt 4.8의 자국어 지원

Qt Linguist - set translator for application

을하지만, PT-BR 시스템에서 응용 프로그램을 실행할 때 영어로 표시됩니다. 내가 놓친 게 있니? 오후 8시 30 분 P.S. Q 명령 프롬프트를 찾지 못하여 메뉴 도구 -> 외부 -> 언어 -> 업데이트 번역 (lupdate)을 사용했습니다.

QApplication a(argc, argv); 

QTranslator *trans = new QTranslator(); 

trans->load("C:/SVN/trunk/rcs/frameworkIdentity_ptbr.qm"); 

a.installTranslator(trans); 

FIdMain w; 
+2

당신은'load'의 반환 값을 확인 했습니까? –

+0

[translate] (http://developer.qt.nokia.com/doc/qt-4.8/qtranslator.html#translate) 함수도 사용하셨습니까? –

+0

예로드 리턴을 확인했는데, true를 반환합니다. Qt의 다음 예제와 같이 tr 함수를 사용했습니다. http://doc.qt.nokia.com/4.7-snapshot/linguist-hellotr.html –

답변

0

꽤 많이 번역 (아래 냈다)가 작동되는 경우 내 자신의 응용 프로그램에서 할 것입니다 :

는 또한 .qm 파일, 내 코드의 here's 조각을 만들었습니다.

문제는 표시된 스 니펫에 없습니다. 코멘트에 제안대로 어쩌면 위젯은 번역기 이전에 생성되는

int main(int argc, char** argv) 
{ 
    QApplication app(argc, argv); 

    QTranslator translator; 
    if ( !Settings::value("monitor/languageFile").isNull()) 
    { 
     translator.load(Settings::value("monitor/languageFile").value<QString>()); 
     app.installTranslator(&translator); 
    } 
    MainWindow mainWindow; 
    mainWindow.show(); 
    return app.exec(); 
} 
+0

Translator가 메인 윈도우 전에 설정되었지만 변경 사항은 없습니다. 솔루션을 찾는 Qt foruns를 탐색하고 있습니다. –

+0

아마도 번역 파일 (.qm)에 번역 된 문자열이 없거나 클래스에 Q_OBJECT 매크로가 누락되었다고 생각할 수 있습니다. .ui 파일에서 오는 문자열을 먼저 번역하여 작동하는지 확인한 다음 문제를 좁힐 수 있습니다. – Correa