是否有在 iOS 应用程序中设置后备本地化语言的官方方法?
Posted
技术标签:
【中文标题】是否有在 iOS 应用程序中设置后备本地化语言的官方方法?【英文标题】:Is there the official way to set fallback localized language in iOS app? 【发布时间】:2014-07-04 07:28:29 【问题描述】:在 ios 应用程序开发中,我找不到设置回退本地化语言的官方方法。 当我的应用本地化中不包含用户语言时,我想使用英语。 我尝试了使用基本国际化的方法,但是,所有语言都不适用于所有语言。 现在,将 base.lproj 替换为 en.lproj,只有添加到我的应用程序中的语言可以正常工作,但其他语言不能正常工作。 (不使用英文,选择俄文时使用韩文...)
有些网站说,将后备语言设置为“本地化本地开发区域”的值,但是效果不佳。 你有什么主意吗?谢谢。
【问题讨论】:
在 OS X 中,这是用户的选择,而不是开发人员的选择。如果 iOS 得到它,我想它会以同样的方式完成。 谢谢,但你明白我想说什么吗?对不起,可能是因为我的英语不好。 【参考方案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 的值,您应该会得到所需的语言。
【讨论】:
关于 ios 本地化的最佳答案。谢谢以上是关于是否有在 iOS 应用程序中设置后备本地化语言的官方方法?的主要内容,如果未能解决你的问题,请参考以下文章