获取当前语言缩写(与本地化包名称相同)

Get current language abbreviation (same as the localisation bundle name)

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

我正在这样做:

[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]

使用该行我可以得到以下结果:enesfr

我遇到的问题是,如果我的 iphone 是英式英语,我会得到相同的 en 而不是 en-GB,因为它应该是。

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

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

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

试试

[NSLocale currentLocale].localeIdentifier

这会给你 en_GB,但你可以将 _ 更改为 -

祝你好运!

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

[[NSBundle mainBundle] preferredLocalizations] 

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