小编典典

如何强制 NSLocalizedString 使用特定语言

all

在 iPhoneNSLocalizedString上以 iPhone
的语言返回字符串。是否可以强制NSLocalizedString使用特定语言以使应用程序使用与设备不同的语言?


阅读 73

收藏
2022-05-10

共1个答案

小编典典

NSLocalizedString()(及其变体)访问“AppleLanguages”键NSUserDefaults以确定用户对首选语言的设置是什么。这将返回一组语言代码,第一个是用户为其手机设置的语言代码,如果资源在首选语言中不可用,则后续代码用作后备。(在桌面上,用户可以在
System Preferences 中通过自定义顺序指定多种语言)

如果您愿意,可以通过使用 setObject:forKey:
方法设置您自己的语言列表来覆盖您自己的应用程序的全局设置。这将优先于全局设置值,并返回到应用程序中执行本地化的任何代码。代码如下所示:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"de", @"en", @"fr", nil] forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize]; //to make the change immediate

这将使德语成为您的应用程序的首选语言,英语和法语作为后备语言。您可能希望在应用程序启动的早期调用它。您可以在此处阅读有关语言/区域设置的更多信息:国际化编程主题:获取当前语言和区域设置

2022-05-10