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

长平狐 发布于 2013/01/11 10:33
阅读 334
收藏 0


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

 

在用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 ==


原文链接:http://blog.csdn.net/fjb2080/article/details/6104898
加载中
返回顶部
顶部