如何防止lupdate从我的翻译文件中删除一些条目?



我在.ts文件中添加了一些手动条目,每次运行lupdate.exe命令时,这些条目都会被删除。

lupdate.exe .. -no-obsolete -locations absolute -ts locale_en.ts locale_fr.ts

我希望lupdate.exe添加缺失的条目,以清除过时的条目,但保留手动条目(对应于要翻译的字符串,但这些字符串的翻译是通过函数进行的,而不是直接调用qsTrqTranslate)

这可能吗?


我的背景:

我在一个纯qml解决方案没有任何C后端,没有任何构建或使机制。lupdate.exelrelease.exe为手动调用

您可以为手动条目创建一个额外的翻译源(TS)文件,称为additional_locale_fr.ts,并将其与lupdate生成的文件合并,例如使用lconvert生成的locale_fr.ts

lconvert -i additional_locale_fr.ts locale_fr.ts -o all_locale_fr.ts

(合并翻译文件(.ts)与现有的。ts文件使用QT实用程序(lconvert))

在这种情况下也很有趣。


您也可以在函数中的字符串周围使用QT_TR_NOOP()。请看这里和这里。

QT_TR_NOOP与动态转换一起使用函数qsTr()和qsTranslate()。它将字符串标识为需要翻译(因此可以通过lupdate识别),但是离开实际转换为动态函数。

最新更新