Qt本地化

4

我在Qt程序的本地化方面遇到了一些问题。在我的电脑上一切正常,但当我将程序发送给其他用户时,他们无法看到某些语言的符号。在这种情况下,我测试了泰语。

程序输出屏幕截图如下:

我的电脑操作系统:Windows 7 Ultimate x64 SP1 http://myprintscreen.com/s/1id

用户电脑操作系统相同:Windows 7 Ultimate x64 SP1 http://myprintscreen.com/s/1ie

用户可以在Microsoft Word和Notepad++中打印泰语,但无法在Qt的输入字段中显示。

我们发现了一个有趣的错误(http://myprintscreen.com/s/1if):如果你从Microsoft Word复制泰文到QTextEdit中,它会正常显示。但是QLineEdit和QPlainTextEdit不能正确显示。

在Windows XP x86 SP3上(http://myprintscreen.com/s/1ii),日语无法显示,但泰语则没有问题 :)

我尝试使用:

QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
QString::fromUtf8
tr
trUtf8
QTextCodec::codecForName("UTF-8")->toUnicode

Qt项目:http://www74.zippyshare.com/v/39453145/file.html

请帮忙。我不知道该怎么做才能让它正常工作。

1个回答

3
解决方案很简单。问题出在用户电脑的字体上。在我的情况下,Qt 默认使用 MS Shell Dlg 2 字体。但是在用户的电脑上,该字体可能被“损坏”了。我添加了以下代码:
QApplication::setFont(QFontDialog::getFont(0, QApplication::font()));

并继续进行测试。一些字体会显示,而另一些则不会。在不同的计算机上,行为也有所不同。

这就是为什么我决定将必要的字体添加到发行版中,并为QApplication安装它的原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,