• 6471阅读
  • 5回复

Qt4 源码使用中文,不能翻译 [复制链接]

上一主题 下一主题
离线mxcai2005
 

只看楼主 倒序阅读 楼主  发表于: 2013-06-29
项目代码是在ubuntu 10.04(qt4.6.2) 下写的 UTF-8 编码。
使用了

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
之后,中文显示正常。
现在要发布一个英文版,用linguist 把 ts 文件翻译好了。可一直显示为中文,不能显示为英文


开始以为是环境问题,尝试把 tr("englisg") 翻译成 中文,能正常显示中文.

离线XChinux

只看该作者 1楼 发表于: 2013-06-29
你的翻译文件,即.qm文件是如何加载的?要确认你的.qm文件加载正确了。

二来,既然要同时支持中文、英文版本,那你就花点精力将源代码中的字符串全改成英文吧,然后.ts中做中文翻译。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线mxcai2005

只看该作者 2楼 发表于: 2013-06-29
回 1楼(XChinux) 的帖子
加载是通过 translator->load(“test_en”); 加载的,
我也尝试把.qm 加到qrc 文件中 translator->load(“test_en”, ":/");,加载是没有问题的

里面的中文比较多,所以想直接从中文翻译到英文
离线XChinux

只看该作者 3楼 发表于: 2013-06-29
按说是没问题的,不过同时支持中文英文,一般代码中是使用英文的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线mxcai2005

只看该作者 4楼 发表于: 2013-06-29
回 3楼(XChinux) 的帖子
可以了,
把.ts 文件改了
<context>
    <name>WirelessNetworkWin</name>
    <message>
        <location filename="wirelessnetworkwin.cpp" line="22"/>
        <source>无线列表:</source>
        <translation type="unfinished">Wireless list</translation>
    </message>
    <message>
        <location filename="wirelessnetworkwin.cpp" line="23"/>
        <source>刷新列表</source>
        <translation type="unfinished">refresh</translation>
    </message>
    <message>
        <location filename="wirelessnetworkwin.cpp" line="107"/>
        <source>连接</source>
        <translation type="unfinished">connect</translation>
    </message>
</context>


修改之后的ts(即去除了type="unfinished")
<context>
    <name>WirelessNetworkWin</name>
    <message>
        <location filename="wirelessnetworkwin.cpp" line="22"/>
        <source>无线列表:</source>
        <translation >Wireless list</translation>
    </message>
    <message>
        <location filename="wirelessnetworkwin.cpp" line="23"/>
        <source>刷新列表</source>
        <translation >refresh</translation>
    </message>
    <message>
        <location filename="wirelessnetworkwin.cpp" line="107"/>
        <source>连接</source>
        <translation>connect</translation>
    </message>
</context>

lrelease test_en.ts


离线mxcai2005

只看该作者 5楼 发表于: 2013-07-01
经实验,用linguist 的工具里面的 release 生成的.qm 文件 不能显示成中文。
用 lrelease  test_en.ts 的命令生成的.qm 文件 可以显示成中文

这难道是linguist 的 bug  ?
快速回复
限100 字节
 
上一个 下一个