我正在构建一个将在未来版本中本地化的应用程序,因此我想将其设置为准备就绪.
目前我只有一种语言(法语),fr.lproj文件夹包含Localizable.strings,其中包含相关键的法语翻译.
问题是如果我将我的设备设置为英语我没有收到法语默认翻译,但我看到我在NSLocalizedString中使用的Keys名称.
例如,如果我尝试使用以下命令获取View Controller的标题:
NSLocalizedStrings(@"viewController_Title",nil);
对于具有英语语言的设备,视图控制器将“viewController_title”显示为标题,而如果我设置了法语,则它可以正常工作.
我该怎么处理?
最佳答案 你的问题是你需要一种语言来回归.
据我所知,没有正式的方法,我过去曾写过这样的方法:
NSString * L(NSString * translation_key) {
NSString * s = NSLocalizedString(translation_key, nil);
if (![[[NSLocale preferredLanguages] objectAtIndex:0] isEqualToString:@"en"] && [s isEqualToString:translation_key]) {
NSString * path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSBundle * languageBundle = [NSBundle bundleWithPath:path];
s = [languageBundle localizedStringForKey:translation_key value:@"" table:nil];
}
return s;
}
在这种情况下,使用L(@“viewController_Title”);将返回默认语言的字符串,在本例中为英语.