ios – NSLocale语言问题

ios – NSLocale语言问题,第1张

概述所以在我的应用程序中,我试图让设备目前设置语言及其首字母缩略词.所以我这样做: NSString *fullLanguage = [[NSLocale currentLocale] displayNameForKey:NSLocaleIdentifier value:[[NSLocale preferredLanguages] objectAtIndex:0]];NSString *abrlan 所以在我的应用程序中,我试图让设备目前设置语言及其首字母缩略词.所以我这样做:
Nsstring *fullLanguage = [[NSLocale currentLocale] displaynameForKey:NSLocaleIDentifIEr value:[[NSLocale preferredLanguages] objectAtIndex:0]];Nsstring *abrlanguage = [[NSLocale preferredLanguages] objectAtIndex:0];

然而,一些用户报告说语言返回的内容类似于:en_UK或类似的东西,这反过来搞乱了我的应用程序的功能.

无论如何,有没有办法获得设备的当前设置语言,无论设备区域设置如何?

谢谢!

解决方法 要获取语言代码,请使用:
Nsstring *languageCode = [[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];NSLog(@"%@",languageCode);  // Prints "en"

要获取该语言的全名:

Nsstring *languagename = [[NSLocale currentLocale] displaynameForKey:NSLocaleIDentifIEr value:languageCode];NSLog(@"%@",languagename);  // Prints "English"

请注意,您使用的是区域代码(它提供了语言的区域变体),并且可以像这样更容易:

Nsstring *regionCode = [[NSLocale currentLocale] objectForKey:NSLocaleIDentifIEr];NSLog(@"%@",regionCode);  // Prints "en_US"

区域代码以语言代码开头,后跟下划线,然后是区域变体. (这是根据Apple的文档标准化的.)

此外,如果您使用currentLocale,请知道它未更新,因为用户首选项已更改.如果要在更改时保持同步,请使用autoupdatingCurrentLocale.

总结

以上是内存溢出为你收集整理的ios – NSLocale语言问题全部内容,希望文章能够帮你解决ios – NSLocale语言问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1102715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存