iOS 国际化(多语系)

如果项目中需要根据不同的地区显示不同的语言,那么就需要app能够支持多种语系,也叫国际化处理。
首先在项目的Supporting Files 中 右键 new file

创建Localizable文件.png

当地的语言是默认支持的,额外需要支持的语言可以自己配置,但是一般都是需要支持英语

选择需要支持的语言.png

如果除了英语之外还需要支持其他的语言,那么就需要到info当中做配置了

info中选择其他的语言.png
选择一种语言.png

之后就是选择需要支持多语系的文件了

选择需要支持多语系的文件.png

成功之后项目的Supporting File 多一个这样的文件

三种语言文件.png

重复上面的步骤创建一个中文的文件
"test" = "测试" ;
"test" = "test" ;
左边是key 右边是对应语言的文字.

使用NSLocalizedString来设置多语系.png

当项目非常庞大的时候一般会遇到下面两个问题
一个是key值可能会重复
一个是多个控件可能具有相同的名称

屏幕快照 2017-02-25 17.00.19.png

解决这个问题目前看到有两套做法:
第一种是 key的命名方式可以采用 控制器名+控件名+意义 这样的方式
这样的话看到即使是在 sring文件中阅读代码,也能够知道这个key在哪里使用到。
如果多个控件公用一个的话,那么可以在key的命名后面+reuse来表示这个key是被重用的。(如果以后其中某个控件修改了名字,不要忘记新建一对key value),这套做法的问题在于,如果多个控制器都使用了相同名称的控件,如果要修改,那么就要逐个的分别修改这些,无法一次性修改。而且如果多个界面元素的名称很多重复,每一个都要写一个key,会造成很多次的重复。

第二种是key值使用中文命名(或者自己的母语),这样在赋值使用NSLocalizedString时就能够知晓空间的名称。如果有复用的情况存在也很方便直观的知道,而不是由于上面那套复杂做法造成复用性差的问题。但是也带来一个问题,如果希望只修改其中一部分控件的名字,就需要新建key值了。上面那一套就只需要更新对应界面的value值就可以了。

但是综合改动量来看,第二套做法更好。

参考资料
http://blog.csdn.net/lwjok2007/article/details/46547085

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,932评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,554评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,894评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,442评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,347评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,899评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,325评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,980评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,196评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,163评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,085评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,826评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,389评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,501评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,753评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,171评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,616评论 2 339

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,550评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,226评论 25 707
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,333评论 0 17
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 25,589评论 5 18
  • 刚翻开一页闲书,本来心里想求个风轻云淡的心境,给自己风火轮般的加班生活一点宽慰,结果被右下角的新闻刷屏,点进去就看...
    远山归舟阅读 667评论 5 12