我有一个有两个本地化版本(希伯来语和英语)的应用程序,并且我被要求取消英语本地化,这样无论你的设备的语言是什么,该应用程序将是相同的(但保存本地化以供将来使用)。
本地化是通过Localizable.strings和Xib本地化(分配它们)。
有没有办法让应用程序始终使用某种本地化并忽略设备语言?
谢谢!
答案 0 :(得分:3)
在这种情况下,只需在启动时设置默认键AppleLanguages以覆盖IOS设置
(EARLY =在使用xib / storyboard或NSLocalizedString之前)
NSString *langCultureCode = @"he";
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@[langCultureCode] forKey:@"AppleLanguages"];
[defaults synchronize];
答案 1 :(得分:2)
我已将其改编为Swift并使用它来轻松测试本地化。当放置在AppDelegate-> didFinishLaunchingWithOptions时,模拟器需要运行两次以获得正确的设置,但也许有更好的方法。
在示例中使用丹麦语本地化,可以在此处找到更多:Locale codes for iPhone lproj folders
let langCultureCode: String = "da"
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject([langCultureCode], forKey: "AppleLanguages")
defaults.synchronize()
再次删除默认值:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.removeObjectForKey("AppleLanguages")
defaults.synchronize()