Localization and Storyborad

    开门见山。

    本地化和国际化是有区别的,简单来说,本地化是单纯地将你的app翻译成多种语言的过程。而国际化要考虑的因素就多了,它是使app能够适应不同的语言、 地区和文化的过程。比如:使用合适的语言来处理文本的输入与输出;使用合适的格式来处理日期、时间、数字、货币、度量单位等等;使用合适的历法和时区来处理数据......更多信息,请移步到About Internationalization and Localization

本文主要介绍的是故事板的本地化(单纯的翻译)。

在storyborad上,有些面向用户的文本信息,是不会随着app的运行而发生改变的,例如登陆页面的“账号”,“密码”,“注册”等。类似这些文本信息,我们一般都是直接在故事板上拖相对应的控件,然后设置控件的文本属性,并没有用IBOutlet将这些控件关联到controller中。那么,这种情况下,怎么对这些控件的文本信息进行本地化呢?很简单。

1、新建一个工程,选择单视图模版,命名为YYGLocalizationDemo。

2、接着,在main.storyborad上拖 label 控件,设置文本信息。如下:



3、然后,在xcode左侧导航区,单击工程文件,即最顶端的蓝色YYGLocalizationDemo文件,接着选择project文件,紧接着点击info,然后在Localizations中点击+按钮为工程添加新的语言(这里,我新添了简体中文),最后会弹出一个窗口,询问开发者要为哪些文件(系统默认是.storyborad文件和.xib文件)添加新语言支持,finish即可。



4、这时候,我们发现xcode左侧导航区域里,Main.storyborad文件前边有个小三角形,点击它,展开。发现下边有两个文件,一个是Main.storyborad(Base),另一个是Main.strings(Chinese(Simplified))。前者就是基于开发语言的Main.storyborad(我的xcode的开发语言是英语),后者就是简体中文环境下的Main.storyborad。单击Main.strings(Chinese(Simplified))文件:



5、将该文件中,包含了Main.storyborad上边所有子控件的信息。找到相对应的控件,修改其相关属性即可:



6、此时,故事板中,这些不发生变动,且没有利用IBOutlet关联到viewcontroller的文本信息,就可以支持本地化了。

7、注意事项:最好是等到整个故事板上的控件都设置好了,才去执行上述的第3步骤,要不然,等到Main.strings(Chinese(Simplified))生成,此时再往故事板上添加新控件,Main.strings(Chinese(Simplified))上是没有这个新控件的信息的。若是后期真的要添加新控件,那么添加好新控件之后,选择故事板,然后在xcode的右侧上方,选择File inspector,在Localization里,把Chinese(Simplified)取消,然后再重新勾选。这时候,新生成的Main.strings(Chinese(Simplified))文件里,就有新控件的相关信息了。不过,之前两个label的text属性,又恢复成默认的了。



新生成的Main.strings(Chinese(Simplified))文件如下:


(注意:在前后两份Main.strings(Chinese(Simplified))文件中,每个控件的ObjectID可能是不相同的,因此将上一份Main.strings(Chinese(Simplified))文件内的内容直接拷贝到新的Main.strings(Chinese(Simplified))文件中,可能发生错误)。

8、参考文章:iOS应用国际化教程(2014版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值