iOS开发-高级汇总工作生活

iOS 国际化方案

2019-07-02  本文已影响24人  heron_funny
app-international-14.png

开门见山,国际化有两种方式, 第一种是自己手动创建国际化的各种文件, 此方法的灵活, 容易维护.第二种方式是app完成之后使用xcode导出国际化模板, 然后编辑模板, 此方法的方便, 快捷. 缺点就是如果xib 布局中添加或者删除控件需要重新导出一套模板,然后在编辑.

应用名称国际化

步骤:

1.在project中添加需要支持的语言如下图

app-international-01.png

2.新建一个 InfoPlist.strings 文件, 点击属性栏中的Localize按钮,如下图

app-international-02.png

3.在属性栏中勾选需要国际化的语言, 这里的语言就是步骤一中设置的语言, 如下图

app-international-03.png

4.此时, InfoPlist.strings 文件会变成一个组, 分别对应国际化的语言, 然后在里面写需要国际化的内容

app-international-04.png

5.里面的内容如下, 左边是中文, 右边是英文

app-international-05.png

字符串国际化

和app名称的国际化一样, 新建一个 <b style="color:red"> Localizable.strings </b>文件, 然后选择语言, 以<b style="color:red"> "key" = "value";</b> 的方式书写需要国际化的内容(";"不能省略,否则编译报错).

图片国际化

有两种方法:

方法一: 通过国际化字符串给不同语言下的图片加不同的后缀, 然后通过判断语言, 拼接图片名字符串.

方法二:使用原生支持的图片国际化方案: 如下

步骤:

1.将图片拖入工程中(以 icon.png 为例), 选中icon.png点击属性栏中的Localize按钮,并选择对应的国际化语言(这里以英文为例), 如下图:

app-international-06.png

2.右键icon.png -> show in finder 可以看见在en.Iproj文件夹中有icon.png, 说明icon.png的英文国际化成功, 如下图

app-international-07.png

3.将需要在其他语种显示的图片拖入对应的国际化文件夹中(和en.Iproj对应英文一样, zh-Hans.Iproj对应中文),并将其名称改为和其他文件夹相同(这里以icon.png为例, 所以将zh-Hans.Iproj文件夹中对应图片改为icon.png), 然后将zh-Hans.Iproj文件夹中icon.png拖入工程, 此时, 工程中 icon.png会变成一个组,包含中文和英文分别对应的图片, 如下图

app-international-08.png

4.最后在 copy bundle resources 中添加 icon.png 文件到boundle中, 然后使用如下方法就可以在不同语言下显示不同的图片 imageView.image = UIImage(named: "icon.png")

StoryBoard & Xib国际化
xib和storyBoard的国际化方法相同.有两种方法可以使用.

方法一:

app-international-09.png app-international-10.png

以上就是app国际化的第一套整体方案, 以及各个细节的实现, 接下来介绍第二种方案:

app-international-11.png app-international-12.png app-international-13.png
总结:

启动图国际化
步骤

app-international-20.png app-international-21.png

<b style="color:green">注意: 此方法国际化启动图只要用户首次或者重新安装app时才生效, 只切换语言不会生效</b>

<b style="color : red">第二种方式如下:</b>

app-international-14.png app-international-15.png

tips

  1. 没有放在Assets中的图片, 不能直接通过storyBoard给imageView设置图片, 设置了页不会显示
  2. iOS 保持界面流畅的技巧
  3. 深入理解runloop
  4. xcode预览ib或者storyboard的方法, 可以添加不同的设备进行预览.但是预览不是百分之百准确, 指示作为参考, 预览开启的方式如下.
app-international-16.png app-international-17.png app-international-18.png app-international-19.png

第三方库

  1. FPS 指示器
  2. facebook开发的帮助ios流畅
  3. tableView预排版,提高性能demo
  4. 行TableView流畅度优化

技术博客

  1. ios技术博客
上一篇下一篇

猜你喜欢

热点阅读