最近做Qt的翻译发现有几个老是翻译不过去,我把我遇到的问题以及解决方案给大家列出来一下,共同分享
1.QMessageBox::warning(this, QObject::tr("警告"), QObject::tr("错误信息"), QObject::tr("警告"));
将其改为QMessageBox::warning(this, QObject::tr("警告"), QObject::tr("错误信息"))之后就没问题了。
2.QLabel的一个对象,setText(QObject::tr("单位(m)")),将其改为QString str = QObject::tr("单位(m)"); setText(str);就没问题了,这是因为在翻译的时候不能使用这种常量,这种常量直接在编译后被连接为常量而导致无法翻译,所以大家如果想能翻译的话,直接使用普通的堆栈变量吧。
3.在Qt的翻译中不要使用QObject::tr(""),这种手法会导致别的翻译过不去,对于空字符串要使用""即可。
4.在函数中static const QString str = QObject::tr("中文");也会导致翻译不过的,将static 去掉可以。
翻译里面各种问题,在这里先给大家列出来我碰到的,如果大家有知道的可以告诉我,一起分享出来解决大家的难题。