iOS应用内部切换语言,不跟随系统.docx

iOS应用内部切换语言,不跟随系统.docx

ID:28494538

大小:689.60 KB

页数:8页

时间:2018-12-10

iOS应用内部切换语言,不跟随系统.docx_第1页
iOS应用内部切换语言,不跟随系统.docx_第2页
iOS应用内部切换语言,不跟随系统.docx_第3页
iOS应用内部切换语言,不跟随系统.docx_第4页
iOS应用内部切换语言,不跟随系统.docx_第5页
资源描述:

《iOS应用内部切换语言,不跟随系统.docx》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、网络上关于iOS国际化的文章很多,但基本上都是基于跟随系统语言的国际化,笔者就不赘述了-0–今天要讲的是不跟随系统的切换语言版本方案,即程序内部的切换语言版本方案。一、总则:应用内部语言不跟随系统语言,由应用自己进行控制,通过配置多个语言文件,根据用户的选择动态获取不同文件夹下的语言文件,显示在界面上。最后把用户选择的语言持久化到本地,下次运行时读取。二、应用内的国际化1、新建工程新建SingleViewApplication工程,取名为MyInternational。2、添加多语言文件我们选择使用自己的语言文件,而不是系统的localizab

2、le.string,因为在项目开发使用svn时,多人操作同一文件可能会造成冲突。在Resource中添加新的StringsFile:取名为hello(记得Targets要勾选项目)新建完成之后会生成hello.string文件,把它拖进SupportingFiles里。3、配置hello.string国际化首先配置刚才的hello.string文件。点击hello.strings文件,点击圈中的Makelocalized(本地化)。只有English,没关系点击确定。4、配置项目国际化网络上很多配置方法不靠谱,因为新版的Xcode位置“+”号的

3、位置换了。这里教大家正确的方法,点击项目—>选择Project—>选择Info—>点击“+”号。点击“+”号后,添加中文,当然也可以添加其他的语言。弹出对话框,infoPlist是配置系统的国际化文件,可以配置图标之类的多语言环境,不属于本文范围。nib文件看需要配,这里选择不配。配置完成之后,再看hello.string便分成了两个文件。完成上面的四步便完成了项目内的多语言环境配置,下面来看看代码怎么写。5、添加需要的字符串分别在hello.strings(English)与hello.strings(Chinese)里面添加对应语言的字符串

4、。字符串的格式为“key”=“value”;键值对(别忘记分号!)接下来配置项目需要的字符串,一个用于lable的显示,一个用于button的显示。hello.strings(English)"invite"="helloatany,cometojoininus!";"buttonInfo"="changeLanguage";hello.strings(Chinese)"invite"="你好atany,快来加入我们吧!";"buttonInfo"="切换语言";6、看看流程实现思路:在初始化首个Controller的时候,进行应用语言的加载。

5、首次加载因为userLanguage(应用内语言)不存在,则使用系统当前的语言,保存到userlanguage,下次直接读。读出来之后,获取到对应文件路径,得到文件的索引,储存到工具类InternationalControl的静态变量bundle中。其他地方需要用字符串时,用工具类获得bundle即可读取相应文件中的字符串。7、新建工具类InternationalControlInternationalControl.h#import#import@interfac

6、eInternationalControl:NSObject+(NSBundle*)bundle;//获取当前资源文件+(void)initUserLanguage;//初始化语言文件+(NSString*)userLanguage;//获取应用当前语言+(void)setUserlanguage:(NSString*)language;//设置当前语言@endInternationalControl.m1)创建静态变量bundle,以及获取方法bundle(注:此处不要使用getBundle)。staticNSBundle*bundle=ni

7、l;+(NSBundle*)bundle{returnbundle;}2)初始化方法:userLanguage储存在NSUserDefaults中,首次加载时要检测是否存在,如果不存在的话读AppleLanguages,并赋值给userLanguage。+(void)initUserLanguage{NSUserDefaults*def=[NSUserDefaultsstandardUserDefaults];NSString*string=[defvalueForKey:@"userLanguage"];if(string.length==0

8、){//获取系统当前语言版本(中文zh-Hans,英文en)NSArray*languages=[defobjectForKey:@"AppleLan

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。