我有一个问题。我创建了一个视图,用户可以在其中选择英语,荷兰语和英语中的应用语言。西班牙。然后在下一个视图中的UILabel文本应该根据所选语言。
我使用以下代码设置当前语言:
NSLog(@"%@", NSLocalizedString(@"Loading... Please wait...", nil));
int index = 2;
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
NSArray* languages = [userDefaults objectForKey:@"AppleLanguages"];
switch (index)
{
case 0:
languages = [NSArray arrayWithObjects:@"en",@"de",@"es", nil];
break;
case 1:
languages = [NSArray arrayWithObjects:@"de",@"en",@"es", nil];
break;
case 2:
languages = [NSArray arrayWithObjects:@"es", @"en", @"de", nil];
break;
}
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
NSLog(@"%@", NSLocalizedString(@"Loading... Please wait...", nil));
**和Localizable.strings(西班牙语):** “正在载入......请等待...”=“正在加载......用西班牙文”;
**和Localizable.strings(德语):** “正在载入......请等待...”=“正在加载......德语”;
我使用以下代码在下一个视图中获取当前语言:
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString* preferredLang = [languages objectAtIndex:0];
NSLog(@"preferredLang: %@", preferredLang);
NSLog(@"%@", NSLocalizedString(@"Loading... Please wait...", nil));
但是它在控制台中打印“正在载入...请稍候...”。它应该打印“正在装载......用德语”。
某处出错了?在应用程序运行时我可以更改应用程序的语言吗?