我正在开发一个IOS应用程序,我希望按下按钮后更改语言。一切都很好但是当我按下语言按钮时内容没有刷新,我只能在离开应用程序并返回时看到它,有没有办法从应用程序中动态更改语言?以下是我为更改语言而创建的操作,该应用已经过本地化。
-(IBAction) selectLanguage:(UIButton *) currentBtn {
if ([currentBtn.currentTitle isEqualToString:@"fr"]) {
[prefs setObject:@"fr" forKey:@"appsLanguage"];
}
else {
[prefs setObject:@"en" forKey:@"appsLanguage"];
} }
答案 0 :(得分:0)
您可以从捆绑包中加载本地化文件
NSBundle* locBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"]];
然后获取像这样的本地化字符串
NSString* str = [locBundle localizedStringForKey:key value:key table:nil];
如果你已经使用了NSLocalizedString,你可以用一个辅助函数创建一个Singleton并用你的函数替换NSLocalizedString-Makro
#undef NSLocalizedString
#define NSLocalizedString(key, _comment) [[Singleton sharedInstance] yourMethodWithKey:key]
在此之后重新加载/刷新您的视图,您应该很好。