强制NSLocalizedString更改语言 - 不工作

时间:2013-12-02 11:54:02

标签: ios objective-c localization nslocalizedstring nslocale

我想参考: 首先是Change iOS app's language on the fly,其中一种更改语言的方式是给定的,我使用它,它正在工作,但它需要两次重新启动应用程序才能对应用程序进行更改。 我想做点什么,只需点击按钮,我的语言应该改变

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", nil] 
                                          forKey:@"AppleLanguages"];

1 个答案:

答案 0 :(得分:0)

使用此 - > [[NSUserDefaults standardUserDefaults] synchronize];

已编辑的帖子

将此宏放在Prefix.pch中:

#define currentLanguageBundle [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"]]

并且您需要使用本地化字符串:

NSLocalizedStringFromTableInBundle(@"GalleryTitleKey", nil, currentLanguageBundle, @"")

对于设置,请使用此功能: -

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", nil] 
                                          forKey:@"AppleLanguages"];