"消失的"键入"翻译" TS文件中的元素

时间:2015-08-04 11:37:10

标签: qt-linguist

我注意到Qt TS文件中的某些消息已经消失了#34;他们的翻译元素类型,但其用途不明确。似乎只有"未命名"中的消息上下文有这种类型。相应的DTD仅表示此值已在Qt 5.2中引入,我无法找到任何其他文档。

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

1 个答案:

答案 0 :(得分:6)

这是我发现的:

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

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

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

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