2013-08-05 74 views
1

我有一個應用程序,我想翻譯波斯語言的用戶界面。爲此,我需要在其中加載qt_fa.qmmy_app_fa.qm。但不幸的是,這兩個文件都沒有正確加載。下面的代碼始終運行如我所料:在Qt中的動態翻譯中加載qm文件

QApplication app(argc, argv); 

    QTranslator translator; 
    translator.load("qt_fa");   // returns true 
    app.installTranslator(&translator); 

    translator.load("my_app_fa");  // returns true 
    app.installTranslator(&translator); 
    . 
    . 

有時qt_fa影響應用程序和佈局更改爲RTL和使用Qt的翻譯都顯示的話,沒有我自己翻譯的顯示。

有時my_app_fa會影響應用程序,只顯示我自己的翻譯。

對此有何想法? 感謝

回答

3

根據Qt的Documentation與示例代碼段,你應該從創建對象QTranslator

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

    QTranslator qtTranslator; 
    qtTranslator.load("qt_" + QLocale::system().name(), 
      QLibraryInfo::location(QLibraryInfo::TranslationsPath)); 
    app.installTranslator(&qtTranslator); 

    QTranslator myappTranslator; 
    myappTranslator.load("myapp_" + QLocale::system().name()); 
    app.installTranslator(&myappTranslator); 

    ... 
    return app.exec(); 
}