iOS:如何检索特定语言环境的本地化字符串,而不是用户在操作系统中设置的语言环境?

4
可以通过编程的方式检索特定语言环境的字符串吗,而不管手机设置为什么语言环境?例如,用户可能在英语环境下运行电话,但我想检索法语字符串,而不更改操作系统语言环境设置。
注意:这不是上述问题的重复。我不想在我的应用程序中覆盖当前设置,我只想具有以编程方式检索任何语言环境的语言值的能力。我的应用程序内容可能显示英文文本,但我希望应用程序的特定组件显示不同的语言。

从哪里获取字符串?在哪里? - Sergey Grischyov
1
可能是重复的问题:如何强制 NSLocalizedString 使用特定语言 - lootsch
1
这不是重复的问题。我不想设置AppleLanguages。应用程序仍然可以使用英语,但我希望通过编程方式检索不同的语言。 - Boon
@lootsch 感谢您提供的链接,虽然它不是我正在寻找的内容,但仍然非常有用。 - Boon
1
@Boon 不需要,因为这只是一个重复的问题回答。 - David Berry
显示剩余5条评论
1个回答

1

我通过扩展String类来解决这个问题。你可以使用这种方法获取任何应用程序中存在的本地化字符串。

extension String {
    func localized(forLanguageCode lanCode: String) -> String {
        guard
            let bundlePath = Bundle.main.path(forResource: lanCode, ofType: "lproj"),
            let bundle = Bundle(path: bundlePath)
        else { return "" }
        
        return NSLocalizedString(
            self,
            bundle: bundle,
            value: " ",
            comment: ""
        )
    }
}

示例(当系统语言为英语时获取乌克兰语的本地化字符串):

"settings_choose_language".localized(forLanguageCode: "uk")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接