在iPhone上NSLocalizedString返回iPhone 语言的字符串.是否可以强制NSLocalizedString使用特定语言使应用程序使用与设备不同的语言?
localization objective-c internationalization nslocalizedstring ios
当我在设备语言上单独更改应用程序使用的语言时,在我关闭应用程序并重新启动它之前它不会生效.如何根据所选语言不再要求重新启动应用程序以再次加载所有nib文件和.strings文件?
我用它在运行时更改语言:
NSArray* languages = [NSArray arrayWithObjects:@"ar", @"en", nil];
[[NSUserDefaults standardUserDefaults] setObject:languages forKey:@"AppleLanguages"];
Run Code Online (Sandbox Code Playgroud) 有没有办法在运行时更改应用程序语言?
因此,更改后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);
}
Run Code Online (Sandbox Code Playgroud)
只有在重新启动应用程序后,语言才会更改.
我想在我的应用程序中有一个选项来改变我的应用程序语言(只是应用程序语言而不是整个系统),请你给我一些提示?
提前致谢,
我知道本地化!