iOS:本地化多行字符串文字



自最近的swift版本以来,提供了多行字符串文字,可以轻松格式化多行字符串的外观。

不过,我正在寻找一种方法来本地化这样一个字符串。

以下是用户可以发送的预配置邮件的文本示例:

mailComposerVC.setMessageBody("""
Hi,
I would like to share the following feedback:
""",
isHTML: false)

似乎没有办法将其正确地转换为可本地化的.strings文件。

作为一种变通方法,我想出了一个解决方案,可以单独定位消息的每个部分并使用插值:

let localisedGreeting = NSLocalizedString("Hi", comment: "")
let localisedMessage = NSLocalizedString("I would like to share the following feedback: ", comment: "")
mailComposerVC.setMessageBody("""
(localisedGreeting),
(localisedMessage)
""",
isHTML: false)

.strings文件如下所示:

"Hi" = "Hallo";
"I would like to share the following feedback: " = "ich möchte folgendes Feedback geben: ";

有更好/更简洁的方法吗?

Localizable.strings文件中的键和值都可以是多行的。带

"嗨,我想分享以下反馈:"="你好,ich möchte遵循反馈geben:";

调用

let localizedMessage = NSLocalizedString("""
Hi,
I would like to share the following feedback:
""", comment: "")

按预期扩展。

然而,这可能不适用于本地化工具,而且也不适用在Localizable.strings中以正确的语法着色显示可能会令人困惑。

我会使用一个短(单行(键,并将其本地化语言(包括默认语言英语(。

对我来说,这种文本和引号的布局很有效(Swift 5.3,Xcode 12(

Localizable.strings

"First Line
Second Line" = "Erste Linie
Zweite Linie";

实施

let lines = NSLocalizedString("""
First Line
Second Line
""", comment: "")

相关内容

最新更新