我需要使用Localization在按钮点击时切换语言。
我试过这个,这个元素没有刷新的错误。
- 他们这样设置:
self.lblSectionMyPictures.text=NSLocalizedString(@"lblSectionMyPictures", nil);
要切换的代码:
- (void)SwitchToFrench{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"fr", nil]
forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self.view setNeedsDisplay];
}
- (void)SwitchToEnglish{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en", nil]
forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
[self.view setNeedsDisplay];
}
任何想法\最佳实践?
答案 0 :(得分:1)
Apple的本地化解决方案不支持即时切换本地化。字符串加载一次,然后再也没有改变。
如果您坚持不懈地追求切换语言(根据我的经验,这是一种无法实现的理想选择),我认为您最好的选择是创建自己的KVO兼容本地化字符串提供程序并绑定每个GUI元素(按钮的标题) ,文本字段的值等)。启用AutoLayout后,甚至可以正常工作。