当我使用 Text("Lorem") 在SwiftUI中,它添加了一个 Lorem 在构建时键入Xcode字符串目录(Localizable.xcstring)。我希望对在视图之外定义的字符串实现相同的行为。
Text("Lorem")
Lorem
以下是我尝试过的:
LocalizedStringKey(âLorem ipsumâ)
String(localized: âLorem ipsumâ)
这两种方法都有效,但前提是我手动将键添加到字符串目录中。这并不理想,因为如果我忘记添加密钥,它可能会被忽视。
另一种方法是在整个代码中使用Text()并传递它,但我更喜欢避免将表示层与应用程序的其他部分耦合。我想将一个String(或类似类型)传递给我的SwiftUI视图,然后使用Text()渲染它。这样,我可以确保在字符串到达UI之前没有应用任何修饰符或意外更改。
确保在构建时将整个应用程序中使用的字符串自动添加到字符串目录中,而不依赖Text()进行字符串管理,最佳做法是什么?
我的目标是iOS 15+。
基于以下事实 Text("...") 生成本地化密钥,但 LocalizedStringKey("...") 没有,似乎构建设置“本地化字符串SwiftUI支持”已启用,但“使用编译器提取Swift字符串”未启用。
Text("...")
LocalizedStringKey("...")
你也应该打开后者:
除了您建议的表格外,您还可以执行以下操作:
let someText: LocalizedStringKey = "..."
我认为这比成语更地道 本地化字符串键(“…”)
本地化字符串键(“…”)
其他类型,如 LocalizedStringResource 也适用于此。
LocalizedStringResource