iphone App的国际化

iphone的app的国际化可以通过创建不同语言版本的Localizable.strings文件来完成。

通过以下函数来读取Localizable.strings文件时,会自动选择与手机系统语言相匹配的Localizable语言版本。这样就实现了系统语言与软件语言匹配的国际化功能。

这就是使用Localizable实现程序国际化的基本思想。

#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)]

具体做法大致如下:

1.创建Localizable.strings文件

 右键-》New File-》Resource-》String File


创建名字为Localizable.strings的文件:

2.增加不同语言版本的Localizable.strings文件

选中Localizable.strings文件,看Localizable对应的xcode最右边的窗口中的show the File Inspector窗口:


选择Localization项的+号,添加你自己想要的语言版本:


可以通过+,-号增加语言的版本,对应的Localizable.strings会自动生成:


ok,至此就已经完成创建多语言版本的Localizable的工作。

3.在Localizable文件中写入不同版本的语言


右键,Add Row,可以添加map形式的数据了。


添加数据如下:

Localizable.strings(English)添加信息:



Localizable.strings(Chinese)添加信息:


当你在程序中使用指定函数调用时,就会自动匹配系统语言,输出不同结果:

NSString*strHello = NSLocalizedString(@"hello", @"");
NSLog(strHello);
如果系统语言是英文,会输出:hello

如果系统语言是中文,会输出:你好!

国际化的过程大致如此。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值