• 7983阅读
  • 4回复

[提问]我的翻译文件(qm)怎么不起作用呢? [复制链接]

上一主题 下一主题
离线hutigers
 

只看楼主 倒序阅读 楼主  发表于: 2011-01-11
因为是做测试的,所以窗口里只有一个标签,如图
window.open('http://www.qtcn.org/bbs/attachment/Mon_1101/50_87144_c8048c3a17ace89.png?3');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" >
然后,我生成了ts文件, testLocale_zh_CN.ts内容如下:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE TS>
  3. <TS version="2.0" language="zh_CN">
  4. <context>
  5.     <name>MainWindow</name>
  6.     <message>
  7.         <location filename="mainwindow.ui" line="14"/>
  8.         <source>MainWindow</source>
  9.         <translation>主窗口</translation>
  10.     </message>
  11.     <message>
  12.         <location filename="mainwindow.ui" line="27"/>
  13.         <source>hello, world</source>
  14.         <translation>你好,世界</translation>
  15.     </message>
  16. </context>
  17. </TS>

然后用lrelease生成qm文件,main.cpp的代码如下:
  1. #include <QtGui/QApplication>
  2. #include <QTranslator>
  3. #include <QLocale>
  4. #include "mainwindow.h"
  5. int main(int argc, char *argv[])
  6. {
  7.     QApplication a(argc, argv);
  8.     //QString locale = QLocale::system().name();
  9.     QTranslator translator;
  10.     //translator.load(QString("testLocale_") + locale, ".");
  11.     translator.load("testLocale_zh_CN.qm", ".");
  12.     a.installTranslator(&translator);
  13.     MainWindow w;
  14. #if defined(Q_WS_S60)
  15.     w.showMaximized();
  16. #else
  17.     w.show();
  18. #endif
  19.     return a.exec();
  20. }


程序运行之后,还是英文的没有变成中文=.=
pro文件代码testLocale.pro
  1. #-------------------------------------------------
  2. #
  3. # Project created by QtCreator 2011-01-11T17:53:16
  4. #
  5. #-------------------------------------------------
  6. QT       += core gui
  7. TARGET = testLocale
  8. TEMPLATE = app
  9. SOURCES += main.cpp\
  10.         mainwindow.cpp
  11. HEADERS  += mainwindow.h
  12. TRANSLATIONS += testLocale_en.ts testLocale_zh_CN.ts
  13. FORMS    += mainwindow.ui
  14. CONFIG += mobility
  15. MOBILITY =
  16. symbian {
  17.     TARGET.UID3 = 0xe7826dd9
  18.     # TARGET.CAPABILITY +=
  19.     TARGET.EPOCSTACKSIZE = 0x14000
  20.     TARGET.EPOCHEAPSIZE = 0x020000 0x800000
  21. }
离线浪漫天使
只看该作者 1楼 发表于: 2011-01-13
方便把你的工程打一下包么?
离线hutigers

只看该作者 2楼 发表于: 2011-01-18
嗯。我做了一个最新版的。哪位帮我看看吧。
附件: demoForMultilanguage.zip (43 K) 下载次数:4
离线浪漫天使
只看该作者 3楼 发表于: 2011-01-19
新的工程中的main函数里面改成下面的样子了,就可以了
注意 添加部分

  1. int main(int argc, char *argv[])
  2. {
  3.     QApplication a(argc, argv);
  4.     QLocale locale;
  5.     QTranslator translator, translator_menu;
  6. /*    if (locale.language() != QLocale::Chinese)
  7.     {   translator_menu.load(":/qt_zh_CN");
  8.         translator.load(":/demoForMultilanguage_zh_CN"); }
  9.     else
  10.     { translator.load(":/demoForMultilanguage_en");}*/
  11.     translator_menu.load(":/qt_zh_CN");
  12.     translator.load(":/demoForMultilanguage_zh_CN");
  13.     a.installTranslator( &translator_menu );//leeadd
  14.     a.installTranslator( &translator );//leeadd
  15.     MainWindow w;
  16. #if defined(Q_WS_S60)
  17.     w.showMaximized();
  18. #else
  19.     w.show();
  20. #endif
  21.     return a.exec();
  22. }

离线hutigers

只看该作者 4楼 发表于: 2011-01-19
感谢。中文已经成功了。
快速回复
限100 字节
 
上一个 下一个