TS文件中"translation"元素的"消失"类型

Rus*_*ear 4 qt-linguist

我注意到Qt TS文件中的某些消息对于它们的翻译元素有一个"消失"类型,但它的使用并不清楚.似乎只有"未命名"上下文中的消息才具有此类型.相应的DTD只说这个值是在Qt 5.2中引入的,我找不到任何其他文档.

它的含义是lupdate什么?该工具何时添加它?它是否类似于"过时"类型,即代码中不再存在旧字符串?这些字符串是否存在于.qm文件中lrelease

Rus*_*ear 6

这是我发现的:

lupdate更新TS文件中的已翻译字符串并且在代码中不再找到它们时,它会根据它们的初始状态("type"属性)区分它们:

  • 如果字符串具有已接受的翻译(即没有类型属性),则保留该字符串,但标记为"已消失".
  • 如果字符串没有接受的翻译(即type="unfinished"),则只需从TS文件中删除它.

可以修改此行为,将-no-obsolete标志添加到lupdate.在任何情况下,类型为"已消失"的字符串都不会添加到最终的.qm文件中lrelease,因此如果它们出现在最终应用程序中(例如,如果来自外部数据库),则不会翻译它们.

我怀疑在Qt 5中不再使用"过时"类型,只是保持与Qt 4的兼容性.