代码之家  ›  专栏  ›  技术社区  ›  nontomatic

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

  •  4
  • nontomatic  · 技术社区  · 6 年前

    由于最新的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: ";
    

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

    1 回复  |  直到 6 年前
        1
  •  4
  •   Martin R    6 年前

    中的键和值 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中以正确的语法颜色显示,其中 可能会让人困惑。

    我会用一个短的(单行)键来代替,并将其本地化。 语言(包括默认语言“英语”)。