iOS环境下的资源国际化简介:资源国际化涉及产品名称,代码中使用的字符串资源,xib资源,图片资源,声音资源等。每种语言环境都与特定的资源相对应,当语言环境切换后,软件使用的资源也应做相应的变化。在iOS工程中,产品名称对应工程中的InfoPlist.strings文件,该文件描述了产品的名称。字符串资源:默认所有字符串资源都保存在Localizable.strings中,如果需要对字符串资源进行模块化,则可以手工创建不同的*.strings文件,用来保存各个模块的字符串资源。每个xib资源,图片资源,声音资源等也都可以生成与该语言环境对应的特定版本。
接下来以字符串资源为例进行介绍 :
1,代码中的使用方式:NSString *name = NSLocalizedString(@"name",nil);
2,NSLocalizedString宏的简介:字符串资源的使用主要涉及两个宏NSLocalizedString(key,comment)和NSLocalizedStringFromTable(key, tbl, comment)。NSLocalizedString是从与当前语言环境相应的Localizable.strings文件中寻找与key对应的字符串资源,Localizable.strings文件是系统默认文件,当不提供tbl参数时,系统从该文件中加载字符串资源。而NSLocalizedStringFromTable是从tbl参数指定的文件中寻找。字符串资源是运行时查找,如果查找失败,这两个宏定义都会返回key。
3, 针对系统使用的默认的Localizable.strings,如何新建并新增一种语言环境下字符串资源文件:
如果工程中没有与任何语言相对应的Localizable.strings文件,则可以新创建一个,步骤如下:
3.1,首先新建一个名为Localizable.strings的资源文件
3.2,完成后选中该文件,查看右边的属性,会发现在Localization下有一个名为Make localized的按钮。
3.3,点击这个按钮,出现国际化语言选择框,但只有一个English的选项:
3.4,点击Localize按钮,这时只支持英语。至此支持英文环境的Localizable.strings文件创建完毕。
3.5,如果想新增支持其他语言环境的Localizable.strings文件,点击工程根目录,并选择PROJECT,然后选择INFO选项卡,能 看到Localizations选项卡:
3.6,点击“+”号将要添加的语言选中,假设新增的语言为Chinese,此时在Localizable.strings组中除了已有的Localizable.strings(english)文件外,新增一个Localizable.strings(chinese)文件,分别支持英文和中文,如下图所示:
至此支持新语言环境的Localizable.strings文件添加完毕。
4,Localizable.strings文件的内容为<key = value;>的格式,示例如下:
"About"="关于";
"Cancel"="取消";
"Ok"="确定";
……
5,如何在Localizable.strings中新增字符串资源:
假设要新增的字符串的key为“name”,value为“张三”。首先在该资源文件中搜索“张三”,如果该文件中已存在该value,则不需新增。否则,在该资源文件中搜索“name”,如果该文件中已存在该key,则需要对“name”重命名,确保该文件中的所有key都不重复。