我正在尝试本地化我的应用(例如英语和法语),并允许用户在我的应用中选择语言。
所以我必须使用NSBundle来主动选择语言文件夹,如Advance Localization in ios apps
中所述主要包([NSBundle mainBundle]
)似乎在设置([[NSLocale preferredLanguages] objectAtIndex:0]
)中选择了首选语言,因此我必须自己选择包
NSString *path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
NSBundle *frBundle = [NSBundle bundleWithPath:path];
它适用于Localizable.strings,因为这些字符串文件被添加到每个.lproj文件夹中。
但是当我本地化xib文件时,它不起作用。因为只有MyViewController.xib文件被添加到Base.lproj ,而MyViewController.strings文件被添加到每个.lproj文件夹
所以这段代码
MyViewController *vc = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:frBundle]
将触发“无法在包中加载NIB:'NSBundle(已加载)',名称为”MyViewController“
那怎么处理这个?