Answers:
一般来说,没有办法在QT中使用gettext转换,因为该库使用内部转换机制(Qtranslate和.ts文件),如QTBUG-2404所述。
但是,有一个可行的选择。
QT附带有一个名为lconvert的工具包,可用于将.ts文件转换为.po,反之亦然。
因此,您可以使用以下方法提取所有翻译内容:
lupdate
然后使用lconvert获得一个po文件:
lconvert -of po -o file.po file.ts
翻译后,您可以将po文件转换回ts:
lconvert -of ts -o file.ts file.po
然后,您可以在软件中使用它。
lupdate可以同时用于QT和QtQuick。
您可以使用喜欢的东西代替lsTr来破解lupdate的源代码。(很容易),然后使用被入侵的lupdate + lconvert +自定义libintl来实现使用gettext的目的。