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 条评论
登录 后参与评论

相关文章

来自专栏ionic3+

hybird,关于地理定位

原生定位使用GPS/北斗定位,网页定位仅支持基站定位和WIFI定位两种方式,自然优先选型原生定位,但是,为了在一些影响GPS信号接收的地方提高精度,现在的第三方...

1642
来自专栏钱曙光的专栏

一周极客热文:微软将推新编程语言M#:系统编程级别的C#

据国外媒体VB报道,微软正在开发一款新的编程语言:M# 。它在C#的基础上添加了系统编程特性,可用来构建各种类型的应用,尤其是云计算应用。 微软员工Joe Du...

2376
来自专栏钱曙光的专栏

一周极客热文:5种类型的程序员

一位过来的老鸟程序员总结了自己多年的程序员经历,把程序员分为以下五类: 补漏型:当哪里出现差错的时候他会迅速的修补 完美主义强迫症型:“你想对我的代码做什么!”...

1887
来自专栏玉树芝兰

如何用Python和R对《权力的游戏》故事情节做情绪分析?

想知道一部没看过的影视剧能否符合自己口味,却又怕被剧透?没关系,我们可以用情绪分析来了解故事情节是否足够跌宕起伏。本文一步步教你如何用Python和R轻松愉快完...

1402
来自专栏钱曙光的专栏

一周极客热文:Java 8简明教程

该教程将带领你一步一步地认识这门语言Java 8的新特性。通过简单明了的代码示例,你将会学习到如何使用默认接口方法,Lambda表达式,方法引用和重复注解。看完...

1909
来自专栏牛客网

从0offer到一天谈完薪资,几乎结束秋招,前端面经回馈牛客

个人是双非渣本,没有实习经历,但是自己的项目经验巨多,之前是搞算法的,后来转向前端

1292
来自专栏视频咖

从QQ音乐开发,探讨如何利用腾讯云SDK在直播中加入视频动画

看着精彩的德甲赛事,突然裁判一声口哨,球赛断掉了,屏幕开始自动播放“吃麦趣鸡盒,看德甲比赛”的视频广告

2191
来自专栏大数据挖掘DT机器学习

R语言爬虫初尝试-基于RVEST包学习

在学完coursera的getting and Cleaning data后,继续学习用R弄爬虫网络爬虫。主要用的还是Hadley Wickham开发的rves...

3853
来自专栏阮一峰的网络日志

学习Javascript的书籍

昨天,ppip同学留言: 你的js主要是用什么材料学的?推荐用哪本教程呢? 我想了一下,发现自己还真的读过不少书。我在这里做一个总结,希望对想学习Javasc...

2895
来自专栏程序员的诗和远方

20180826_ARTS_week09

第一种方法,把数字转成字符串,再变成数组,倒转,然后再变回字符串。 很明显,这个方法效率不高。

861

扫码关注云+社区