第一步:在Supporting Files 中新建一个文件Localizable.strings .方法:在Supporting Files 上右键选择New File 选择Resource ----》Strings File 。
第二步:现在有InfoPlist.strings 和Localizable.strings 两个文件。这两个文件前一个用于改变项目在手机总图片的名字,后面一个用于改变里面的内容。现在点击项目名字---》PROJECT---》Info 进入这里下面有个Localizations 默认有个Chinese 点击下面的‘+’号,选择你要国际化的语言一般是English .注意这时会让你选择几个文件,你只要选择InfoPlist.strings 和Localizable.strings 就行了。其他的都取消选择。
第三步:这时再回来看看项目中的那两个文件点击发现分别包含了两个子文件了。后面加个(English)(Chinese)。只需要在里面写内容就行了。
第四步:举例说明:在InfoPlist.strings(English)中写CFBundleDisplayName="China"; 在Info.Plist.strings (Chinese)中写CFBundleDisplayName="中国";这时候如果你的手机语言环境是中文,你的项目名会显示,中国。如果你手机语言环境是英文,你的项目明会显示China。
第五步:在Localizable.strings(English)中写 “name”="name"; 在Localizable.strings (Chinese)中写“name"=
"名称";这时候,在程序中用的时候比如:UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 100)];
label.text=NSLocalizedString(@"name", nil);
[self.view addSubview:label];
如果手机语言环境是中文,则label上的文字就是名称两个字,如果手机语言环境是英文则显示是name.
到此就结束了。下面截几个图:截图在附件中,添加这里没有填上。还有个测试项目,
国际化
http://my.oschina.net/u/1049180/blog/215695
首先,我们使用字符串,必须用NSLocalizedString(key,comment),这样我们在不同的Localizable.strings对key指定不同的值,系统会根据当前系统语言,去不同的lproj找不同的字符串。用个图显示吧:
我们应用只支持中文,英文,所以只建了zh-Hans.lproj和en.lproj,然后在Localizable.strings指定了不同的值。举例如下:
这样程序就能根据系统语言,去选择“登录”还是“Log In”。
但是如果每次加了一个本地化字符串,就得手动去Localizable.strings添加对应的key,那就太麻烦了,幸好苹果提供了快捷生成本地化key的命令。下面以en.lproj的生成为例:
首先,我们进入程序工程所在的目录,用命令建立en.lproj
mkdir en.lproj
然后我们遍历所有的子目录文件,去生成Localizable.strings,命令如下:
find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj
(基本都说genstrings -o en.lproj *.m就可以生成Localizable.strings,但是这个命令只能生成当前目录的,并没有遍历子目录,所以基本没用)
这样系统就会把子目录用到NSLocalizedString函数的key值都写到文件里。
需要注意的是,NSLocalizedString(key,comment),用这个函数时,key不能是宏定义或者一些动态字符串,否则用上面的命令会报错。
相关推荐
国际化的方法: 点击左侧列表项目名称,点击project下的项目名称,—》找到info—>localizations—>luaugue-> 点击加载,添加需要用的语言,一般添加chinese english
软件开发设计:PHP、QT、...云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
github 上目前最大的swift 开源完整产品项目,由国际知名浏览器厂商Firefox 发起,Mozilla基金会支持,如果你有兴趣不妨为这个开源的浏览器贡献一点代码,也可以你自己学习用,利用涉及到各种相关iOS的技术,以及...
本章是示例I18nExerciser项目的开始,练习具有国际化和本地化意识的 Objective-C 代码。 该项目使用每个视图控制器的 XIB 文件,使用表视图进行导航。 这个项目是一个完全编译好的程序,可以运行。 ##第5章 这个...
本文主要介绍IOS 推送国际化问题,在开发 IOS 项目过程中对软件的国际化有的项目需求是需要的,这里给大家一个示例,有需要的小伙伴可以参考下
iOS-i18niOS国际化套装~ 详情见##使用把i18n目录拖进项目,在需要设置语言时调用Languager.standardLanguager().currentLanguage = “en”#####文字国际化localized("home")####图片国际化localizedImage("ic_home")
xib和storyboard自动国际化,iOS开发者必备工具 如果你在使用的时候,有任何问题,或者需要添加的新功能,请给我邮件,或者issues我 目前支持python版本: python2 脚本升级记录 2017.06.02自动化脚本在原先作者的...
如果你的 app 链接了 KVOController.framework,那么 AllYourMemoriesAreBelong2iOS 内部机制会自动利用其提供的现代化接口,否则则使用 Objective-C 标准库提供的原生 KVO 接口 如何使用 使用 ...
ReadChinese读取某个目录中的所有中文,并且将这些中文按照多语言(.string)格式写入文件中,可以直接拿来实现国际化###操作示例图如下###使用说明 本项目中,只是识别了.m和.h文件中的中文字符串,如果想要识别....
本项目适合IT相关专业各种计算机技术的源代码和项目资料,如计科、人工智能、通信工程、自动化和电子信息等的在校学生、老师或者企业员工下载使用。 也适合小白学习进阶,可以用作比赛项目、可以进行项目复刻去参加...
包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...