Qt翻译问题msgid

QT的翻译还是有很多细节的,例如Qt linguist提供了msgid,如果指定一个QObject对象的msgid呢,如下

/*= msgid1*/

QObject::tr("测试1")


/*=msgid2*/

tr("测试2")

按照如下的写法会将msgid相同的进行合并成一个翻译词条,所以如果发现你的源代码的翻译提取失败,请查看是否是因为你不小心将默认值影响了你的翻译导致的,如下经常会出现出错

void showMessage(const int x /*= 100*/)

{

   x = QObject::tr("测试");

 .....

}


这个时候测试默认就给上了msgid=100的数值了,因为这个会导致翻译错误。

你可能感兴趣的:(Qt)