国际化&本地化
概念
国际化是指为应用程序提供一个用来支持不同语言的框架的过程,在代码设计上加入能方便的移植到其他国家和地区的特性。I18n是Internationalization的简写。
本地化是使你的应用程序支持特定地区的过程,将具有国际化支持的代码翻译成本国或地区的语言,是本地用户更容易使用。l10n是Localization的简写。
支持多语言,在英语语言环境设置显示相应的英文,在汉语环境下设置显示相应的中文。
1. 在工程菜单info选项卡下的localizations中添加新语言
2. 创建 strings 文件
新建文件
如果要对APP的设置(比如:应用程序包的显示名称)进行本地化,需要对
InfoPlist.strings
进行本地化处理。Xcode 6 里面没有InfoPlist.strings
了,那么需要我们自己创建一个。InfoPlist.strings有了之后系统会自动加载。选择新建文件,并在右边栏找到Localization属性
在出现的对话框选择Localize
将多语言勾上
在English和Simplified中分别输入应用名
运行一下-修改系统语言为中文和英文
系统是英语环境 那么 会加载英文的文件
系统是汉语环境 那么 会加载支持汉语的文件
3. 代码中加载指定文件中的字符串
自定义文件创建 一个.strings 文件,分别创建支持英语和中文的文件
多语言的设置 格式 key = value
英文
1
2
3
4
5"firstTitle" = "Limit";
"secondTitle" = "Reduce";
"thirdTitle" = "Free";
"fourthTitle" = "Subject";
"fifthTitle" = "Hot";汉语
1
2
3
4
5"firstTitle" = "限免";
"secondTitle" = "降价";
"thirdTitle" = "免费";
"fourthTitle" = "专题";
"fifthTitle" = "热榜";NSLocalizedStringFromTable 通过多语言的文件加载多语言的字符串
1 | //key 多语言中要使用的字符串的key,tbl 多语言文件(MyFree)的名称 , comment,预留参数 一般设为nil |
label.text = NSLocalizedStringFromTable(@”labelKey”, @”content”, nil);//使用NSLocalizedStringFromTable方法取出设置好的多语言内容,第一个参数为对应的key,第二参数是多语言文件名,第三个参数是对这个内容的注释,可以为nil