IOS:如何获取当前的应用程序语言?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

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

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

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

谢谢

提问于
用户回答回答于

我总是这样做:

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

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

使用这种方法,你可以绝对控制将要发送给你的后端。

用户回答回答于

关于设备本身的语言偏好,你有

[NSLocale preferredLanguages]

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

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

经过筛选和有序的本地化语言列表可以通过

[[NSBundle mainBundle] preferredLocalizations]

你的服务器请求应与此阵列中的第一个值匹配,否则应用程序和服务器数据之间的语言不匹配。

扫码关注云+社区