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

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所有 如需转载请保留原文超链接地址!否则后果自负!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Crossin的编程教室

【Python 第4课】输入

Hi~Crossin又来了。 可以用编程语言让计算机按你说的指令做事情之后,大家是不是有些跃跃欲试呢?别着急,先回顾一下我们之前几节课。我们到现在一共提到了三种...

2827
来自专栏AhDung

【C#】让ReSharper灰色显示未使用的非私有成员的关键

1、在Inspection Severity中设置Non-private accessibility为Warning。如图:

872
来自专栏编程微刊

Highcharts使用的一些总结

Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且免费提...

481
来自专栏知识分享

1-学习GPRS_Air202(Air202开发板介绍)

4136
来自专栏腾讯Bugly的专栏

如何定位Obj-C野指针随机Crash(二):让非必现Crash变成必现

继上一篇如何定位Obj-C野指针随机Crash介绍了思路后,这次我们继续看,如何让非必现Crash变为必现。 ? 陈其锋,腾讯SNG即通产品部音视频技术中心软件...

3983
来自专栏Rindew的iOS技术分享

iOS百度地图POI详情检索与路径规划(附Demo)

2366
来自专栏HTML5学堂

HTML5征程前的准备工作

HTML5学堂:在开启学习HTML5知识之前,一些知识是需要掌握的。推荐在正式学习HTML5的知识之前把如下罗列出的任务搞定。良好的基础知识能够让日后对专业知识...

3363
来自专栏华章科技

100个iOS开发/设计程序员面试题汇总,你将如何作答?

无论是对于公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,本文作者CameronBanga从编程、设计、AppStore等各个方面对iOS开发者及设...

634
来自专栏程序员的知识天地

一个Mac系统,能让程序员编程效率提升30%

Mac 系统一向以提供高效的工作环境著称,iOS、Android和服务端程序员都可以轻松的在Mac上搭建舒适的开发环境。

972
来自专栏Charlie's Road

UIKit Dynamics:开始入门 —《Graphics & Animation系列一》

翻译自raywenderlich网站iOS教程Graphics & Animation系列 介绍 UIKit Dynamics是一个集成到UIKit中的完整物理...

793

扫码关注云+社区