不论电话语言如何,如何在iOS应用程序内部进行本地化

最近,当我们与我的团队为一个iOS应用程序开发项目的完成感到高兴时,一封电子邮件入侵了我的屏幕。

我们从刚刚完成项目的同一客户那里收到了新要求。 邮件中写道:“我希望我们的应用程序应从应用程序内部更改其语言,而与电话语言无关”。

你们遇到过这个问题吗? 好吧,你可能有! 因此,我想到写这个博客来分享我如何解决此问题的经验。

在这篇文章中,我想介绍以下几点:

  • 什么是应用程序本地化?
  • 本地化如何在iOS中工作?
  • 为什么应该优先考虑iOS应用本地化?
  • 如何在iOS应用中进行本地化?
  • 为什么本地化很重要?

什么是应用程序本地化?

根据W3C(万维网的主要国际标准),应用程序本地化是指对您的应用程序进行调整,以满足目标市场( 语言环境 )的语言,文化和其他要求。

本地化通常写为l10n ,其中10是l和n之间的字母数。

本地化如何在iOS中工作?

启动iOS应用程序后,操作系统会努力将您喜欢的设备语言与应用程序支持的语言进行匹配或整理。

您的应用使用默认语言。

例如,英语和法语是您的应用程序支持的语言,在这种情况下,用户将英语设置为应用程序的默认语言。

因此,现在当用户的电话语言设置为法语时,您的应用将显示法语内容。

但是,当用户将电话语言更改为意大利语时,您的应用将加载默认的应用语言,在这种情况下为英语。

这是因为您的应用仅支持英语和法语,而没有意大利语本地化。 因此,在这种情况下,当电话语言设置为法语以外的其他任何语言时,您的应用将始终显示英语内容。

为什么要优先考虑iOS应用本地化?

多年来,iPhone在全球范围内的销售取得了巨大的增长。 让数字说明一切,请参见下图(由Statista提供)。

在上图中,您可以看到苹果iPhone从2007年第三季度到最近一个财务季度的全球销售情况。

苹果在2017财年售出2.176亿部iPhone ,2018年第二季度售出5222万部iPhone

尽管全球智能手机市场竞争激烈,但苹果的收入从2004年的80亿美元增长到2017年的超过2,290亿美元 。 归功于几乎所有国家/地区的iPhone成功。

现在,您可以期望您的下一个客户来自印度,中国,墨西哥,泰国或其他任何地方! 因此,正确制定iOS应用本地化策略可能会转化为更多应用下载。

如何在iOS应用中进行本地化?

当涉及到根据手机更改语言时,通常我们会获取手机语言代码并相应地加载“ lproj”文件。

但是在这种情况下,它必须是动态的,因此我创建了“ String”的扩展名。

看下面的代码:

extensionString {

publicvar localized:字符串{

ifletbundleName:String = UserDefaults.standard.value(forKey:“ USER_LANG”)如?

{

let path = Bundle.main.path(forResource:bundleName,ofType:“ lproj”)

让bundle = Bundle.init(path:path!)

returnNSLocalizedString(self,tableName:nil,bundle:bundle !,值:“”,注释:“”)

}

其他{

returnNSLocalizedString(self,tableName:nil,bundle:bundle !,值:“”,注释:“”)

}

现在,当用户从应用程序更改语言时,他们的选择将通过键“ USER_LANG”保存在UserDefaults中。

调用本地化函数后,将从UserDefault键(如“ EN”或说“ NL”)中加载正确的包。 换句话说,如果已经选择“ EN”语言,并且您将其更改为“ NL”,则它将存储在UserDefaults中。

每当调用String的本地化函数时,它将加载适当的语言翻译,如下所示:

为什么本地化很重要?

我在这里提到了三个必须优先考虑iOS应用本地化的关键原因:

  1. 拓展全球市场:通过适当的研究和正确的本地化策略,您的应用程序可以消除地理和文化障碍,并可以覆盖更广泛的受众。 扩展的客户群始终对您的业务有益。
  2. 更好的参与度和用户体验:客户希望看到以他们的母语完全改编的内容。 用户反过来从您的应用中获得真正的价值将提高参与度。 您的应用用户参与度越高,对您的业务越有利。
  3. 创造差异化:将您的应用程序上传到竞争激烈的应用程序商店时,本地化可以帮助您与其他类似应用程序区分开来,并更快地覆盖目标受众。 因此,应用程序本地化可以提高收入并帮助您获得更好的ROI。

加起来

在过去十年中,随着iPhone在不同国家/地区的销售势头强劲,本地化可能是影响用户下载决定的主要因素。

您还可以查看如下所示的第三方库:

https://github.com/PiXeL16/IBLocalizable

您是否遇到过在iOS应用程序中进行本地化的问题? 您觉得这篇文章有用吗? 我很想听到你的消息; 请在下面留下您的评论,分享您的想法。