iOS简单的本地化应用程序

以下是学习的一点笔记,仅供参考.

为什么要做国际化和本地化呢?

如果需要你的应用程序支持不同的国家地区和语言,那么首先是需要将程序国际化,支持多语言,国际化其实就是本地化的一种整理本地化资源的一种技巧.

然后需要本地化翻译应用程序读出和显示的内容,其中还包括一些内容上的本地化适配.

首先需要本地化应用程序的名字--显示在桌面的APP名称

1.找到工程文件 Info 下面的Localization选项,添加你需要适配的语言



2.然后找到程序Supporting Files文件夹下面选中后 InfoPlist.strings 在右侧Utilities 界面勾选添加的语言


3.这时候InfoPlist.strings 可以展开多个子目录,在对应语言目录中添加

CFBundleDisplayName ="xxx"; // xxx 为对应语言显示的应用程序名称.

其次需要本地化程序内使用的固定内容

1.新建一个String Files 命名为 Localizable -- 如果使用其他名字,后面关联显示使用不同的方法


2.还是选中 Localizable.string 在 Utilities 界面添加语言
3.最后在不同语言的文件中添加对应的显示内容,格式如下:

"rootViewNavTitle" = "";// rootViewNacTitle 为key值  "山"为value,是显示的内容,注意:每个key-value都要有 ; 结束

在程序中使用 

NSLocalizedString(@"rootViewNavTitle"

 @"Title used for the Navigation Controller for the root view"); // 第一个参数为我们在各个语言版本中添加的key值, 第二个参数为对这个key值的value

// 做一个备注,以供本地化人员参考,备注可以为nil

内容也可以带上占位符,以备替换 如: "rootViewNavTitle" = "山,高%d米"

4.如果你创建的,string文件是另外的名字(非Localizable.string) 在使用的时候需要换用  

NSLocalizedStringFromTable(key, tbl, comment) 来实现, 第一个参数为 key值 第二个参数是你创建的string文件的名字,第三个参数仍然是注释

最后如何本地化图片呢

我找到的有两种方法:
1.还是通过本地化字符串来 本地化 图片名称,然后读取相应的图片内容:

 如: NSString *imageName = NSLocalizedString(@"本地化的图片名称",nil); 然后将取出的本地化的图片取赋值给UI显示.

2. 还可以使用给图片添加多语言的方式. 首先选中图片,然后在 Utilities 添加Localiztion 



使用方法不变, 只是需要在对应的语言文件夹中替换图片资源即可



那么如何在程序中获得当前系统使用的语言呢?

我们可以在苹果代码示例 International Mountains 中看到实现的方式:

NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];

NSArray* languages = [defs objectForKey:@"AppleLanguages"];

NSString* preferredLang = [languages objectAtIndex:0];

NSLog(@"Current language is %@", preferredLang);

这样就可以判断当前系统使用的语言了.


另外,如果你的程序使用XIB,可以使用Auto Layout来适配多语言,具体内容可以参考官方文档

Start Developing iOS Apps Today  和 Cocoa Auto Layout Guide

目前应用程序的icon 是无法实现本地化的,但是开屏图片是可以实现多语言本地化的.

结束: 本地化暂时就接触这么多,以后学到更多,再来更新.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值