如果当前语言不存在本地化版本,如何加载默认语言plist?

时间:2012-10-22 17:58:51

标签: objective-c ios localization plist

我正在加载plist:

 NSString * plistPath = [[NSBundle mainBundle] pathForResource:@"Names" ofType:@"plist"];
 NSDictionary * contentArray = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

但如果当前设备的语言不存在plist,则contentArray为nil。我如何默认为英语?

1 个答案:

答案 0 :(得分:1)

NSBundle有效地使用应用程序/包的Info.plist文件中的CFBundleDevelopmentRegion(又名“本地化本机开发区域”)条目来指定“后备”语言(如果愿意的话)。 / p>

例如,我们假设我们有以下的包布局:

MyApp.app
 // no Numbers.plist here
.....
en.lproj/
    Numbers.plist // english-version
es.lproj/
    Numbers.plist // spanish-version

并且,Info.plist指定CFBundleDevelopmentRegion en

如果法国用户运行该应用,并且Numbers.plist没有本地化的fr文件,那么NSBundle应该返回Numbers.plist中的en.lproj文件}目录。