翻译文本中的 Qt5 换行符?

Qt5 newline characters in translation text?

我正在努力更正应用程序中缺少的一些翻译,并且一个特定的翻译没有从我的 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* 字符串显然也有这个换行符。

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

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

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

将翻译标签之间的 \n 替换为实际的换行符。这将更新已翻译的 GUI 以包含换行符。