用于本地化 IOS 应用程序的按钮



我正在开发一个IOS应用程序,我想在按下按钮后更改语言。一切正常,但是当我按下语言按钮时内容没有刷新,我只能在离开应用程序并返回时看到它,有没有办法从应用程序内动态更改语言?这是我创建的更改语言的操作,该应用程序已经本地化。

-(IBAction) selectLanguage:(UIButton *) currentBtn {
if ([currentBtn.currentTitle isEqualToString:@"fr"]) {
    [prefs setObject:@"fr" forKey:@"appsLanguage"];
}
else {
    [prefs setObject:@"en" forKey:@"appsLanguage"];
     } }

您可以从捆绑包中加载本地化文件

NSBundle* locBundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"]];

然后像这样获取本地化字符串

NSString* str = [locBundle localizedStringForKey:key value:key table:nil];
如果您已经在使用 NSLocalizedString,

则可以使用帮助程序函数创建一个单例,并将 NSLocalizedString-Makro 替换为您的函数

#undef NSLocalizedString
#define NSLocalizedString(key, _comment) [[Singleton sharedInstance] yourMethodWithKey:key]

之后重新加载/刷新您的视图,您应该很好。

最新更新