在我的MainViewController中,我使用以下代码:

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母语以外的土耳其语。但是,我想允许用户通过按钮更改语言,例如,如果用户单击英语按钮,则应打开一个对话框,该应用程序将重新启动,并且您的lang也将更改。

怎么做?

我正在使用iOS 5。

最佳答案

您的应用不应提供自定义语言选择器。
通过在“设置”应用程序中导航至“常规”>“国际”>“语言”,用户可能已经具有有关如何更改首选语言的先验知识。

苹果Internationalization Programming Guide中的更多详细信息

关于iphone - iPhone应用程序本地化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8815222/

10-10 20:42
查看更多