在项目实战中有可能你的客户并不仅仅是中国用户,还有可能面对国外的用户.举个小例子:
比如:登录的时候密码或账号输入错误,你提示账号和密码错误,在中国人眼里,你的提示相当重要,但是当外国人看到账号密码错误,what are you 弄啥嘞?,所以在处理文本信息时,我们应道准备两份,一份是给老外看的,不考虑多国语言,只考虑英语(因为英语比较通用,基本上很多国家不是在使用就是在学习),还有一份肯定是国人,毕竟连你都是中国人,你不主打中国市场,怕是你这个应用就凉了呀
1.如何做好本地话
1.在本地写死的文本信息,必须准备两份,系统会根据你手机设置的语言进行选择
2.那远程数据应该怎样考虑?也不是很麻烦,这个我们先不考虑因为这涉及到后台对于文本信息的国际化和本地化的处理,我们移动端很难对后台数据的国际化和本地化处理,我们请求数据时只需要传递经纬度,后台进行判断,返回我们相应的数据就可以了.(我们只需做好自己的显示就行,数据问题后台处理掉)
2.本地的国际化和本地化处理
这个苹果已经做的非常简单了,只需要我们添加一个文件,每次遇到需要写死的文本信息时,注意一下就可以.
1.在项目工程中->file->new->file->resources中选择strings file这个然后给文件输入一个名称,注意请选择target
新建文件2.选择工程名->查看localizations->添加中文
然后点击location.strings文件
选择中文和英文两种3.你会发现你的location.strings文件可以展开
然后在中文里面输入你需要写死的所有文本信息,然后在英文中写入对应的英文信息
4.查看结果
what fuck ??? 为什么打印出来的是key,而不是值
查找原因:文件名不能随意起名必须是Localizable.strings,而我写的是location.strings
导致NSLocalizedString("main_navagation_title", comment: "")找不到这个key,就直接将key作为值输出了,现在我们修改器文件名.
系统设置为中文的情况下:
中文情况下英文情况下:
修改完语言系统重新运行程序就会发现title成了英文,
英文情况下好了.这个简单的写死数据的本地化和国际化已经完成了,剩下的就是将所有项目中可能写死的文本信息都罗列到这里,在需要使用的地方用NSLocalizedString来获取就可以了.
NSLocalizedString至于这个从字面意思你应该明白他就是读取Localized.String文件内容的.
好了关于本地化和国际化就先说到这里!
我们的口号是:我们不生产bug,我们只是bug的搬运工!
一不小心说出了心里话哈哈哈哈.正解如下
我们不生产bug,我们只是bug的终结者!
本人联系方式:qq:513961360
email:513961360@qq.com
也可以加我们的qq群希望能与朋友们一起聊天和学习.群里还有很多iOS开发者,帮助我们解决问题,并且同时学习.
qq群号:580284575
网友评论