我需要通过打开并选择弹出菜单来在运行时切换UI语言。我对可可的国际化进行了一些阅读,但发现它不适合我的项目,因为它要求用户对系统设置进行更改。
像“http://stackoverflow.com/questions/1669645/how-to-force-nslocalizedstring-to-use-a-specific-language”这样的帖子建议设置AppleLanguages
也需要一个应用程序重新启动。
我想知道我是否可以(a)创建多个NIB并根据当前语言调用initWithNib
或(b)使用一个NIB但创建一个字符串plist并创建一个函数来为所有的字符串设置标题字符串所有viewWillAppear
中的文字。哪种解决方案听起来更好,或者如果有第三种方式请让我。
由于 利奥
答案 0 :(得分:0)
我能想到的最简单的方法是重新加载所有视图,并更新所有文本组件的文本属性(例如UILabel
,UITextField
等)。要设置的语言特定文本可以通过您的方法返回,例如 -
-(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,
阿克沙伊
P.S:我在这里返回硬编码值,但你可以从你自己的特定语言中读取它们。