这篇写的不多,但是绝对诚意满满。不会像别人一样,要不不详细,要不罗里吧嗦一堆。

1、创建Localizable.strings文件

  Command+N—>iOS—>Resource—>Strings File,命名为Localizable,这样就生成了Localizable.strings文件。

 

2、添加语言

  点击最上面的项目名准备进行设置,在最左边的窗格中选择PROJECT(默认的是TARGETS),然后在Info标签下你会看到一个Localizations分区。点击点击“+”,然后选择你想要的语言。

  添加的时候,你会发现Localizable.strings,Main.storyboard和你建的XIB都是默认勾选的,这些你勾不勾都行,你可以在这里直接勾选,也可以觉得用不着在故事板或xib上设置,直接去掉勾选也行。这是你会发现Localizable.strings这个文件和你勾选过的文件,不再是单个文件了,你选的每一个语言,都有一个相应的文件。

  万一你在添加语言的时候,没有勾选某个xib,现在你想要直接对这个xib进行国际化设置,怎么办?不急,你选中那个xib,在Xcode的右边的框里,选择第一个文件图标的标签,你会看到Locallzation这个分区,剩下的懒得说了,自己玩吧!

 

3、对每种语言进行设置

  在Localizable.strings中,对每种语言分别设置,比如在Localizable.strings(Chinese(Simplified))这个文件中,写一行代码:"Start" = "开始";

在Localizable.strings(English)这个文件中写上:"Start" = "Start";在Localizable.strings(French)这个文件中写上:"Start" = "Commencer";

  在需要用到的地方,label.text = NSLocalizedString(@"start", nil);那么你的应用就国际化了,当你手机系统设置的语言是简体中文时,这个label显示开始;当你手机系统设置的语言是英文时,这个label显示Start,当你手机系统设置的语言是法语时,这个label就会变成Commencer。

 

4、对Storyboard或者XIB中的控件直接进行国际化设置

  基本上有上面三步就够用了,但是你想在xib上直接国际化,不想用Localizable.strings这个文件,怎么办?

  小意思!

  第一步,先保证你的xib可以点开,这个上面介绍了,不多说。

  第二步,先在xib上一个label,内容“开始”,然后你点开xib里面的几个文件,空的!!!如果是你先label,然后再添加语言,勾选xib,那么它里面是有东西的,但是如果是你后来添加的话,它不会在里面语言的文件里自动添加,这里需要折腾一下,这点苹果比较坑。网上别的帖子怎么做的?要不不说这一点,要不就是在终端捣鼓一下。

  我不喜欢这种方法,直接在Xcode小葱的中折腾,在Xcode右边上面提过的Locallzation分区中,每个语言这都有,每个语言后面都有上下箭头,点开,当前选择的是Localizable Strings,改成另一项Interface Builder Cocoa Touch XIB,然后再改回来Localizable Strings,这时候你再点开xib不同语言的文件都会出现相同的两行代码:

/* Class = "UILabel"; text = "开始"; ObjectID = "8OX-N2-Acl"; */

"8OX-N2-Acl.text" = "开始";

  第二行等号后面的那个开始,你就可以用对应的语言来替换了。

 

注意:当我们在国际化的时候,写key,写着写着就忘了加 ";" ,如果忘了,这时会报错,“read failed: the data couldn't be read because it isn't in the correct format.”,这时候认真查看一下自己的Localization文件就可以了。