gpt4 book ai didi

ios - NSLocale 语言问题

转载 作者:可可西里 更新时间:2023-11-01 03:25:24 50 4
gpt4 key购买 nike

所以在我的应用程序中,我试图获取设备当前设置的语言及其首字母缩写词。所以我这样做:

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 语言问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13899379/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com