美文网首页码源实用小功能项目开发技巧
iOS开发之多国语言国际化适配经验浅谈

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

作者: Bison | 来源:发表于2015-09-28 15:26 被阅读5479次
    12.jpg

    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

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

    更多经验请点击
    原文在:http://www.allluckly.cn/

    如对你有帮助,请不要吝惜你的star和喜欢哦!

    推荐一款学习iOS开发的app_____|______| | 传送门

    暂时就发现这么多,大家有什么需要补充的也可以简信给我。
    技术交流群:534926022(免费) 511040024(0.8/人付费)
    版权归©Bison所有 如需转载请保留原文超链接地址!否则后果自负!

    相关文章

      网友评论

      • 欧阳大哥2013:多语言布局尤其是对阿拉伯国家的布局支持。可以参考一下我实现的https://github.com/youngsoft/MyLinearLayout。 非常完美和简单的支持对阿拉伯国家的适配。
      • coder小鹏:您好,我设置中文的时候,图片是在左边的,文字是在右边的,然后切换到阿拉伯语的时候,就将我的图片给顶到右边了,你有没有遇过这种问题???
      • 67c9ab5605de:纯代码下添加语言?
      • d83b1a9a55db:请问xib里面的文字能直接做多语言适配么
        57cebc310a86:@Bison 请问xib或者storyboard里面多语言具体怎么配置?
        Bison:@浅忆微凉iOS 可以
      • CoderJackieYip:请问做国际化多语言,要为每种语言设置字体怎么做?
        Bison:@CoderJackieYip 自动判断语言的,图片才需要判断
        CoderJackieYip:@Bison 是每次label初始化时,用代码先判断语言环境,然后设置字体吗?
        Bison:@CoderJackieYip 直接设置label的字体
      • 18ce9f6925e6:zh-Hans、zh-Hanz、zh-Hanz-CN 是不是写错了啊 两段代码一样的
        Bison:@Agurona 仔细看看…没写错噢!字符串的用法不同而已
      • cokefish:多语言是非常麻烦的,布局、编码,字库裁剪,排布方向,好多东西都受影响

      本文标题:iOS开发之多国语言国际化适配经验浅谈

      本文链接:https://www.haomeiwen.com/subject/fsmwcttx.html