iOS开发之多国语言国际化经验浅谈

Bison

"努力、努力、再努力,今天的付出,乃明天的收获" Bison

1
冰之依韩版女装(程序媛福利)


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.国际化一些有图片的地方,我们需要特别注意下取名哦,比如:
[email protected](英语)
这样做的好处就是我们替换图片的时候只要判断下后缀是否是en
就可以判断当前语言所需的图片下面我截个图给大家瞧瞧

屏幕快照 2015-09-29 上午9.40.17.png
记得叫美工改好名字哦,我们用起来的时候就会方便快捷!

暂时就发现这么多,大家有什么需要补充的也可以邮箱给我。

版权归©Bison所有 任何转载请标明出处!

博主app上线了,赶紧点此来围观吧😄

更多经验请点击


分享文章