在用QT生成的库中使用多语言


       原创文章,转载请注明出处,谢谢!       
       作者:清林,博客名:飞空静渡

 

在用QT生成的库中使用多语言,下面是自己做的一个测试。

在/tmp目录下建一个目录qt

在qt目录里建两个目录,一个为lib,一个为exe

在lib目录里写上两个代码文件printfmsg.h 和 printfmsg.cpp,如下:

//printfmsg.h #ifndef PMSG_H #define PMSG_H void pmsg(); #endif // printfmsg.cpp #include "printfmsg.h" #include <QDebug> #include <QObject> void pmsg() { QString msg = QObject::tr("Hello world!"); qDebug()<<msg; }

 

建一个qt工程:

//pmsg.pro ###################################################################### # Automatically generated by qmake (2.01a) ?? 12? 29 11:52:30 2010 ###################################################################### TEMPLATE = lib TARGET = DEPENDPATH += . INCLUDEPATH += . # Input HEADERS += printfmsg.h SOURCES += printfmsg.cpp TRANSLATIONS += pmsg_zh_CN.ts

 

运行命令:lupdate pmsg.pro 生成pmsg_zh_CN.ts文件

用Linguist编辑pmsg_zh_CN.ts文件,翻译里面的句子,然后生成pmsg_zh_CN.qm文件


运行命令:qmake 生成Makefile

运行make 编译生成libpmsg.so库

 

二、在exe文件夹下编写源代码文件main.cpp,如下:

#include <stdio.h> #include <QCoreApplication> #include <QTranslator> #include "printfmsg.h" int main(int argc, char *argv[]) { QCoreApplication app (argc, argv); // Load the application translator. QTranslator appTranslator; appTranslator.load ("pmsg_zh_CN","."); app.installTranslator(&appTranslator); pmsg(); return 0; }

 

exe.pro文件如下:

###################################################################### # Automatically generated by qmake (2.01a) ?? 12? 29 12:00:59 2010 ###################################################################### TEMPLATE = app TARGET = DEPENDPATH += . INCLUDEPATH += . ../lib LIBS += -L/tmp/qt/lib / -lpmsg # Input SOURCES += main.cpp

 

编译生成exe可执行文件。

把lib目录下的pmsg_zh_CN.qm拷贝到exe目录下,

运行:LD_LIBRARY_PATH=../lib ./exe

输出:

"你好!"

 

== end ==

你可能感兴趣的:(application,exe,语言,qt,library,makefile)