(转)iOS 开发 初级:应用多语言化的方法
来源:互联网 发布:美国农业部的数据库 编辑:程序博客网 时间:2024/05/16 11:57
要使应用多语言化在Xcode中实现起来其实是相当容易的。对于大多数的应用,多语言化主要在于文字的多语言化,其他的诸如图形,界面的多语言化一般的应用并不会涉及。当然,这些在Xcode中都可以实现。下面主要介绍一下文字多语言化的方法。
Step 1:为应用添加多语言版本
这个很简单,在project中info下有localizations,点击+添加所需要的版本,这时会弹出对话框显示要添加语言版本的内容。
这里面包含了storyboard,infoPlist.strings。如果要实现产品名称的多语言化,应包含infoPlist.strings。同时也可以看到我们可以直接在storyboard中实现比如按钮,图片的多语言。对于Localizable.strings,是针对文字的多语言,在下面会讲到。这个要手动添加。
Step 2:编程中的变化
要实现多语言,在编程中就不能直接用NSString 了,而是使用
NSLocalizedString(key, comment)
介绍一下基本用法:key是对应显示的NSString,comment则为注释。基本的原理就是有不同版本的Localizable.strings,相同的注释在不同语言版本中key不一样,这样显示的时候不同的语言界面显示的语言就不一样。
Step 3:获取Localizable.strings
打开Terminal终端:
然后将地址换到工程所在文件夹。基本方法是输入“cd ”然后将工程文件夹拉进其窗口。
然后输入 genstrings ./LocalizeMe/*.m 这里LocalizeMe是我这里例子的项目名称。要改成你项目的名称。 回车,然后打开工程文件夹,你就可以看到Localizable.strings文件,将其拉进Xcode项目中。
打开文件可以看到如下类似内容,Localizable.strings 包含你的项目中所有使用NSLocalizedString的内容。
这里的注释就是comment,而下面的“Three”=“Three”,左边的字符串就是Key。
Step 4:编辑Localizable.strings
如果你这时候还没有针对Localizable.strings这个文件进行多语言化也没关系。如下图:
点击这个文件,然后打开属性,可以看到右边有Localization选项,比如我要添加中文版,那就在Chinese上打钩,这样这个文件就会自动添加一个Chinese版本。
接下来就是点击这个Chinese版本进行编辑:
把每个对应的key的内容改成中文的就OK了。
现在运行程序,如果手机是中文的,那么显示的就是中文内容,如果是英文的,那就是英文内容。
Step 5:应用名称多语言化
这个很简单,在infoPlist.strings中输入
CFBundleDisplayName = "应用名";
就可以了。
以上就是最基本的实现多语言化的方法。要更进一步的话,还有数据类型多语言化,比如货币,时间等等, 这些内容有待深入研究!
转自:http://blog.csdn.net/songrotek/article/details/8766641
- (转)iOS 开发 初级:应用多语言化的方法
- iOS 开发 初级:应用多语言化的方法
- iOS 开发 初级:应用多语言化的方法
- iOS 开发 初级:应用多语言化的方法
- iOS 开发 初级: 应用设置Setting的实现
- iOS 开发 初级: 应用设置Setting的实现
- 【iOS开发】 初级数据持久化 理解与应用
- [Cocoa]_[初级]_[Cocoa开发应用实现多语言之间自由切换]
- iOS 开发 初级:AVAudioPlayer 的使用
- iOS开发语言之OC 初级内存管理
- iOS 开发 初级:应用内实现 更新提醒
- iOS 开发 初级:应用内购买 In-App Purchase
- iOS 开发 初级:应用内购买 In-App Purchase
- iOS 开发 初级:应用内实现 更新提醒
- IOS开发---OC语言-㉕ autoreleased的应用
- ios开发应用内实现多语言自由切换
- ios开发应用内实现多语言自由切换 三
- 开发的iOS应用
- 启程
- 如何在一台服务器上实现多个web站点(IIS方法)
- IE浏览器下jquery的ajax方法失效解决办法
- WIN7下使用DotNetBar,关闭Aero效果,使用Office2007Form皮肤
- ajaxfileupload.js源码
- (转)iOS 开发 初级:应用多语言化的方法
- cacti 监控linux晋级应用之增加Cacti插件
- erlang fun函数使用详解
- JS控制 input 输入字符限制全搜集
- 指针元素的map
- c语言排序算法总结
- 排序/查找 299 - Train Swapping
- Android设备目录和节点的创建
- 面向对象之构造函数和析构函数之二