几经艰辛,项目终于到达尾声,在上周给游戏增加了简体中文的本地化支持,这次本地化的内容主要有应用的名称、字符串和图片资源,IOS在本地化的支持还是很友好的,最后来个简单的小结吧。因项目是在Xcode4上开发,本文的 *** 作也是基于Xcode4,在Xcode3上,部分 *** 作应该会有所不同。
1. 给项目增加语言支持:打开项目的“Info“属性编辑界面时,我们可以看到”localizations“一栏,如下图所示,这就是设置项目本地化支持语言的地方,在这里我们可以加入简体中文(Chinese(zh-Hans))、繁体中文(Chinese(zh-Hant))等语种的支持。
2. 应用程序名
一个Xcode项目可以建立多个target,每个target代表一个不同的应用(产品),而且每个target都有自己的Info.pList配置文件,应用程序名(安装后在IOS设备上显示的名称)是在Info.pList配置文件里设置。
Info.pList不能设置本地化,如果需要让应用程序名以本地化形式显示,则要创建一个名为“InfoPList.strings”的strings资源文件,在InfoPList.strings里设置应用程序名,设置方式为 :"CFBundledisplayname" = "要显示的名称"; App安装后,应用程序名会显示为键“CFBundledisplayname”的值。通过对InfoPList.strings本地化设置,就可以实现应用语言的本地化。主要 *** 作步骤为:创建“InfoPList.strings”文件 -> 选中“InfoPList.strings” -> 打开右边工具栏(Utilites) -> 在“Localization”栏目加入语种,如下图所示:
加入多个语种后,InfoPList.strings文件下会多出一个三角箭头,展开后,可以看到每个语种都会对应一个“InfoPList.strings”文件(下图所示),选中一个文件,改变“CFBundledisplayname”的值,这样就可以实现在不同的语言环境下显示不同名称的效果了。
3. 本地化字符串 cocoa框架内置了两个常用的宏来实现字符串的本地化: NSLocalizedString(key, comment) 根据设备当前的语言环境自动加载对应的资源文件“Localizable.strings”,再返回资源文件里Key的值,如果不存在“Localizable.strings”文件,或者key不存在,会返回key本身。
NSLocalizedStringFromtable(key, tbl,sans-serif; line-height:24px"> 根据设备当前的语言环境自动加载对应的资源文件tbl,再返回资源文件里Key的值,如果不存在tbl文件,或者key不存在,会返回key本身。
我们只要把字符串定义在strings资源文件里,像应用程序名的本地化 *** 作一样,对strings资源文件进行本地化 *** 作,再用使用上面2个宏读取,就可以实现字符串本地化显示了:
//从文件“Localizable.strings”里读取Key为“Localizable Demo”的值 Nsstring *Title = NSLocalizedString(@"Localizable Demo", nil); //从文件“MyStrings.string”里读取key为“test”的值 Nsstring *testString = NSLocalizedStringFromtable(@"test", @"MyStrings", nil);4. 图片和其他资源文件
选中需要本地化的资源文件 -> 打开右边工具栏(Utilites) -> 在“Localization”栏目加入需要支持的语言。xcode会把资源文件拷贝到新加入语言的的目录下,把准备好的本地化文件替换掉xcode自动拷贝的文件即可。
一个完整的本地化程序例子DEMO |
以上是内存溢出为你收集整理的IOS应用本地化小结全部内容,希望文章能够帮你解决IOS应用本地化小结所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)