【发布时间】:2015-04-09 09:53:30
【问题描述】:
我有一个以多种语言本地化的 iOS 应用程序。我有英语、荷兰语和荷兰语(比利时)的 Localizable.strings 文件。问题是当荷兰语被设置为设备语言并且比利时作为国家时,使用荷兰语字符串而不是荷兰语-比利时字符串。
我添加了一些日志记录以确保在设备上设置了正确的语言,并且看起来是正确的:
NSLocale *locale = [NSLocale currentLocale];
NSString *language = [locale displayNameForKey:NSLocaleIdentifier
value:[locale localeIdentifier]];
NSLog(@"language %@", language);
打印出来
2015-04-09 11:49:26.227 MyTestApp[222:7459] language Nederlands (België)
但如果我尝试使用 NSLocalizedString 获取字符串,我会得到荷兰语资源,而不是荷兰语比利时资源。
我已经在运行 8.1 的 iPhone 5s 和几个 7.1/8.1 模拟器上对此进行了测试,但我无法让它工作。有趣的是,如果我在 XCode 中的 Edit Scheme -> Application Language 下强制将语言设置为荷兰语(比利时),则会使用正确的语言。
【问题讨论】:
标签: ios localization