不想在更改语言时重新启动应用程序

时间:2011-09-07 13:11:00

标签: iphone objective-c

我使用这行代码更改应用中的语言

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

在用户重新启动应用之前不会进行更改。 在更改发生之前,用户是否真的需要重新启动应用程序, 或者是否可以以某种方式重新加载视图控制器以使应用程序立即更改其语言。

1 个答案:

答案 0 :(得分:0)

write below method in your appDelegate class
+(void)GetLangKey:(NSString *)Langkey
{
    NSString *tmpstr=[NSString stringWithFormat:@"%@",[[NSBundle mainBundle]pathForResource:@"LanguageResources" ofType:@"bundle"]]; 
    tmpstr =[tmpstr stringByAppendingString:@"/"];
    tmpstr=[tmpstr stringByAppendingString:Langkey];
    tmpstr =[tmpstr stringByAppendingString:@".lproj"];

    //  NSLog(@"%@",tmpstr);
    myLocalizedBundle=[NSBundle bundleWithPath:tmpstr];
}
and call this method when your language  change
if([language isEqualToString:@"English"])
{
[app_obj GetLangKey:@"en"];
} 
else
{
 [app_obj GetLangKey:@"fr"];
}