Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取当前语言缩写(与本地化包名称相同)_Ios_Objective C_Ios7 - Fatal编程技术网

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

Ios 获取当前语言缩写(与本地化包名称相同),ios,objective-c,ios7,Ios,Objective C,Ios7,我正在尝试获取当前语言的本地化缩写 我正在这样做: [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode] 使用该行,我可以得到以下结果:en,es,fr 我的问题是,如果我的iphone是英国英语的,我会得到相同的en,而不是en-GB 我还尝试了[NSLocale preferredLanguages],但后来我得到了美国英语的en-US,或者中国英语的zh-Hant-US,但在这种情况下,我不需要最后一部分 我使用它是因为

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

我正在这样做:

[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]
使用该行,我可以得到以下结果:
en
es
fr

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

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

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

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

尝试使用

[NSLocale currentLocale].localeIdentifier
这将为您提供
en\u GB
,但您可以将
更改为
-


祝你好运

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

[[NSBundle mainBundle] preferredLocalizations] 

它根据您的应用程序支持的内容获取语言。

对于美国英语,它返回“en_US”,但是对于美国英语,本地化包名为“en lproj”。。。。我只是不能总是移除或替换它,因为我不知道它是否必要。我找到了解决方案,如果您对它感兴趣,我将它发布在这里@ajpallares