版本记录
| 版本号 | 时间 |
|---|---|
| V1.0 | 2018.05.09 |
前言
很多APP都有国际化版本,常见于一些大公司的产品,比如Facebook、Wechat等,那么国际化需要我们APP做哪些更改呢,接下来这几篇就一起来看一下APP的国际化和本地化。感兴趣的可以看上面几篇。
1. App的国际化和本地化(一) —— 简单介绍(一)
2. App的国际化和本地化(二) —— 查看语言和区域设置(一)
回顾
上一篇主要介绍查看语言和区域设置,本篇主要介绍国际化用户界面。
Internationalizing the User Interface - 国际化用户界面
Xcode提供了几种技术来帮助您开发国际化的应用程序。Xcode将用户界面文本与视图和布局分离开来,这样用户面对的文本就可以很容易地独立于您的Xcode项目进行翻译。Xcode还提供了在更改用户界面时保持这种分离的工具。此外,您可能对支持的每种语言都有不同类型的资源文件。
Using Base Internationalization - 使用Base国际化
Base国际化将用户面对的字符串从.storyboard和.xib文件中分离出来。它解决了在Interface Builder中需要修改.storyboard和.xib文件的本地化。相反,应用程序在development language只有一组.storyboard和.xib文件,development language就是您用来创建.storyboard和.xib文件的语言。这些.storyboard和.xib文件被称为base internationalization。当您导出本地化时,development language字符串是被翻译成多种语言的源。当您导入本地化时,Xcode为每个.storyboard和.xib文件生成特定于语言的字符串文件。在导入本地化或添加语言之前,字符串文件不会出现在项目导航器中。
在Xcode 5和之后,base internationalization默认启用。如果您有一个较老的项目,在继续之前启用base internationalization,如 Enabling Base Internationalization所描述的。
Using Auto Layout - 使用Auto Layout
使用自动布局,在没有固定的原点、宽度和高度的情况下,将您的视图显示出来,以便在语言或语言环境发生变化时适当地重新定位和调整大小。自动布局使所有语言都有一组.storyboard和.xib文件。
在使用自动布局的国际化应用程序时遵循以下提示:
-
删除固定宽度的限制。
- 允许视图显示本地化文本以调整大小。如果使用固定宽度限制,本地化文本可能会在某些语言中出现截断。
-
使用
intrinsic content sizes。-
text fields和labels的默认行为是自动调整大小。如果视图不适应本地化文本的大小,请选择视图并选择Editor > Size To Fit Content。
-
-
使用
leading和trailing属性。- 在添加约束时,使用
leading和trailing属性来进行水平约束。对于从左到右的语言,例如英语,leading和trailing的属性相当于left和right。对于从右到左的语言,如希伯来语或阿拉伯语,leading和trailing等同于right和left。leading和trailing的属性是水平约束的默认值。
- 在添加约束时,使用
-
将视图绑定到相邻视图。
- 绑定引起多米诺骨牌效应。当一个视图调整大小以适应本地化文本时,其他视图也会这样做。否则,视图可能会在某些语言中重叠。
-
不断地测试你的布局变化。
- 使用不同的语言设置测试你的应用程序,如Testing Your Internationalized App所描述的那样。
-
不要设置窗口的最小大小或最大大小。
- 让窗口和它的内容视图调整到它们包含视图的尺寸,当语言发生变化时,它可能会改变。
在创建新项目时默认启用自动布局。为使一个老项目的自动布局启用,阅读Auto Layout Guide中的Adopting Auto Layout。学习如何添加约束和解决约束问题,阅读Auto Layout Guide。
Detecting Problems Using Pseudolocalizations - 使用Pseudolocalizations检测问题
在Interface Builder中,您可以使用pseudolocalizations来预览用户界面,以检测自动布局问题。在本地化应用程序并添加语言之前,只有在Interface Builder中才能使用pseudolocalizations。
To preview the user interface in a pseudolocalization - 在pseudolocalization中预览用户界面
- 在项目导航器中,选择要预览的
.storyboard或.xib文件。 - 选择
View > Assistant Editor > Show Assistant Editor。 - 在助理编辑器跳转栏中,打开
Assistant弹出菜单,滚动到Preview项,并选择.storyboard和.xib文件。如果应用程序的用户界面预览没有出现在助理编辑器中,请选择要在图标或大纲视图中预览的窗口或视图。 - 在辅助编辑器中,选择您想要从右下角的语言弹出菜单中使用的
pseudolocalization。

例如,从菜单中选择Double-Length Pseudo-Language以将所有面向用户的字符串替换为重复的字符串。 本地化预览会显示在助理编辑器中。

Enabling Base Internationalization - 开启Base Internationalization
确认您的项目正在使用base internationalization,并在必要时启用它,然后再继续。
To enable base internationalization - 开启base internationalization
- 在项目导航器中,选择项目project(不是目标target)并单击信息。
- 如有必要,请点击本地化旁边的显示三角形以显示设置。

- 如有必要,请选中
Use Base Internationalization复选框。 - 在出现的对话框中,指定
.storyboard和.xib文件的开发语言。
在Resource File列中选择.storyboard和.xib文件,并在Reference Language列中选择开发语言。

Xcode根据您在此对话框中所做的选择修改您的项目文件夹。 Xcode在您的项目文件夹中创建一个Base.lproj文件夹,并将其添加到您选择的资源文件中。 Xcode为开发语言创建一个语言文件夹,但仅添加需要翻译到该文件夹的资源。 例如,如果选择英语作为开发语言,则Xcode会将资源文件插入到Base.lproj项目文件夹中,但不会插入en.lproj文件夹,因为该资源已经是英文的。
如果没有资源出现在对话框中,请将.storyboard和.xib文件添加到语言中,如Adding Languages所述,然后重复这些步骤。
- 点击完成按钮。
在语言表中,开发语言的本地化资源文件数量从0变为您选择的文件数量。

后记
本篇主要介绍了用户界面的国际化,感兴趣的给个赞或者关注,谢谢~~~
