【问题标题】:iOS: How to retrieve locale strings for a specific locale than what the user has set in OS?iOS:如何检索特定语言环境的语言环境字符串而不是用户在操作系统中设置的字符串?
【发布时间】:2014-04-01 21:11:07
【问题描述】:

是否可以通过编程方式检索特定语言环境的字符串,而不管手机设置为什么语言环境?例如,用户可能正在用英语运行手机,但我想在不更改操作系统区域设置的情况下检索法语字符串。

注意:这不是上述问题的重复。我不想覆盖我的应用程序中的当前设置,我只想能够以编程方式检索我希望的任何语言环境的语言值。我的应用内容可能正在显示英文文本,但我希望我的应用的特定组件显示不同的语言。

【问题讨论】:

标签: ios localization nslocale


【解决方案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")

【讨论】:

    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    相关资源
    最近更新 更多