2011-08-29 62 views
2

我需要在运行时切换UI语言,方法是打开并选择一个弹出式菜单。我对可可的国际化做了一些阅读,但发现它不适合我的项目,因为它要求用户在系统设置中进行更改。如何在应用程序的运行时切换语言?

后像“http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language”建议设置AppleLanguages还需要应用程序重新启动。

我想知道我是否可以(a)根据当前语言创建多个NIB并调用initWithNib或(b)使用一个NIB,但创建一个字符串的列表并为所有文本设置标题字符串我的viewWillAppear。哪种解决方案听起来更好,或者如果有第三种方法,请让我来。

感谢 利奥

回答

0

我能想到的是重装所有的意见,并更新所有文本组件的文本属性最简单的方法(如UILabelUITextField等)。语言特定的文本进行设置可以通过你的方法返回的东西喜欢 -

-(NSString*) localizedStringForKey: (NSString*)key andLanguage: (NSString*)lang 
{ 
    if([lang isEqualToString:@"en"]) 
    { 
     if(key == @"hello") 
       return @"Hello"; 

     //and so on... 
    } 

    else if([lang isEqualToString:@"fr"]) 
    { 
     if(key == @"hello") 
       return @"Bonjour"; 

     //and so on... 
    } 

} 

HTH,

阿克沙伊

PS:在这里,我返回硬编码值,但你可以从您的语言特定的plists中读取它们。

相关问题