2011-05-06 49 views
3

在您希望以除选定iPhone设置值以外的语言/区域/格式显示应用程序的情况下。示例一个具有它自己的内部语言设置的应用程序。如何在main.h覆盖中设置iPhone应用程序语言和区域设置值

我知道如何更改语言,但区域/格式呢?

要轻松覆盖设置,您可以运行在主

[[NSUserDefaults standardUserDefaults] 
    setObject:[NSArray arrayWithObject:@"sv"] 
    forKey:@"AppleLanguages"]; 

这段代码要查看效果的变化所选择的语言,让我们用下面的代码

NSString *locale = [[NSLocale currentLocale] localeIdentifier]; 
NSLog(@"current locale: %@", locale); 
NSArray* preferredLangs = [NSLocale preferredLanguages]; 
NSLog(@"preferredLangs: %@", preferredLangs); 

随着输出电流设置输出作为

current locale: en_US 
preferredLangs: (sv) 

但我想将此区域设置更改为sv_ SE

我如何以同样的方式覆盖iPhone设置中的区域设置(区域/格式)?

+0

的可能重复[iOS:有什么办法来伪造用户的语言环境?](http://stackoverflow.com/questions/15396606/ios-is-there-any-way-to-fake-the-users-locale) – jrc 2015-09-06 16:49:14

回答

0

在用户默认值中有两个更有趣的关键。 Theres'AppleLanguages'和'AppleLocale'。您可以将它们设置为你的心内容... :)

只是在你的代码中预先粘贴的地方,你应该得到你的结果后... :)

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"sv"] 
              forKey:@"AppleLanguages"]; 
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"sv", @"en", nil] 
              forKey:@"NSLanguages"]; 
[[NSUserDefaults standardUserDefaults] setObject:@"sv_SE" 
              forKey:@"AppleLocale"]; 
相关问题