问题:
在用QTCreator创建一个”Qt quick 2 Extention Plugin“的时候,跟着工程创建向导一路走,然后工程目录下生成了一个MyRect.qml文件.
qml文件里面涉及到语言翻译的字符串都用qsTr()进行包装。然后使用”Qt语言家(lupdate)“更新翻译文件MyPlugin_En_Zh.ts时,提示:
”Updating 'MyPlugin/MyPlugin_En_Zh.ts'...
Found 0 source text(s) (0 new and 0 already existing)“
然后使用”linguist“工具打开MyPlugin_En_Zh.ts文件,提示
解决方法:
之前也有用过”Qt语言家(lupdate)“,一切正常,没碰到过这种。不过之前是在”Qt Widgets Application“工程中使用的,而不是”Qt quick 2 Extention Plugin“插件工程。
于是新建了一个”Qt Widgets Application“工程——app。然后,工程向导也生成了一个main.qml文件。对比之下,发现和Plugin工程中的qml文件所在目录不同,一个是在Resources文件夹下,一个是在QML文件夹下。再对比.pro工程配置文件,app工程中qml文件的配置:
RESOURCES += qml.qrc
Plugin工程中qml文件配置:
DISTFILES = qmldir \
MyRect.qml
同样都是qml文件,Qt语言家的处理方式应该是一样的,但是却提示找不到”Source Text“,也就是找不到qml文件中的字符串,其实也有可能是没找到qml文件。于是,我在Plugin工程的.pro文件中增加了RESOURCES关键字,如下图所示。
重新用”Qt语言家(lupdate)“更新一下,然后用linguist工具打开,这次就像曾经那样正常了!