【问题标题】:Get current language abbreviation (same as the localisation bundle name)获取当前语言缩写(与本地化包名称相同)
【发布时间】:2016-02-07 18:10:08
【问题描述】:

我正在尝试获取当前语言的本地化缩写。

我正在这样做:

[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]

使用那条线我可以得到这个结果:enesfr

我遇到的问题是,如果我的 iphone 是英式英语,我会得到相同的 en 而不是 en-GB

我也尝试了[NSLocale preferredLanguages],但后来我得到en-US 用于美国英语或zh-Hant-US 用于中文,但在这种情况下,我不需要最后一部分。

我使用它是因为我需要手动从本地化包中获取一些资源,这些资源自动命名如下:en.lpojen-GB.lpojzh-Hant.lproj

有人知道我如何获得与本地化包名称格式相同的当前语言吗?

【问题讨论】:

    标签: ios objective-c ios7


    【解决方案1】:

    试试

    [NSLocale currentLocale].localeIdentifier
    

    这将为您提供en_GB,但您可以将_ 更改为-

    祝你好运!

    【讨论】:

    • 它为 us-english 返回“en_US”,但 us-english 的本地化包被命名为“en-lproj”......我不能总是删除 _ 或替换它,因为我可以'不知道有没有必要
    • 我找到了解决方案,如果您对此感兴趣,我将其发布在这里@ajpallares
    【解决方案2】:

    对于遇到相同问题的任何人,您应该使用:

    [[NSBundle mainBundle] preferredLocalizations] 
    

    它会根据您的应用支持的语言获取语言。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      相关资源
      最近更新 更多