国际化不能显示中文

绫波 2014-01-02 11:56:47
Qt5.1.1版本
建立一个简单的对话框,有个label,对话框开启时初始化文字
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);

ui->label->setText(tr("--helloworld--!"));
}

要翻译tr("--helloworld--!")。
建立ts文件,转换为qm文件。main为

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QTranslator qtTranslator;
qDebug()<<QCoreApplication::applicationDirPath();
qDebug()<<qtTranslator.load("helloworld.qm");
qDebug()<<a.installTranslator(&qtTranslator);

Dialog w;
w.show();

return a.exec();
}

qDebug显示load和installTranslator为true,但是对话框中还是"--helloworld--!",不是翻译过的中文,我漏了什么吗?
...全文
302 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
一去丶二三里 2014-01-10
  • 打赏
  • 举报
回复
引用 楼主 u013355698 的回复:
Qt5.1.1版本 建立一个简单的对话框,有个label,对话框开启时初始化文字 Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); ui->label->setText(tr("--helloworld--!")); } 要翻译tr("--helloworld--!")。 建立ts文件,转换为qm文件。main为 int main(int argc, char *argv[]) { QApplication a(argc, argv); QTranslator qtTranslator; qDebug()<<QCoreApplication::applicationDirPath(); qDebug()<<qtTranslator.load("helloworld.qm"); qDebug()<<a.installTranslator(&qtTranslator); Dialog w; w.show(); return a.exec(); } qDebug显示load和installTranslator为true,但是对话框中还是"--helloworld--!",不是翻译过的中文,我漏了什么吗?
看一下这篇文章:http://blog.sina.com.cn/s/blog_a6fb6cc90101f89v.html 很详细,并且附加源码!
绫波 2014-01-06
  • 打赏
  • 举报
回复
查出来了,linguist中把译文注释框看成译文框。。。
davidsu33 2014-01-03
  • 打赏
  • 举报
回复
看看qm文件是否正确提取了你的英文字串
haltwang 2014-01-02
  • 打赏
  • 举报
回复
qm文件跟exe放在一起试试
aojianhongyan 2014-01-02
  • 打赏
  • 举报
回复
看看你qm文件锁放的位置到底是不是正确的,比如发布版本放到release下。

16,240

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧