最近做项目要做中英文版的本地化适配,特地研究一下关于本地化的一些内容,与大家分享一下,以下内容纯属个人理解(新手),受himi大神影响,向himi看齐,初次写博文 很多地方有不完善的地方,望大家斧正!!下面咱们进入正题:
本章主要包括几个内容:
1.本地化应用程序名称(icon);
2.本地化图片;
3.本地化nib文件
4.本地化字符串
5.本地化文件
1.本地化应用程序名称(icon);
(1)点击“new file”然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到“String File”的图标。创建这个文件,命名为“InfoPlist” 就生成一个InfoPlist.strings文件
(2)选中InfoPlist.strings 点击 XCode-> View-> Utilities -> File Inspector,在Localization中点“+”,添加chinese (zh-Hans) 类型的 为简体中文 。 english 应该会自动添加上 。 然后在 InfoPlish.strings 下会多两个 english chinese 版本的文件。
(3)在这 english chinese 版本的文件。 编辑不同的InfoPlist.strings文件,设置显示名字
CFBundleDisplayName = "名字";
比如:english文件下 添加
CFBundleDisplayName ="Localization";
chinese文件下添加
CFBundleDisplayName ="本地化";
(4)编辑Info.plist,添加一个新的属性Application has localized display name, 设置其类型为boolean,并将其value设置为选中状态
2.本地化图片
1)如果直接载入小图
点中图片 如“icon.png”,击 XCode-> View-> Utilities -> File Inspector,在Localization中点“+”添加chinese (zh-Hans);
在图片左边就会出现一个倒三角,点开就会出现(english)和(chinese)的2张图,并且在resoure文件夹中会出现en.lproj文件和zh-Hans.lproj文件;en.lproj文件存放的是英文版图片,zh-Hans.lproj存放的是中文版图片,我们可以在文件夹中直接替换就可以了
3.本地化nib文件
过程与上述2个类似
1) 单击 nib文件 然后选择“view”-》“utilities”-》“file inspect” 右侧会看到一些属性的信息。 或者快捷键 command + option+ 1.
在Localization 选项下 点击+加号 添加chinese (zh-Hans) 类型的 为简体中文 。 english 应该会自动添加上 。
4.本地化字符串
supporting files”目录中右键“new file”然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到“String File”的图标。创建这个文件,新建的文件名要写成“Localizable.strings” 必须是
2)点击刚才创建的这个文件,选择xcode4的菜单中的“view”-》“utilities”-》“file inspect” 右侧会看到一些属性的信息
3)找到Localization这项,现在应该是空的,点“+”进行国际化的添加。因为我只制作了中文和英文,所以我加了“English”和“Chinese”,这里要注意的是“Chinese”要选择“zh_Hans”,这个是简体中文。
4)添加好后就可以看到你项目目录下会生成对应的目录,zh-Hans.lproj和en.lproj 目录里面就是Localizable.strings的文件
5)在xcode4中可以看到原先创建的Localizable.strings文件的左侧会多出一个三角图标,点击后会扩展出2个文件,一个中文,一个英文的。点击每个文件进行编辑就可以了。
6)文件中的格式是“Key”=“value”; 等号 分号都必须是英文状态。
7)在程序中需要使用国际化字符串的时候,调用NSLocalizedString(@"about", nil)就可以进行字符串的显示。其中第一个字符串就是文件中的key,第二个字符串可以使用nil代替也可以写一些注释。
5.本地化文件过程与上述类似
1) 单击 文件 然后选择“view”-》“utilities”-》“file inspect” 右侧会看到一些属性的信息。 或者快捷键 command + option+ 1.
在Localization 选项下 点击+加号 添加chinese (zh-Hans) 类型的 为简体中文 。 english 应该会自动添加上 。