2012-01-11 93 views
1

在我MainViewController我使用這個代碼:iPhone應用程序本地化

static NSBundle *bundle = nil; 

+(void)setLanguage:(NSString *)l { 

NSLog(@"preferredLang: %@", l); 
NSString *path = [[ NSBundle mainBundle ] pathForResource:l ofType:@"lproj" ]; 
bundle = [[NSBundle bundleWithPath:path] retain];} 


+(void)initialize { 

NSUserDefaults* defs = [NSUserDefaults standardUserDefaults]; 
NSArray* languages = [defs objectForKey:@"AppleLanguages"]; 
NSString *current = [[languages objectAtIndex:0] retain]; 
[self setLanguage:current]; 
} 

+(NSString *)get:(NSString *)key alter:(NSString *)alternate { 
return [bundle localizedStringForKey:key value:alternate table:nil];} 

而且在應用程序主:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"tr", @"en", nil] forKey:@"AppleLanguages"]; 

它的做工精細,並顯示在我的應用程序比iPhone本地其他土耳其語語言。但是,我想允許用戶通過按鈕來更改語言,就像用戶點擊英語按鈕時,應該打開對話框,應用程序將重新啓動並且您的語言將會更改。

如何做到這一點?

我正在使用iOS 5 ....

回答

3

您的應用程序不應該提供自定義語言選擇器。
用戶可能在如何更改首選語言方面具有先驗知識,方法是在「設置」應用程序中導航到「常規」>「國際」>「語言」。

在蘋果的Internationalization Programming Guide

+0

肯定的,但它的我的應用程序要求的更多細節,我需要做的 – 2012-01-11 07:15:37