Qt localization

Qt localization

本文关键字:localization Qt      更新时间:2023-10-16

我对Qt程序的本地化有一些问题。在我的电脑上一切都很好,但是当我把我的程序发送给其他用户时,他们看不到某些语言的符号。在这个例子中,我测试了泰语。

屏幕截图的程序输出:我的cpu操作系统:Windows 7 Ultimate x64 SP1http://myprintscreen.com/s/1id

用户cpu操作系统相同:Windows 7 Ultimate x64 SP1http://myprintscreen.com/s/1ie

用户可以在Microsoft Word和notepad++中打印泰语,但不能在Qt的输入字段中打印。

我们发现了一些有趣的bug (http://myprintscreen.com/s/1if):如果你在QTextEdit中从Microsoft Word复制泰语文本,它会正常显示。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

请帮助。我不知道该怎么做才能使它工作。

解决方案很简单。用户计算机上的字体问题。在我的情况下,Qt默认使用MS Shell dlg2字体。但在用户的电脑上,他被"损坏"了。我添加了以下代码:

QApplication::setFont(QFontDialog::getFont(0, QApplication::font()));

并继续测试。有些字体会显示,有些则不会。在不同的电脑上有不同的行为。

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