有没有办法在运行时更改应用程序语言?
因此,更改后 NSLocalizedString
立即返回新语言的字符串。
我现在正在做的是使用下面的代码更改语言:
- (void)onChangeLanguage: (id)sender
{
NSArray *lang = [NSArray arrayWithObjects:((InfoWhatever *)sender).language, nil];
[[NSUserDefaults standardUserDefaults] setObject:lang forKey:@"AppleLanguages"];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];
NSLog(@"Current language: %@", currentLanguage);
}
语言将会改变,但仅在重新启动应用程序后。
最佳答案
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableArray* languages = [userDefaults objectForKey:@"AppleLanguages"];
[languages insertObject:@"de" atIndex:0]; // ISO639-1
[[NSUserDefaults standardUserDefaults] synchronize];
关于iphone - 如何在运行时更改iPhone应用程序语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576904/