是否有在 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.1iOS 7.1


如果您没有当前所选语言的本地化文件,或者您想指定特定语言,只需设置 pathForResource 的值,您应该会得到所需的语言。

【讨论】:

关于 ios 本地化的最佳答案。谢谢

以上是关于是否有在 iOS 应用程序中设置后备本地化语言的官方方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 git-gui 中设置所需的语言?

我想在我的应用中设置本地通知

是否可以在本地服务器中设置受信任的 TLS 证书?

iOS 6 的本地化

iOS:如何检索特定语言环境的语言环境字符串而不是用户在操作系统中设置的字符串?

在嵌入式 WebView 中设置 Dart 和 js 之间通信的通道