在 iPhoneNSLocalizedString上以 iPhone 的语言返回字符串。是否可以强制NSLocalizedString使用特定语言以使应用程序使用与设备不同的语言?
NSLocalizedString
NSLocalizedString()(及其变体)访问“AppleLanguages”键NSUserDefaults以确定用户对首选语言的设置是什么。这将返回一组语言代码,第一个是用户为其手机设置的语言代码,如果资源在首选语言中不可用,则后续代码用作后备。(在桌面上,用户可以在 System Preferences 中通过自定义顺序指定多种语言)
NSLocalizedString()
NSUserDefaults
如果您愿意,可以通过使用 setObject:forKey: 方法设置您自己的语言列表来覆盖您自己的应用程序的全局设置。这将优先于全局设置值,并返回到应用程序中执行本地化的任何代码。代码如下所示:
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", @"en", @"fr", nil] forKey:@"AppleLanguages"]; [[NSUserDefaults standardUserDefaults] synchronize]; //to make the change immediate
这将使德语成为您的应用程序的首选语言,英语和法语作为后备语言。您可能希望在应用程序启动的早期调用它。您可以在此处阅读有关语言/区域设置的更多信息:国际化编程主题:获取当前语言和区域设置