iOS App国际化必看!使用Xib使App完成国际化功能

利用Xib或者Storyboard来做iOS的国际化是一种特别方便且高效的方式。通过简单的设置后就可以在不同的文件中把内容翻译为不同的语种,这篇文章我们来了解一下利用IB来做国际化要注意的一些问题,希望能够对你有所帮助。

到公众号【iOS开发栈】学习更多SwiftUI、iOS开发相关内容。

完整了解国际化步骤

  1. 增加国际化语言。在xcode左侧的项目目录树中点击项目名称->点击“PROJECT”中的项目名称->Info->Locatlizations,之后点击+号就可以增加自己需要的语言了。
  2. 在选择要增加的语言之后会弹出设置弹窗,把需要国际化的IB(Xib、Storyboard)文件勾选上,并且在File Types选项中选择Localizable Strings
  3. 项目目录树中对应的IB文件就会成为文件夹的形式,可以看到刚刚添加的语言文件(*.strings(xxx))。

添加过语言后又要增加UILabel等控件国际化

随着版本的升级或者需求的改变,我们的IB文件很可能会发生变化,由于我们使用了IB文件进行国际化,又不能每次改版重新做一遍国际化的工作,这就要求我们可以定位到新增的控件并设置语言。

在xxx.storyboad(Base)文件中选中增加的控件,打开右侧帮助栏,找到第四个选项卡(Show the Identity Inspector),其中有一个Object ID

把这个ID复制到其他语言的.strings文件中,就可以设置对应的语言翻译了。其中UILabel、UIButton和UITextFiled的placehoder的设置方法如下:

1
2
3
4
5
6
7
8
/* Class = "UITextField"; placeholder = "ios"; ObjectID = "RCg-HC-Mcn"; */
"RCg-HC-Mcn.placeholder" = "ios";

/* Class = "UIButton"; normalTitle = "Button"; ObjectID = "isH-qk-FQm"; */
"isH-qk-FQm.normalTitle" = "Button";

/* Class = "UILabel"; text = "iosprogrammer.tech"; ObjectID = "pLC-qp-tdZ"; */
"pLC-qp-tdZ.text" = "iosprogrammer.tech";

一些总结

  1. 如果一个用户的设备系统语言是没有进行适配的,他下载了应用后,将会使用Base语言。比如一个葡萄言语的用户下载了一个适配了日文和韩文的app,并且这个app的Base语言是日文,那么这个用户将会看到日文。
  2. 从一个已经适配的语言切换到一个没有适配的语言,仍然会使用切换前的语言。比如从适配了的中文简体切换到了没有适配的日文,那用户看到的仍然会是中文简体。

到公众号【iOS开发栈】学习更多SwiftUI、iOS开发相关内容。

总结

通过这篇文章我们学习了几个在使用IB来做iOS国际化的过程中需要注意的地方,如果想要充分了解到这方面的知识建议通篇阅读一下官方文档