【问题标题】:Qt: lupdate is converting Apostrophe in to 'Qt:lupdate 正在将撇号转换为 '
【发布时间】:2016-01-20 14:56:10
【问题描述】:

我在我的 Qt HMI 应用程序上运行 lupdate。而且我注意到,在生成为lupdate 的结果。

虽然这种转换对本地化没有不利影响。我想知道为什么会发生这种行为。有没有办法禁用它?

对此的任何帮助表示赞赏。提前致谢。

【问题讨论】:

    标签: c++ qt internationalization qt5 translation


    【解决方案1】:

    它是 XML 语言定义的一部分。由于'是xml中的特殊字符,所以必须转义。否则,XML 解析器将无法读取该文件。换句话说,' 只不过是' 的转义序列,任何 XML 阅读器在读取 xml 文件时都会将 ' 替换为 '

    转义序列是:

    "   "
    '   '
    <   &lt;
    >   &gt;
    &   &amp;
    

    【讨论】:

    • 我通常对我的项目文件执行lupdate 并与我们的本地翻译共享.ts 文件。通常他们检查&lt;translation type="unfinished"&gt; 并给我相应字符串的翻译形式并将.ts 文件发回给我。而且,当我打开翻译后的文件时,我注意到我在原始文件中发送的这些特殊字符(例如:&amp;quot;)被替换为实际字符(例如:")。为什么我从翻译人员那里收到的 xml 文件中没有转义序列字符。它会依赖于 XML 解析器或编辑器工具吗?
    • 看来是这样。你应该试着找出他们使用什么样的工具。如果他们使用 QtLinguist,那不应该发生。如果他们使用其他工具,您可能需要先“转换”TS 文件以确保这些工具不会损坏它们。 (例如到.po 文件。这可以使用lconvert &lt;file&gt;.ts -o &lt;file&gt;.po 完成)。
    猜你喜欢
    • 2014-08-19
    • 2015-05-15
    • 1970-01-01
    • 2011-06-08
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2013-01-10
    相关资源
    最近更新 更多