iOS开发--项目的本地化处理(多语言开发)
来源:互联网 发布:sql,字符串截断错误 编辑:程序博客网 时间:2024/06/04 12:06
最近项目本地化,需要支持11国语言,下面将本地化的步骤记录下来,方便查找使用,步骤很简单,有些地方也有坑,希望大家看后少走弯路~~
什么是本地化
本地化说直白点就是多语言开发,通过系统语言来判断应用使用的哪种语言,实现应用的本地化开发
本地化处理需要处理的文件
- 本地化应用程序的
info.plist
- 本地化字符串处理(项目中所涉及的字符串)
- 本地化图片
- XIB和storyboard的本地化处理
- 其他文件,比如
csv
等等
让我们的项目支持本地化
首先我们只有设置成支持多语言了,我们才能在展示项目名称和项目中的字符串等将语言进行切换,具体操作如下图所示:
在如上图所示的地方添加你需要支持的语言就行了,我这里是添加了简体汉语和英语
如何判断当前系统使用的语言
我们使用Locale
这个类来判断当前的系统语言,方法:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
同过以上的代码基本上能清楚的知道当前系统的使用的语言
获取系统支持的所有语言
同样我们也是通过Locale
来获取系统支持的所有语言
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
如何本地化info.plist
1.首先我们建一个名称叫InfoPlist.strings
的本地化文件,记住名称必须叫InfoPlist.strings
2.选择让InfoPlist.strings
支持的语言,如下图所示:
3.在InfoPlist.strings
分别写入你想本地化的值,如下图所示 (格式如下所示,以分号结尾):
如何获得info.plist中对应的Key
我们可以通过打开info.plist
的源码来获取到对于的Key值,如下图所示 :
本地化字符串处理
本地化字符串处理原理上跟infoPlist的处理差不多,只是我们需用配合一个方法来使用它:
- 1
- 1
默认使用NSLocalizedString
这个方法时我们是获取mainBundle
中一个名字叫Localizable.strings
的本地化文件,所以我们一般只需要建一个名字叫Localizable.strings
的文件即可,方法步骤跟建立infoPlist.strings
类似(传送门)
使用自定义的本地化文件
使用自定义的本地化文件也很容易,也是之前的方法,我们只需要多填一些参数就可以了:
- 1
- 2
- 1
- 2
以上就是NSLocalizedString
这个方法的所有参数,其中的tableName就是本地化文件的名称,默认就是Localizable.strings
,自定义的话只需要建立一个新的,然后名称填你自己建立的本地化文件即可.
XIB和storyboard的本地化处理
XIB
和storyboard
的方法也很简单,跟本地放字符串类似,不过是本地化的XIB
文件,如下图所示:
XIB
和storyboard
的本地化又两种方式,如上图所示,一种是以本地化文件的方式实现,就是以.strings
的本地化文件;另外一种是以XIB
或storyboard
的方式展示,具体如下图所示 :
本地化图片和其他文件
对于本地化图片和其他文件就比较费劲一点了,因为Xcode中图片并没有支持本地化,我们只有通过代码判断来决定使用相对于的本地化图片和文件了,判断方法的传送门
本地化中所遇到的问题
在本地化中必须谨记一个问题,就是必须按本地化文件的格式来写入文件,因为本地化文件并不能检查出你分号后面是否多多余的字符串,造成的后果就是本地化文件失效!!
原文地址:http://blog.csdn.net/wang631106979/article/details/53258658?ref=myread
- iOS开发--项目的本地化处理(多语言开发)
- iOS 项目的本地化处理(多语言开发)
- iOS 项目的本地化处理(多语言开发)
- iOS项目本地化-(多语言处理)
- 关于多语言本地化的ios app开发教程
- 多语言本地化操作的ios app开发教程
- 【iOS-cocos2d游戏开发之一】IOS下xcode4语言本地化的问题
- iOS开发-多语言本地化和手动切换
- iOS开发总结-----项目名字本地化
- iOS项目的本地化处理(多国语言)
- 【iOS开发】iOS根据不同的语言,显示不同的APP名字--即:app名字多语言本地化
- iOS开发-app本地化
- ios开发本地化例子
- iOS开发—本地化
- iOS开发 APP的国际化与本地化
- ios的本地化处理
- ios多语言本地化
- iOS 多语言本地化
- 关于ListView中点击条目不生效的解决办法
- JAVA(图形界面编程)GUI
- CSS3 -webkit-transition(属性渐变)
- 如何更高效的使用MVP以及官方MVP架构解析
- JDBC 连接MYSQL数据库
- iOS开发--项目的本地化处理(多语言开发)
- 遇到提示“该公众号暂时无法提供服务,请稍后再试”的解决办法
- javac不是内部或外部命令
- linux 与C# socket通信 汉字编码
- 【TCP 关键知识点】
- Android中的Sqlite及其在代码中的使用
- 一看就懂的单例设计模式
- js如何检测出数组中出现的字符串
- 从0开始学习 GitHub 系列之「07.GitHub 常见的几种操作」