使用所需语言创建 plist 文件。我使用 {LANG}_{CLASS NAME} 和 {CLASS NAME} 作为所有本地化字符串的默认值。之后,我创建了一个方法来检查是否存在正确的文件,如果丢失则取它或默认,并根据设备语言返回一个 NSDictionary 对象,在类 init 上调用。如果您通过将 nib 名称添加到字符串文件来实现本地化 nib,也可以使用此想法。
+ (NSDictionary *) getLocalized: (NSString *) contollerName andLang:(NSString *) lang {
NSString *fullPath = nil;
// You can use device lang if needed
NSString * curLang=[[NSLocale preferredLanguages] objectAtIndex:0];
fullPath = [[NSBundle mainBundle] pathForResource: [NSString stringWithFormat:@"%@_%@",contollerName,lang] ofType: @"plist"];
if (!fullPath) {
fullPath = [[NSBundle mainBundle] pathForResource:contollerName ofType:@"plist"];
}
return [NSDictionary dictionaryWithContentsOfFile:fullPath];
}
所以,它可以被这样的东西调用:
[tools getLocalized:[Controller.class description] andLang:@"XX"];