打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
iOS开发之多国语言国际化适配经验浅谈

iOS多国语言国际化由于我个人也是第一次做,所以遇到了很多问题,
在此我把我所遇到的一些问题分享给大家。
最基础的怎么进行多国语言国际化在此就不老生常谈了,有兴趣的朋友可自行百度。

1.首先我们说下翻译的格式:"你好" = "hello";
我们可以把需要翻译的文档制作成"你好" = "";这种Word文档
每一种语言一个Word文档,这样你会发现,你做国际化的时候会快很多,不必到处找啊找的,我们这次搞得就是表格样式的,坑死人了,放翻译文档放的手都软了;

2.我们尽量把同一个VC的词语翻译成差不多长的其他语言。
大家可以想象一下如果你的一个布局里面有一排按钮,等分排练的,然后翻译的title一个好长一个非常短的,我们该这么去适配呢?而我们最简单的做法是
btn.titleLabel.adjustsFontSizeToFitWidth = YES;想象一下当时我是有多痛苦了吗?所以说,当你看到这篇文章的时候说明你很庆幸,至少下次你遇到这样的需求你可以及时的和翻译说。

3.由于某些国家的语言有很多种不同的系列,导致测试的时候会出现,这种语言缺失,其实不然,只是你在选择语言的时候少选了他的语种,就像中文一样,有简体和繁体中文。我这里最常见的有这么几种:
西班牙语(最坑爹,我选了3个才搞定)
丹麦语
俄语
葡萄牙语
意大利语

4.当初做项目的时候没管那么多,直接是只考虑了中文,然而国际版我们的项目需要减少一个tabBarItem所以通过判断是否为中文来判断的具体写法是写了个单例的类然后写的方法:

//判断是否为中文简体- (BOOL)isSimpleChinese{    NSString *language = [[NSLocale preferredLanguages] firstObject];    if ([language isEqualToString:@"zh-Hans"]) {          return 1;    }else{        return 0;    }}

然而我们的运气貌似有点差,刚好碰上的iOS9升级,失效了,打开代码断点看看,原来是苹果IOS9增加了语言后面的地区代码,原来的zh-Hanz变成了zh-Hanz-CN
能怎么办呢?当然是改代码咯。。。。下面是改过的代码

//判断是否为中文简体- (BOOL)isSimpleChinese{    NSString *language = [[NSLocale preferredLanguages] firstObject];if ([language hasPrefix:@"zh-Hans"]) {        return 1;    }    else {        return 0;    }}

仔细的你是否发现了代码的不同之处啊?

5.国际化一些有图片的地方,我们需要特别注意下取名哦,比如:
hello_en@2x.png(英语)
这样做的好处就是我们替换图片的时候只要判断下后缀是否是en
就可以判断当前语言所需的图片下面我截个图给大家瞧瞧


屏幕快照 2015-09-29 上午9.40.17.png


记得叫美工改好名字哦,我们用起来的时候就会方便快捷!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
安装drupal-6.2和简体中文语言包 | Drupal China
安装Bodhi Linux让老旧电脑重新焕发活力
Cydia里点击更新后会报错 wrong language code zh-Hans 的终极解决方法
Chrome 使用技巧:设定 Chrome 的语言和区域
网站如何知道浏览器的用户在使用什么语言?
Eclipse JDK API中文帮助文档的java开发环境搭建
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服