Warm tip: This article is reproduced from serverfault.com, please click

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

(swift - iOS: Localise multi-line string literals)

发布于 2018-07-23 12:03:57

从最近的快速版本开始,可以使用多行字符串文字来轻松格式化多行字符串的外观。

我正在寻找一种方法来本地化这样的字符串。

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

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: ";

有没有更好/更简洁的方法可以做到这一点?

Questioner
nontomatic
Viewed
0
Martin R 2018-07-23 20:30:15

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

“你好,

 我想分享以下反馈:
“ =”你好,

 反馈意见反馈:
“;

电话

let localizedMessage = NSLocalizedString("""
                      Hi,

                       I would like to share the following feedback:

                      """, comment: "")

按预期扩展。

但是,这可能不适用于本地化工具,并且也无法在Localizable.strings中以正确的语法颜色显示,这可能会造成混淆。

我将改用短(单行)键,并将其本地化为所有语言(包括默认语言英语)。