一、程序名国际化
1、首先添加应用对多语言支持的国际化文件
点击工程根目录,然后选择PROJECT下的项目,然后选择Info选项卡,在底部可以看到Localizations,点击“+”号,可以添加国际化文件,例如添加一个简体中文Chinese(Simplified),弹出对话框后点击确定,此时在Supporting Files文件组下的InfoPlist.strings下会有两个文件,InfoPlist.strings(English)和InfoPlist.strings(Chinese(Simplified))。
2、在相应语言的国际化文件中添加相应的语言内容:
例如在英文国际化文件InfoPlist.strings(English)中添加:
CFBundleDisplayName="app name";
在中文国际化文件InfoPlist.strings(Chinese(Simplified))中添加:
CFBundleDisplayName="应用名称";
则应用的名称会根据系统当前的语言环境,按照相应的国际化文件中指定的CFBundleDisplayName来显示指定的名称
二、内容国际化
1、首先添加应用对多语言支持的国际化文件
如果在程序名国际化中已经添加好,则此步骤可以省略
点击工程根目录,然后选择PROJECT下的项目,然后选择Info选项卡,在底部可以看到Localizations,点击“+”号,可以添加国际化文件,例如添加一个简体中文Chinese(Simplified),弹出对话框后点击确定,此时在Supporting Files文件组下的InfoPlist.String下会有两个文件,English和Simplified。
2、添加多个语言的国际化文件
New File… -->iOS-->Resource-->Strings File,例如添加文件:Localizable.strings(文件名必须是该名字,否则无法识别)
然后点击文件,在右侧的文件属性列表栏中的,点击Localization按钮,在弹出的对话框中,选择对需要的对应的语言,多个语言的国际化文件与各自的语言关联了。
3、添加国际化内容
例如在Localizable.strings (English)中添加:
"loading" = "Loading…";
在Localizable.strings (Chinese(Simplified))中添加:
"loading" = "加载中…";
注意不要漏掉;(分号)
3、使用国际化
//系统会根据当前设备的语言环境来判断使用英文还是中文
NSString *loading = NSLocalizedString(@"loading",@"");
获取系统支持的所有语言
NSUserDefaults *defaults = [ NSUserDefaults standardUserDefaults ];
//取得iPhone支持的所有语言设置
NSArray *languages = [defaults objectForKey : @"AppleLanguages" ];
NSLog ( @"%@" , languages);
获取当前使用语言
NSArray *languages = [NSLocale preferredLanguages];
NSString *currentLanguage = [languages objectAtIndex:0];
NSLog ( @"%@" , currentLanguage);
用获取到的当前语言,和支持的语言做字符串对比,就可以知道是那种语言了。
if([currentLanguage isEqualToString:@"en"])
{
NSLog(@"current Language:en");
}
referened from: http://blog.csdn.net/yuyunliu/article/details/13997589