Ios NSLocalizedStringFromTable在运行时更改默认语言
我正在使用此行更改默认语言Ios NSLocalizedStringFromTable在运行时更改默认语言,ios,Ios,我正在使用此行更改默认语言 [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"it"] forKey:@"AppleLanguages"]; [[NSUserDefaults standardUserDefaults] synchronize]; //to make the change immediate 用这一行来得到这个值 NSLocalizedStringFromTable(@"tex
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:@"it"] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize]; //to make the change immediate
用这一行来得到这个值
NSLocalizedStringFromTable(@"text", @"PA", nil);
唯一的问题是我需要重新启动应用程序才能应用更改
当我调用NSLocalizedStringFromTable时,它总是从更改之前的语言返回
是否可以让用户在不退出应用程序的情况下更改本地语言
下面是我创建的一个示例项目,它演示了这个问题
据我所知,这是不可能的。您可以做的是在
可本地化的.strings
文件键值对中包含
"en.error.general" = "An error occured.";
"fr.error.general" = "...";
然后定义一个宏,如:
#define LocalizedString(key, language) [[NSBundle mainBundle] localizedStringForKey:[NSString stringWithFormat:@"%@.%@", language, key] value:key table:nil]
并通过本地化字符串(@“error.general”,@“en”)调用它代码>