转自:http://blog.csdn.net/songrotek/article/details/8766641
要使应用多语言化在Xcode中实现起来其实是相当容易的。对于大多数的应用,多语言化主要在于文字的多语言化,其他的诸如图形,界面的多语言化一般的应用并不会涉及。当然,这些在Xcode中都可以实现。下面主要介绍一下文字多语言化的方法。
Step 1:为应用添加多语言版本
这个很简单,在project中info下有localizations,点击+添加所需要的版本,这时会弹出对话框显示要添加语言版本的内容。
这里面包含了storyboard,infoPlist.strings。如果要实现产品名称的多语言化,应包含infoPlist.strings。同时也可以看到我们可以直接在storyboard中实现比如按钮,图片的多语言。对于Localizable.strings,是针对文字的多语言,在下面会讲到。这个要手动添加。
Step 2:编程中的变化
要实现多语言,在编程中就不能直接用NSString 了,而是使用
NSLocalizedString(key, comment)
介绍一下基本用法:key是对应显示的NSString,comment则为注释。基本的原理就是有不同版本的Localizable.strings,相同的注释在不同语言版本中key不一样,这样显示的时候不同的语言界面显示的语言就不一样。
Step 3:获取Localizable.strings
打开Terminal终端:
然后将地址换到工程所在文件夹。基本方法是输入“cd ”然后将工程文件夹拉进其窗口。
然后输入 genstrings ./LocalizeMe/*.m 这里LocalizeMe是我这里例子的项目名称。要改成你项目的名称。 回车,然后打开工程文件夹,你就可以看到Localizable.strings文件,将其拉进Xcode项目中。
打开文件可以看到如下类似内容,Localizable.strings 包含你的项目中所有使用NSLocalizedString的内容。
这里的注释就是comment,而下面的“Three”=“Three”,左边的字符串就是Key。
Step 4:编辑Localizable.strings
如果你这时候还没有针对Localizable.strings这个文件进行多语言化也没关系。如下图:
点击这个文件,然后打开属性,可以看到右边有Localization选项,比如我要添加中文版,那就在Chinese上打钩,这样这个文件就会自动添加一个Chinese版本。
接下来就是点击这个Chinese版本进行编辑:
把每个对应的key的内容改成中文的就OK了。
现在运行程序,如果手机是中文的,那么显示的就是中文内容,如果是英文的,那就是英文内容。
Step 5:应用名称多语言化
这个很简单,在infoPlist.strings中输入
CFBundleDisplayName = "应用名";
就可以了。
=======================
自己的补充:
NSBundle.h下有
#define NSLocalizedString(key, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
#define NSLocalizedStringFromTable(key, tbl, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringFromTableInBundle(key, tbl, bundle, comment) \
[bundle localizedStringForKey:(key) value:@"" table:(tbl)]
#define NSLocalizedStringWithDefaultValue(key, tbl, bundle, val, comment) \
[bundle localizedStringForKey:(key) value:(val) table:(tbl)]
4个方法
(key, tbl, bundle, val, comment)
1.key 所使用的字符串对应的key
2.tbl 所使用的字符串所在的string文件名。 ex:abc.strings的话 就输入abc
3.bundle 资源strings文件所在的文件目录。
4.val 默认字符。
5.comment 注释
相关推荐
iOS支持多语言,本地化,具体可参照我的博客《1.3iOS支持多语言》
ios国际化,收集得很全的国际化文档,很实用。
unity 多语言,支持android 和ios,操作简单,容易上手
iOS本地化国际化多语言支持,GDLocalizableController类,用来切换本地语言
多语言支持 目前有 英语 法语 俄语 泰语 意大利语 越南语 印尼语 印地语 需要其他语言可以免费定制 多货币支持 支持以USD为主的全球主流货币,一键转换汇率,提高用户购买率 商家入驻 这是每一个跨境商城必备的...
支持单文本、多文本 并可以控制滚动方向 设置文本间距 包含点击事件的代码块 能够控制定时器开始、暂停等。 ---单文本---: 文本宽度 > 控件宽度 自动循环滚动 文本宽度 控件宽度 不滚动 ---多文本---: 自动...
这套新开的盲盒抽奖,市场上...英文版盲盒抽奖是面向国际用户,我们支持多语言盲盒抽奖。 后台可以控制中奖几率,以及幅度!再狠点的后台直接品设置0 永远也不会中! 中奖后支持一键回收,后台干涉中奖等多功能?
超级签适配IOS15.2支持一码多用安装渠道安装超级签名系统分发系统多种证书 如果有问题请联系QQ6964830
多语言盲盒抽奖源码。H5+Android+iOS后台可控制中奖率。可对接Paypal VISA等国际支付。前台多语言一键切换。...支持 英语 德语 法语 意大利语 泰语 多语言一键切换。程序经过反复测试,修复bug 已经达到运营级了。
java后端带七端(h5+android+ios)多语言IM即时通讯源码带视频教程
github地址:https://github.com/longitachi/ZLPhotoBrowser 持续更新。 一款方便易用的照片选择框架,根据系统语言设置自动支持多语言(暂实现:英、日、中文简、繁) 详情介绍及使用方法请看git中Readme
由于iOS无法通过html表单来上传图片,因此想要上传图片,必须实现http请求,而不能像其他语言那样通过html表单的post就能上传,做单图上传时参考网上的例子可以实现,但是发现网上的例子不支持多张上传,所以自己...
支持系统静态的控件,一句代码实现应用内语言的切换
IOS计算器,而且还支持多语言哦,目前支持中,英,法,日,德等五种语言。虽说是个很小的功能添加,虽说软件只有0-9这十个数字能够发声,但至少可以知道自己没有按错和按漏数字,也算是不错的啦。除了发声外,软件也...
- 支持的语言:Objective-C 本公司经过近几年的持续的技术积累,产品线有了较大拓展,除了原有的PDF在线阅读有了较大优化和更新(目前已经能够支持Google Chrome、Mozilla Firefox、苹果Safari、Opera等几乎所有主流...
多语言交友约会源码/国际多语言相亲交友源码/虚拟会员/礼物赠送/会员付费,支持安卓ios客户端。pc端 h5端 四端无论哪个...多语言支持功能 全球支付方式功能。 这套源码经过了多次开发,反复调试目前已经是成熟阶段了。
Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),Swift 是一种支持多编程范式和编译式的开源编程语言,苹果于2014年WWDC(苹果开发者大会)发布,用于开发 iOS,OS X 和 watchOS 应用程序。Swift 结合了 C ...
操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...
2.2.4 Category(分类)主要用到Git上面iOS-Categories分类的内容,多创建一个Other用于存放平时要扩展的分类; 2.3 Resource(资源)模块的内容 资源模块主要包含三方面,Global(全局)、Image(图片)、Plist(配置文件)...
金山魔方录屏iOS方案:支持手游直播等多种场景,通过逆向苹果 Airplay 投屏技术,支持iOS 8.0以上系统直播所有屏幕内容(包括桌面),支持跨应用录屏,灵活度、稳定性高。目前使用此方案的App只能通过苹果企业签名证书...