【发布时间】:2018-12-30 21:08:30
【问题描述】:
从最近的 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 中的 value 总是可以是多行的 (stackoverflow.com/a/2968662/1187415) - 为什么你希望 key 是多行的?跨度>
-
谢谢@MartinR,这很有趣。我一直认为会查找确切的字符串。我一直使用基本语言(英语)字符串作为键。如果我按照您的建议将其更改为工作,我还需要为英语设置一个专用的 .strings 文件,对吗?
-
没错。
-
@nontomatic 我认为如果它是一个本地化的 1 字符串,那么如果它是 \\n 或写入多行则不会有任何区别
-
是的,但我试图给出一个最大简化示例,但我正在寻找一种可以与任何多行字符串文字以及自定义缩进舒适地工作的解决方案。
标签: ios swift string localization