如何在编译时强制本地化或在运行时更好

时间:2012-10-22 11:01:18

标签: objective-c ios localization

我有一个IOS项目,根据语言显示许多不同的图像,我找不到强制在运行时加载正确图像的方法(不将语言切换到另一种语言)。 实际上似乎在AppDelegate有机会干扰之前加载文件。

如果我在appDelegate中执行(didFinishLaunchingWithOptions :):

[[NSUserDefaults standardUserDefaults] setObject: [NSArray arrayWithObjects: @"es", @"en", nil] forKey:@"AppleLanguages"];

已经太晚了,图片已经用错误的语言加载了。所以为了实现这一点,我已经将NSUserDefaults移动到main()调用中,并且这个技巧有效。但我的问题是:Apple会拒绝我的应用吗?是否有更好,更干净的方法在编译时(或使用plist或类似的东西)同步语言?

更新

似乎只是替换了[[NSUserDefaults standardUserDefaults] setObject:forKey:],在调用我的nib文件之前的另一步就是诀窍。就像异步调用[NSUserDefaults standardUserDefaults]一样。所以也许在我的nib文件加载后实际评估了setter方法。但我可以通过info.plist更改可本地化的设置吗?

1 个答案:

答案 0 :(得分:0)

您可以本地化Info.plist(InfoPlist.strings),它允许您为每种语言设置Default.png。