使用Qt的应用程序翻译:中文标题失败

时间:2013-07-16 09:58:59

标签: qt translation special-characters linguistics

我正在使用Qt4进行多语言应用程序,除了中文翻译外,一切顺利:我可以根据需要翻译所有文本,但Windows标题不起作用。

当我在Qt Linguist中编辑cn.ts文件时,它会显示中文字符,但在lrelease和应用程序运行后,我的所有Windows标题都显示小矩形,因为它无法识别字符,只有Windows标题不起作用休息(消息文本按钮文本...)工作正常。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我的代码是这样的:

setWindowTitle(self.tr("Pocess B for A ")+str(self.A[0])))

我将其替换为:

setWindowTitle(self.tr("Pocess B for A %1").arg(self.A[0]))

一切都很好。

答案 1 :(得分:0)

要么1.您的桌面环境设置为使用不支持您尝试使用的字符的字体,或2.您通过导致非Unicode文本编码的方法将文本输入Linguist。< / p>

如果是1:

  • 尝试更改窗口标题的桌面字体
  • 使用其他中文字符测试不同的标题
  • 使用已知支持中文的字体测试这些字符串,例如QLabel
  • 使用-locale cn
  • 运行您的应用程序

如果是2:

  • 尝试使用您知道支持Unicode
  • 的输入法将中文字符输入Linguist
  • 询问您的翻译是否将文本复制并粘贴到Linguist中或直接输入

答案 2 :(得分:0)

我也有同样的问题。我的代码是这样的:

giFaceCompareGUIClass->setWindowTitle(QApplication::translate("giFaceCompareGUIClass", "欢迎", 0));

我将其替换为:

giFaceCompareGUIClass->setWindowTitle(QApplication::translate("giFaceCompareGUIClass", QString::fromLocal8Bit("欢迎").toStdString().c_str(), 0));

一切都很好。