我注意到Qt TS文件中的某些消息已经消失了#34;他们的翻译元素类型,但其用途不明确。似乎只有"未命名"中的消息上下文有这种类型。相应的DTD仅表示此值已在Qt 5.2中引入,我无法找到任何其他文档。
它的含义是什么?lupdate
工具何时添加它?
它是否类似于"过时的"类型,即代码中不再存在的旧字符串?这些字符串是否存在于lrelease
生成的.qm文件中?
答案 0 :(得分:6)
这是我发现的:
当lupdate
更新TS文件中的已翻译字符串并且在代码中不再找到它们时,它会根据它们的初始状态(“type”属性)区分它们:
type="unfinished"
),则只会从TS文件中删除。可以修改此行为,将-no-obsolete
标记添加到lupdate
。
在任何情况下,类型为“已消失”的字符串都不会被lrelease
添加到最终的.qm文件中,因此如果它们出现在最终应用程序中(例如,如果来自外部数据库),它们将不会被翻译。
我怀疑在Qt 5中不再使用“过时”类型,只是保持与Qt 4的兼容性。