.xcstrings 目录中的换行符

Jan*_*ker 5 xcode localization xcode15 xcstrings

我正在尝试向新 Xcode 15 字符串目录(又名 xcstrings)中的字符串添加换行符。我什么也没想,就在\n想要换行的地方添加了平常的内容。

但在我的 SwiftUI 视图中,我可以看到实际转义的内容\n,并且文本不会换行。因此,文本“lorem ipsum\ndolor”将作为“lorem ipsum\ndolor”呈现给用户。

如何在不使用目录中的多个独立字符串的情况下创建带有有意换行符的文本?

Lar*_*rme 8

  • 解决方案1:添加新行时
    保留。OptionEnter

  • 解决方案 2:
    手动编辑xcstrings(这是一个 JSON 文件)。

如果您使用文本编辑器打开该xcstrings文件,或者右键单击它Open as/ Source Code,您将看到以下内容:

{
  "sourceLanguage" : "en",
  "strings" : {
    "key1" : {
      "extractionState" : "manual",
      "localizations" : {
        "en" : {
          "stringUnit" : {
            "state" : "translated",
            "value" : "key1\n2"
          }
        }
      }
    },
    "key2" : {
      "extractionState" : "manual",
      "localizations" : {
        "en" : {
          "stringUnit" : {
            "state" : "translated",
            "value" : "key2\\n2"
          }
        }
      }
    }
  },
  "version" : "1.0"
}
Run Code Online (Sandbox Code Playgroud)

在 上key2,我按照您的尝试在界面“\n”中显式写入,在 上key1,我Option在键入新行时保持不变。在源代码中查看\\n解释了为什么它在 UI 中以视觉方式渲染一次\n而不是换行,因为“n”之前的反斜杠被反斜杠(即转义)