iOS应用国际化

关于iOS应用的国际化

       这里所说的国际化无非就是应用会根据手机当前的语言环境来改变应用上面的文字、图片上面的文字、应用的名称。让正在使用应用的用户不会因为语言的不通而无法使用本应用。 因为AppStore所提供的无痛的全球分发系统,任何 iOS 开发者要将他们的应用在超过 150 个国家的市场发布,所以有的开发者会根据自己的需求来适应更多的国家的人来使用。于是就产生了iOS应用的国际化。

       首先需要创建一个新的工程 使用系统模板 Single View Application 创建一个工程,工程名字命名为 LessonInternation 

 


1、应用名称国际化

首先我们刚创建完成的应用是只支持英文的。我们要添加应用的多语言支持。

点击项目名字  

       然后点击PROJECT  点击Info 在Localizations选项里面的Language添加语言支持,点击加号,添加Chinese(Simplified) (这是中文简体),具体点击地方在图片圈出来了,当点击加号添加语言支持的时候会弹出一个选择框。具体按照图片进行选择。


下面图片是简体中文添加完成后的样子。



这时我们会在我们的项目中的Supporting Files 文件夹下发现原来的InfoPlist.strings 文件里面包含了两个文件,通过点击下拉箭头看到

包含一个简体中文、一个英文。这是我们单击文件进入,在简体中文的文件下添加如下代码:

  

CFBundleDisplayName = "应用";


代码后面的中文即为要修改成的应用的名字,根据自己的需求进行修改。英文的修改同上。




这时应用的名称多语言支持就修改完成,我们可以修改模拟器语言查看应用的名称时否修改,下图为两种不同语言对应的应用的名称。

    

2、相关内容国际化

1) 控件文本国际化

  

       目前,所有应用显示的文本都以硬编码的方式存放在 Main.storyboard 和 ViewController 里。为了本地化这些字符串,你就要将它们放在单独的文件中。为了避免将它们硬编码到你的方法里,你只需简单地从该文件引用这些字符串即可。

       以此控件为例,我们应该做到当改变手机的语言环境时,控件上面的Label的文本也会改变为对应的语言才能用不同国家的用户群有更好的体验。

       Xcode 使用以 ".strings" 为扩展名的多个文件来存储和检索所有能用于应用的字符串,以支持多种语言。你的代码中的一个简单方法将会根据当前 iOS 设备的语言去查找并返回所需要的字符串。

这时我们应该创建相关的文件。创建方式如下: 

右键点击项目 New File... 创建新的文件




文件名为: Localizable  

注意: 不要随意命名这个文件名,Localizable.strings 是 iOS 用于本地化文本的默认文件名。


文件创建完成后,单击文件,打开Xcode右边栏  添加语言支持。首先添加英语语言。 注:先添加哪一种都一样




然后在中文前面打对号。



语言添加完成后,我们会看到,刚刚创建的Localizable.strings文件变为了对应的两个。


现在,你已经创建了 Localizable.strings 文件,你需要添加所有目前硬编码在应用里的文本。你将按照如下简单的特定规则来做:

"KEY" = "CONTENT";

这些 键/内容 对(key/content pairs) 就像一个 NSDictionary ,而惯例是使用默认语言的翻译作为内容的键值。

比如: 我想通过点击确定按钮,在用户名对应的textField显示  测试国际化   这个字符串。

首先手机语言对应的是中文,然后我们就要在 Localizable.strings 对应的中文文件中写如下代码: 


"username" = "测试国际化";


然后在确定按钮点击事件对应的方法中 写如下代码: 

NSString  * string = NSLocalizedString(@"username",nil);

    _userName.text = string;


NSLocalizedString 宏根据当前的语言设置使用  localizedStringForKey 方法去查找给定键值的字符串。

然后对应的Localizable.strings 对应的英文文件中写如下代码: 

"username" ="test internation";

这时当更改手机的语言时,这个字符串就会查找对应的字符串。

这时我们就可以在这里面修改对应的Label的文本,然后指定字符串就可以。

这个项目因为我们使用了 storyboard 所以我们可以直接在storyboard里面修改label的文本更加方便。

这时我们会看到Main.storyboard里面多了两个对应的文件。因为本来就是用中文进行的创建,所以我们只需要在英文对应的文档里面修改对应的内容就OK了。




最后点击确定按钮后,看到对应的模拟器界面如图:




如有问题,请多多指教!








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值