• 6510阅读
  • 6回复

请教Qt国际化的一个问题 [复制链接]

上一主题 下一主题
离线xjruan
 

只看楼主 倒序阅读 楼主  发表于: 2010-07-14
想请教一个Qt国际化的问题,下面是我写的代码:
int main(int __argc,char* __argv[])
{
    QApplication app(__argc,__argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
    QTranslator* ptrans=new QTranslator;
    int ii=ptrans->load("Lang_EN.qm","./data/lang");
    QLabel *plabel=new QLabel(QObject::tr("WINDOW_TITLE","Hello Qt!"));

    app.installTranslator(ptrans);

    plabel->show();

    return app.exec();
}

在elemeditor.pro中写了如下代码:
  1. TRANSLATIONS += data/lang/Lang_EN.ts


然后运行lupdate  elemeditor.pro
我想要显示的是Hello Qt!,但是为何他只显示WINDOW_TITLE呢,请高手帮忙!
离线paranoid
只看该作者 1楼 发表于: 2010-07-14
国际化不是这么搞的
lupdate之后还得用linguist翻译ts文件,再生成qm文件
tr也不是那么用的,第一个参数是原文,第二个参数是额外的上下文注释,不是在这里翻译
离线xjruan

只看该作者 2楼 发表于: 2010-07-15
回 1楼(paranoid) 的帖子
我在linguist中也翻译过,生成了qm文件,但是也没有我想要的效果,你能不能给我做个示例,随便写个简单点的,我搞了很久也没有搞出来,你打个包发给我一下
非常感谢!Email:xjruan@yeah.net             谢谢!
离线dbzhang800

只看该作者 3楼 发表于: 2010-07-15
Re:回 1楼(paranoid) 的帖子
引用第2楼xjruan于2010-07-15 12:52发表的 回 1楼(paranoid) 的帖子 :
我在linguist中也翻译过,生成了qm文件,但是也没有我想要的效果,你能不能给我做个示例,随便写个简单点的,我搞了很久也没有搞出来,你打个包发给我一下
非常感谢!Email:xjruan@yeah.net             谢谢!

Qt 装好后自带例子和manual,要充分利用 QtCreator 、qtdemo、Qt assistant等工具
http://doc.qt.nokia.com/4.6/examples-linguist.html
离线paranoid
只看该作者 4楼 发表于: 2010-07-15
qt有自带最简单的例子 examples/linguist/hellotr,
唯一需要注意的是qm文件的位置,最好查看一下QTranslator::load的返回值,确认成功加载了qm
离线actionyu
只看该作者 5楼 发表于: 2010-07-26
问个小白问题,用lupdate生成.ts文件后,再用linguist打开这个文件,界面右侧“短语和表单”(就是浏览程序的那个区域)区域不能显示源文件。查看了一下.ts文件,发觉 是这样:
     <message>
        <source>&Line</source>
        <translation type="unfinished"></translation>
    </message>
比较了一下人家的.ts文件,发觉我的我文件缺少
<location filename="mainwindow.cpp" line="42"/>
是不是在哪个设置上出了问题??
离线cspp

只看该作者 6楼 发表于: 2010-07-26
回 5楼(actionyu) 的帖子
你这个应该是版本问题吧?
没有也没关系的。
快速回复
限100 字节
 
上一个 下一个