gpt4 book ai didi

iphone - 与 NSLocalizedString( @"Text aka. key", @"Description")中使用的键具有不同的后备语言

转载 作者:行者123 更新时间:2023-12-03 21:23:08 25 4
gpt4 key购买 nike

我到处使用 NSLocalizedString(@"Text in deutsch",@"das Textfeld Text in deutsch")我有两个 Localized.strings 文件。一份用于德语,一份用于英语。

我现在意识到的是。如果您有德语 iPhone,您会看到德语文本;如果您的 iPhone 设置为英语,您会看到英语文本。但是如果你有法语,那么你也会得到德语文本,因为我使用德语作为键,对吗?有没有一种方法可以将英语设置为后备语言,而不是我的代码中到处使用的德语? (我有太多次 NSLocalizedString 的出现,现在在任何地方更改键都会很痛苦(在代码中、Localized.string.en 和 Localized.string.de 中))

最佳答案

您必须将 Info.plist 中的 CFBundleDevelopmentRegion 设置为英语。

这样做,只要用户的首选语言不受支持(在您的情况下不是英语和德语),就会使用开发语言。

我通常使用全局函数来包装 NSLocalizedString,并且当存在未翻译的德语短语并且您希望它回退为英语时还提供回退。

public func LS(_ key: String) -> String {
let value = NSLocalizedString(key, comment: "")
if value != key || NSLocale.preferredLanguages.first == "en" {
return value
}

// Fall back to en
guard
let path = Bundle.main.path(forResource: "en", ofType: "lproj"),
let bundle = Bundle(path: path)
else { return value }
return NSLocalizedString(key, bundle: bundle, comment: "")
}

还有更多关于本地化的内容,我写了更多关于 how fallback works 的内容。 .

关于iphone - 与 NSLocalizedString( @"Text aka. key", @"Description")中使用的键具有不同的后备语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3022871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com