版本记录
版本号 | 时间 |
---|---|
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变为您选择的文件数量。
后记
本篇主要介绍了用户界面的国际化,感兴趣的给个赞或者关注,谢谢~~~