首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS:如何获取当前应用程序语言

iOS:如何获取当前应用程序语言
EN

Stack Overflow用户
提问于 2012-04-07 00:09:45
回答 5查看 9.1K关注 0票数 25

我正在开发的应用程序支持3种语言:英语、法语和德语。

如何获取当前应用程序语言(而不是设备语言)?

问题是,我必须获取应用程序的当前语言,以便将其与请求一起发送到服务器,并且响应应该使用正确的语言。设备语言是无用的,因为如果用户将操作系统语言切换为意大利语,应用程序将以英语运行,而我需要将英语发送到服务器。

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-07 00:40:27

我一直在做的事情:

在Localizable.strings文件中添加一个字符串条目。我总是使用密钥"lang"="de"; (或"lang"="en"等)。

然后,您可以通过在NSLocalizedString(@"lang", @"")上添加该语言来在NSURLRequest中使用它

使用该方法,您可以完全控制将发送给您的后端的内容。

票数 43
EN

Stack Overflow用户

发布于 2014-07-23 22:18:49

公认的答案是一种变通方法。

关于设备本身的语言首选项,您可以使用

代码语言:javascript
复制
[NSLocale preferredLanguages]

这将为您提供系统的常规设置中定义的首选语言的有序数组。

Cocoa Touch框架将在加载应用程序的本地化资源时考虑此首选语言列表,并根据捆绑包中提供的翻译对其进行过滤。

这个经过筛选和排序的本地化语言列表可以通过以下命令获得

代码语言:javascript
复制
[[NSBundle mainBundle] preferredLocalizations]

您的服务器请求应与此数组中的第一个值匹配,否则您的应用程序和服务器数据之间将出现语言不匹配。

票数 46
EN

Stack Overflow用户

发布于 2013-03-17 23:06:09

您可以使用NSBundle类的preferredLocalizations方法:

代码语言:javascript
复制
NSString *currentLocalization = [[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0];
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10046076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档