iPhone/iOS: 如何在运行时确定手机使用的本地化设置?

6
我正在尝试本地化应用程序,并需要将其本地化为波斯语(伊朗波斯语)。不仅如此,当选择fa_IR作为本地化时,还需要使用太阳历。操作系统有一个波斯日历。我可以使用它,但需要知道是否已选择fa_IR本地化。更糟的是,我无法在美国测试这种语言环境,因为AT&T不允许它作为本地化选项。我必须将其发送到伊朗,这非常麻烦。
我很难在运行时找到本地化信息。有一些用于访问bundle标志的东西,但我找不到获取运行时信息的任何内容。我在iOS编程方面经验不足,因此仍需确定哪个M来RTFM。我已经用许多关键字搜索文档,但没有结果。有人能够帮忙回答这个看似非常简单的问题吗?
2个回答

10

NSLocale可以提供所需的区域设置信息。请注意,基础类支持建议设置,如24小时制和区域设置。

NSLog(@"%@", [[NSLocale currentLocale] localeIdentifier]);

6
NSArray *localizations = [[NSBundle mainBundle] preferredLocalizations];
for (NSString *string in localizations) {
    NSLog(@"Localization: %@", string);
}

以上代码应该有助于找到当前的本地化设置。
NSLog(@"%@", [[NSLocale currentLocale] localeIdentifier]);

NSLocale返回en_US,而NSBundle返回sv,这对我的手机来说是正确的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接