7

我注意到 Qt TS 文件中的某些消息的翻译元素具有“消失”类型,但其用途尚不清楚。似乎只有“未命名”上下文中的消息具有这种类型。相应的DTD只说这个值是在 Qt 5.2 中引入的,我找不到任何其他文档。

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

4

1 回答 1

9

这是我发现的:

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

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

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

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

于 2015-08-08T10:33:01.093 回答