我正在用Qt4开发一个多语言应用程序,除了中文翻译外,一切都很顺利:我可以随心所欲地翻译所有文本,但windows标题不起作用。
当我在Qt Linguist中编辑cn.ts文件时,它会显示中文字符,但在lrelease和应用程序运行后,我所有的窗口标题都会显示小矩形,因为它无法识别字符,只有窗口标题不起作用,其余的(消息文本按钮文本…)都能正常工作。
任何帮助都将不胜感激。
我也遇到了同样的问题。我的代码是这样的:
setWindowTitle(self.tr("Pocess B for A ")+str(self.A[0])))
我将其替换为:
setWindowTitle(self.tr("Pocess B for A %1").arg(self.A[0]))
一切都很好。
任一1。您的桌面环境设置为使用不支持您尝试使用的字符或2的字体。您通过一种导致非Unicode文本编码的方法将文本输入到Linguist中。
在1:的情况下
- 尝试更改窗口标题的桌面字体
- 使用其他汉字测试不同的标题
- 使用已知支持中文的字体(例如
QLabel
)测试这些字符串 - 使用
-locale cn
运行应用程序
在2:的情况下
- 尝试使用您知道支持Unicode的输入法在语言学家中输入汉字
- 询问你的翻译是将文本复制粘贴到语言学家还是直接打字
我也遇到了同样的问题。我的代码是这样的:
giFaceCompareGUIClass->setWindowTitle(QApplication::translate("giFaceCompareGUIClass", "欢迎", 0));
我将其替换为:
giFaceCompareGUIClass->setWindowTitle(QApplication::translate("giFaceCompareGUIClass", QString::fromLocal8Bit("欢迎").toStdString().c_str(), 0));
一切都很好。