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

时间:2014-02-09 00:57:50

标签: ios localization

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

-(IBAction) selectLanguage:(UIButton *) currentBtn {

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

1 个答案:

答案 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]

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