ios - 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 folgendes 反馈信息: ";
通话
let localizedMessage = NSLocalizedString("""
Hi,
I would like to share the following feedback:
""", comment: "")
按预期扩展。
但是,这可能不适用于本地化工具,并且在 Localizable.strings 中也不会以正确的语法颜色显示,这可能会造成混淆。
我会改用一个短(单行)键,并将其本地化为所有语言(包括默认语言英语)。
推荐阅读
- java - 为什么在Java中按位运算后负值乘以-1不会产生正值?
- reactjs - 由于某种原因,我的背景图片没有显示
- angularjs - 如何借助选项对象中存在的第三个参数来选择 ngOptions 中的选项?
- php - 应用引擎下载 PHP 代码而不是显示
- microsoft-graph-api - 在 Microsoft Graph API 中创建 Skype 会议事件
- reactjs - 如何在继续之前先保存 Redux 状态?
- google-app-maker - 面板上的 addEventListener
- python - 整数在二进制文件中显示为 numpy 数据类型。如何在输出之前将这些转换为无符号 8 位整数
- r - 标准化回归系数改变了显着性
- javascript - mongodb - 没有本地的聚合查找