未从基文件检索iOS Localizable.strings
我在iOS上进行本地化时遇到了一个问题,我认为这是我第一次尝试本地化,所以我可能误解了 我有三个可本地化的.strings文件: 基础未从基文件检索iOS Localizable.strings,ios,ios7,localization,ios6.1,localizable.strings,Ios,Ios7,Localization,Ios6.1,Localizable.strings,我在iOS上进行本地化时遇到了一个问题,我认为这是我第一次尝试本地化,所以我可能误解了 我有三个可本地化的.strings文件: 基础 "TAB_TITLE_Camera" = "CAMERA"; 英语 "TAB_TITLE_Camera" = "Camera"; "TAB_TITLE_Camera" = "Cámara"; 西班牙语 "TAB_TITLE_Camera" = "Camera"; "TAB_TITLE_Camera" = "Cámara"; iOS 6.1 在Xco
"TAB_TITLE_Camera" = "CAMERA";
英语
"TAB_TITLE_Camera" = "Camera";
"TAB_TITLE_Camera" = "Cámara";
西班牙语
"TAB_TITLE_Camera" = "Camera";
"TAB_TITLE_Camera" = "Cámara";
iOS 6.1 在Xcode 5上,运行iOS 6.1的第四代iPod Touch,英语和西班牙语似乎可以工作,但如果我换成德语(或没有本地化文件的任何其他语言),它不会拉 从Base Localizable.strings,而是从English文件中提取 为什么它不从基文件中提取 为什么会从英语文件中提取
iOS 7.1
另外,第五代iPod Touch运行的是iOS 7.1,当我切换到德语时,它似乎是从上一个选择的语言中提取的,该语言有本地化文件,英语或西班牙语。啊 找到了一种方法来确定我是否拥有当前所选语言的本地化文件,如果没有,我可以从基础本地化文件中提取
NSString *path = [[NSBundle mainBundle] pathForResource:[[NSLocale preferredLanguages] objectAtIndex:0] ofType:@"lproj"];
if (path == nil)
{
path = [[NSBundle mainBundle] pathForResource:@"Base" ofType:@"lproj"];
}
NSLocalizedStringFromTableInBundle(@"TAB_TITLE_Camera", @"Localizable", [NSBundle bundleWithPath:path], @"");
如果当前语言为:
英语返回摄像机
西班牙语返回Cámara
没有本地化文件的任何其他内容都将返回摄影机
简单的解决方案,我需要的一切
可以在iOS 6.1和iOS 7.1上运行。也许我可以使用NSLocalizedStringFromTable来选择基本文件。我会调查一下的。就缺几把钥匙怎么样?