如何强制ios应用程序使用某种本地化?

时间:2014-06-01 07:55:16

标签: ios localization localizable.strings

我有一个有两个本地化版本(希伯来语和英语)的应用程序,并且我被要求取消英语本地化,这样无论你的设备的语言是什么,该应用程序将是相同的(但保存本地化以供将来使用)。

本地化是通过Localizable.strings和Xib本地化(分配它们)。

有没有办法让应用程序始终使用某种本地化并忽略设备语言?

谢谢!

2 个答案:

答案 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()