应用程序 多语言支持"/>
iphone 应用程序 多语言支持
这里有几个概念:
多语言支持,就是一个程序支持几种语言.
本地化/国际化,就是把原有语言支持翻译成另外一种语言
这里又推导出另外几个问题,
一。是让程序带几种语言文件支持
二。运行中如何切换界面
三。代码中如何把对应的字符取出来? 首先我们看一下Iphone的语言设置。打开Settings-->International-->Language.可以在界面上切换语言.可以把当前语言界面切换不同语言。
应用程序是怎么做相应的切换呢?如果正好程序带了相应语言支持。则直接切换过去。如果没有相应的支持。则切算成默认语言。 还有一种情况,在iphone设为中文界面的情况,程序手动切换成英文。这又要怎么做?
一.iphone项目的语言文件 -----------------------------------------------------------------
在iphone的xcode项目中,往往带好几个语言支持。
每一个语言支持的文字保存在<语言类型>.lproj/Localizable.strings当中。比如英文是
English.lproj/Localizable.strings 当中, 简体中文是Zh_cn.lproj/Localizable.strings当中
Localizable.strings的格式有两种,一种是旧式是的,每一行都是形如下格式
"_LocaleLanguage"= "zh"; "cancel" ="取消";
另外一种是XML格式的plist文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plistPUBLIC "-//Apple Computer//DTD PLIST1.0//EN" ".0.dtd"> <plist version="1.0"> <dict> <key>button</key> <string>按键</string> </dict> </plist> |
二.在XCode 操作strings文件. 在主菜单File-->New file 或项目窗口的右健中,选择AddNew.. 在other文件中,选择新建strings文件
新增文件可以放在任意目录,但是最好是按前面要写成Zh_cn.lproj/Localizable.strings 的名字
在新增的文件手工增加翻译条目: 新的语言再重复上述步骤即可。
三.在应用程序中使用国际化字符串 ----------------------------------------------------------------------------- 在程序中使用字符串的地方可以调用NSLocalizedString来取出对应语言的字符串
如果你的strings文件不是标准的Localizable.strings,假设叫my.strings则可以用
NSLocalizedStringFromTab
le(@"button",@"my", nil);来取得字符串
比如:
UIAlertView *alert = [[UIAlertViewalloc] initWithTitle:NSLocalizedString(@"title",nil) message:@"showmessage" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil]; |
四.在界面显示 ------------------------------------------------
在界面显示主要取决于两点。一个是当前iphone的显示语言,如果匹配自动调用相应的语言。 简体中文语言环境:
英文语言环境:
如果当前语言应用程序不支持,则会自动显示Info.plist中
Localizationnative development re指定的语言。
发布评论