App的国际化和本地化(三) —— 国际化用户界面(一)

版本记录

版本号 时间
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 fieldslabels的默认行为是自动调整大小。如果视图不适应本地化文本的大小,请选择视图并选择Editor > Size To Fit Content
  • 使用leadingtrailing属性。

    • 在添加约束时,使用leadingtrailing属性来进行水平约束。对于从左到右的语言,例如英语,leadingtrailing的属性相当于leftright。对于从右到左的语言,如希伯来语或阿拉伯语,leadingtrailing等同于 rightleftleadingtrailing的属性是水平约束的默认值。
  • 将视图绑定到相邻视图。

    • 绑定引起多米诺骨牌效应。当一个视图调整大小以适应本地化文本时,其他视图也会这样做。否则,视图可能会在某些语言中重叠。
  • 不断地测试你的布局变化。

  • 不要设置窗口的最小大小或最大大小。

    • 让窗口和它的内容视图调整到它们包含视图的尺寸,当语言发生变化时,它可能会改变。

在创建新项目时默认启用自动布局。为使一个老项目的自动布局启用,阅读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变为您选择的文件数量。

后记

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容