在iOS应用开发中,我找不到设置后备本地化语言的官方方法。 当用户语言未包含在我的应用的本地化中时,我想使用英语。 我尝试使用Base Internationalization,然而,所有语言都不适用。 现在,将base.lproj替换为en.lproj,只有添加到我的应用程序中的语言才能正常运行,但其他语言效果不佳。 (英语不使用,而选择俄语时使用韩语...)
有些网站说,设置具有“本地化本地开发区域”值的后备语言,但是,它运行不正常。 你有什么主意吗?感谢。
答案 0 :(得分:1)
你的问题听起来很像我遇到的问题。花了很多时间寻找解决方案,直到我最终提出这种方法(我的问题链接和下面的文字)。
iOS Localizable.strings not being retrieved from BASE file
找到一种方法来确定我是否有当前所选语言的本地化文件,如果没有,我可以从 Base 本地化文件中提取。
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], @"");
简单的解决方案,可以完成我需要的一切。
适用于 iOS 6.1 和 iOS 7.1 。
如果您没有当前所选语言的本地化文件,或者您想指定特定语言,只需设置 pathForResource 的值,您就应该获得所需的语言。 / p>