多语言本地化,是我们在做IOS项目的时候经常用的,下面根据自己的经验和使用场景,来全面的说说多语言本地化的解决方案。
首先我们要明白本地化的原理和过程,才能更好的理解本地化的方案,本地化主要包括下面几个部分:
- 本地化应用程序名称
- 本地化字符串
- 本地化图片
- 本地化其他文件
一、本地化应用程序名称,这个只有一种方案:
二、本地化字符串和本地化图片的解决方案有下面两种:
第一种做法看似比较简,当时其实想灵活实现也需要费点心思,具体的实现方法如下:
- 创建多个strings文件,名字不能用Localizable.strings。
- 多个strings文件如:English.strings/Chinese.strings/German.strings等等。
- 每个文件中的内容和写法与Localizable.strings类似。
- 使用方式:NSLocalizedStringFromTable(@"start",@"Chinese", nil) 。
- 根据用户的操作,来更新页面的多语言显示。
- 图片的本地化,不同语言获取不同的图片名称即可。
第二种做法,主要分一下几点:
- 类似“本地化应用程序名称”第一步,点击“new file”然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到“String File”的图标。创建这个文件,命名为“Localizable”(一定是这个文件名否则后面调用会有一些区别)就生成一个Localizable.strings文件;
- 类似“本地化应用程序名称”第二第三步,在Localizable.strings(english)文件中加入:
"welcome"="Click on the screen to continue...";同理在Localizable.strings(chinese)文件中加入:
"welcome"="点击屏幕继续...";在代码中使用NSLocalizedString(<#key#>, <#comment#>)来读取本地化字符串。
注:图片的本地化, 这里不同语言的图片的名称要一样,但是要放到不同的语言文件夹中。
三、本地化其他文件
本地化其他文件和本地化图片第二种方法类似,先在Localization中添加语言,然后把对应版本拷贝到en.lproj和zh-Hans.lproj文件夹中,最后引用就行了。
原文:http://www.cnblogs.com/JerryBaxia/p/4797352.html