2011-05-06 61 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"]; 
相關問題