从最近的快速版本开始,多行字符串文字就可以使用,可以轻松地格式化多行字符串的外观。
不过,我正在寻找一种本地化此类字符串的方法。
以下是用户可以发送的预配置邮件文本的示例:
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: ";
是否有更好/更简洁的方法?
答案 0 :(得分:4)
Localizable.strings
文件中的键和值都可以是多行。
与
"Hi, I would like to share the following feedback: " = "Hallo, ich möchte folgendes Feedback geben: ";
通话
let localizedMessage = NSLocalizedString("""
Hi,
I would like to share the following feedback:
""", comment: "")
按预期扩展。
但是,这可能不适用于本地化工具,并且也无法 在Localizable.strings中以正确的语法颜色显示 可能会造成混淆。
我将改用短(单行)键,并将其本地化 语言(包括默认语言英语)。
答案 1 :(得分:0)
对我来说,这种文本和引号的布局有效(Swift 5.3,Xcode 12)
Localizable.strings
"First Line
Second Line" = "Erste Linie
Zweite Linie";
实施
let lines = NSLocalizedString("""
First Line
Second Line
""", comment: "")