翻译文本中的Qt5换行符?

Posted

技术标签:

【中文标题】翻译文本中的Qt5换行符?【英文标题】:Qt5 newline characters in translation text? 【发布时间】:2020-11-12 16:10:29 【问题描述】:

我正在纠正应用程序中一些缺失的翻译,而一个特定的翻译没有从我的 TS 文件中提取翻译后的文本,罪魁祸首似乎是源中的换行符(“\n”)文本,因为当我从源文本中删除该字符并在字符串中没有换行符的情况下测试翻译时,它可以工作。

所以假设我的 TS 文件中有这样的字符串:

<context>
    <name>MyContext</name>
    <message>
        <source>The text that I'm trying to match.\nIt has a newline character.</source>
        <translation>The translated text.\nIt also has a newline character.</translation>
    </message>
</context>

我正在翻译的 char* 字符串显然也有这个换行符。

那么如何处理带有换行符的翻译源字符串呢?

【问题讨论】:

【参考方案1】:

我的解决方案是编写一个辅助方法来将具有换行符的字符串拆分为单独的字符串,并将其拆分为 TS 文件中的多个条目。然后它单独翻译每一行并用换行符将它们缝合在一起。

我的意思是,如果翻译文件支持换行符会很好,但除非有其他方法,否则它必须这样做。

【讨论】:

【参考方案2】:

将翻译标签之间的 \n 替换为实际的换行符。这将更新翻译后的 GUI 以具有换行符。

【讨论】:

以上是关于翻译文本中的Qt5换行符?的主要内容,如果未能解决你的问题,请参考以下文章

UILabel 文本截断与文本中的换行符

将文本与量角器中的换行符进行比较

如何将文本输入写入文件中的换行符?

如何在文本文件中的换行符后抓取文本不清除空格,制表符[关闭]

使用 Python 将文本文件中的空格转换为换行符

qml Textfield中的换行符,文本属性不起作用