iPhone/iOS:如何判断手机在运行时使用的本地化?

Chr*_*all 6 iphone localization ios

我很难将本地化应用程序.它需要本地化为波斯语(伊朗波斯语).不仅如此,当选择fa_IR作为本地化时,它需要使用Solar Calendar.

操作系统有一个波斯日历.我使用它没问题,但我需要知道已经选择了fa_IR本地化.为了增加对伤害的侮辱,我不能在美国测试这个地方,因为似乎AT&T不允许它作为本地化.我必须把它寄给伊朗,这是一个皇家PItA.

我有一段时间在运行时找到本地化的魔鬼.有很多东西可以访问bundle标志,但我找不到任何获取运行时信息的东西.

我在iOS编程方面非常绿,所以我仍然需要确定哪个M到RTFM.我一直在用许多关键词搜索文档,但无济于事.

任何人都可以帮助看似荒谬简单的问题吗?

Joe*_*Joe 10

NSLocale将获得您需要的区域设置信息.请注意,基础类支持建议的设置,如24小时制和区域设置信息.

NSLog(@"%@", [[NSLocale currentLocale] localeIdentifier]);
Run Code Online (Sandbox Code Playgroud)


Eri*_*k B 6

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

上面的代码应该有助于找到当前的本地化.

NSLog(@"%@", [[NSLocale currentLocale] localeIdentifier]);
Run Code Online (Sandbox Code Playgroud)

NSLocale返回en_US,同时NSBundle返回sv,这对我的手机是正确的.