Tag: I18n

快速指南:iOS国际化(i18n)和本地化(l10n)

您是否在开发iOS应用程序,但不知道如何国际化和本地化iOS应用程序? 如果答案是肯定的,那么您来对地方了。 在本文中,我们将介绍如何使用Swift在iOS应用程序中设置国际化(i18n)和本地化(l10n)。 苹果的移动操作系统iOS在过去几年中经历了非凡的全球增长,以至于苹果表示,现在有150多个国家/地区可以使用iOS App Store,并且iOS设备支持40多种语言。 国际化(i18n)是使您的应用适应不同语言和文化的过程。 另一方面,iOS中的本地化(l10n)是将您的应用翻译成针对特定语言环境的多种不同语言的过程。 注意»通常,开发人员(尤其是iOS开发人员)可以互换使用这两个术语(国际化和本地化),但实际上,两者是不同但相互联系的概念。 因此,我们将这篇基于教程的文章分为两个小节: iOS中的国际化 iOS中的本地化 你知道吗? »国际化和本地化通常分别缩写为i18n和l10n。 i18n中的18表示国际化的“ i”和“ n”之间的字符数,而10n中的10表示本地化的“ l”和“ n”之间的字符数。 花哨的东西,不是吗? 在深入讨论上述小节之前,让我们首先了解一些必需的步骤。 初赛 在本节中,我们将熟悉在iOS应用程序中执行i18n和l10n所需的步骤。 工具 您将需要以下工具: Xcode(最新版本)。 现在,我正在使用Xcode 9。 编程语言(iOS) 我们将使用以下语言进行编程: 迅速 决定 在实际进行国际化和本地化之前,您需要首先确定要定位的区域(地区)以及这些区域使用的语言。 初步步骤对于定位您的受众群体至关重要。 在本文中,我将使用英语作为基本语言,使用法语,中文(繁体)和德语作为其他本地化语言。 您可以根据需要和目标受众在应用程序中添加任意数量的语言。 添加其他语言的步骤将完全相同。 要知道的术语»地区或国家被称为地区,尤其是当我们处理国际化和本地化时。 无论您在何处找到“区域设置”,都仅表示某个国家或地区。 书呆子术语,不是吗? 既然我们已经讨论了这些基础知识,那么现在该深入了解前面提到的小节了。 iOS中的国际化(i18n) 正如我之前提到的,i18n是使您的应用适应不同语言环境的过程。 从iOS开发人员的角度来看,这是使字符串在外部可编辑的过程-无论是在情节提要中还是在代码中。 此外,为了根据各自​​的区域设置日期,数字等,您必须使用不同的内置类。 例如,我们可以使用“格式”类根据区域设置日期格式,根据首选语言设置数字格式等等。 现在,我们将使用简单的设置来适应国际化过程。 建议»在完成应用程序的设计和编码部分后,请务必执行国际化和本地化步骤。 为什么? 因为Xcode会通过在可本地化的文件中自动添加字符串来节省您的大部分时间。 如果在编写应用程序代码之前执行这些步骤,则必须手动将所有字符串添加到其指定文件中(用于本地化)。 最重要的是,您应该在最后完成国际化的所有步骤。 您(iOS开发人员)需要执行以下步骤才能国际化您的应用程序: 为i18n设置项目 创建新项目或拥有要国际化的现有应用程序后,请确保在Xcode的项目信息设置(如下所示)中选中了名为“ […]

iOS i18n:XCode中的情节提要国际化

请注意,默认情况下已选中“ 使用基本本地化”复选框。 如果我们取消选中它,则XCode会询问我们要将可本地化文件移动到的特定语言环境。 在上面显示的对话框中单击“ 移动 ”会将故事板从Base.lproj移到en.lproj 。 这意味着我们的翻译人员必须跳入XCode并直接翻译情节提要,而不是简单地使用字符串文件。 我怀疑这是我们大多数时候想要的,因此我将在此处启用“基本国际化”。 注意» 如果禁用“基本国际化”然后重新启用,则可能必须遍历所有可翻译的故事板,并更改非基本语言的本地化文件类型。 XCode会将那些切换到情节提要文件。 如果需要,可以在检查器中将其还原回字符串文件。 由于我们使用的是基本国际化,因此无需做很多事情来确保我们的字符串(例如标签文本)是国际化/可翻译的。 我们只是从XCode免费获得它。 添加支持的语言环境 我们可以在项目设置中为我们的应用添加支持的语言环境。 我们只需导航到项目设置的“ 信息”选项卡,确保选择了整个项目(而不是特定的目标),然后单击 按钮在“ 本地化”下添加新的语言环境。 选择语言环境时,系统会询问我们是否要对新语言环境使用情节提要或字符串文件。 这将取决于您的项目需求,但是在大多数情况下,我们需要字符串文件,并且默认情况下会选择它们。 自动版面配置和i18n XCode的UI布局系统Auto Layout使用约束使UI视图适应不同的屏幕尺寸,方向等。AutoLayout实际上为我们完成了很多i18n工作。 让我们看看如何。 前,后,左和右约束 默认情况下,针对视图的前缘和后缘设置XCode中的水平约束。 视图的前沿是从左到右的语言布局中的左边缘,而从右到左的语言布局中的右边缘。 仅通过使用后缘和前沿,我们就获得了从右到左语言(如阿拉伯语和希伯来语)的大量支持。 我们可以在XCode的检查器视图中手动关闭此功能。 例如,当我们希望视图与语言方向无关时,这将很有用。 我们只需选择一个约束,打开“ 大小”检查器 ,然后单击“ 第一项”或“ 第二项”的下拉菜单。 然后,我们单击“ 尊重语言方向”选项以将其禁用为活动约束。 当我们这样做时,我们可以看到约束与视图的绝对左边缘有关,而与语言方向无关。 避免固定宽度约束 请注意,该文本在我们的某些应用标签中被截断。 对于i18n来说,这尤其是一个问题。 对于我们的开发语言,标签宽度通常可以很好地工作,但是没有考虑到相同标签的不同语言将具有不同的文本大小。 这可能会导致文本被截断并且信息丢失,从而可能使我们的用户感到困惑或烦恼。 当我们为标签设置固定宽度时,通常会发生文本截断。 我们可以通过删除固定宽度约束并使用尾随和前导约束来固定标签来解决此问题。 让我们浏览一下Open Plant Wiki中的视图并执行此操作。 这解决了我们的截断问题,并可以容纳更多的翻译。 试试看,然后重新运行该应用程序以查看效果。 注意自动版面设计警告 如果我们花时间研究XCode在构建接口时为我们生成的“自动布局”警告,则可以避免上述固定宽度问题。 […]