Xcode4.6 国际化设置 NSLocalizedString

  因为这两天还做国际化相关的东西,所以网上搜索了下国际化相关的教程,但是发现由于xcode升级,按照以前的那种方法是行不通的。所以自己摸索了一些时间,终于搞出来了,特地写在这里,标记一下。


  首先看一下 NSLocalizedString  是什么。

#define NSLocalizedString(key, comment) \

   [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

这是一个宏,本质上是调用了函数 localizedStringForKey:这样,这个宏做的其实就是在当前bundle中查找资源文件名Localizable.strings中键值key所指向的字符串.

下面开始动手实现

1.首先创建个名字为Localizable.strings的文件。





2.创建完成后选中该文件, 然后右侧的属性选择器中点击 localize按钮



点击后会出来国际化的选择框, 通常会只有一个English选项, 然后点击Localize按钮。



3.

点击工程根目录,并选择PROJECT,然后选择Info选项卡,底部我们就看到了Localizations

然后点击+号,选择Chinese



4.这时工程目录中Locallizable.strings就有了两个子文件,


然后打开Localizable.strings(English)文件,在里面添加

"button" = "btn";




记得要以分号结尾。在Localizable.strings(Chinese)文件中添加



5。 然后在代码中创建个按钮,然后设置按钮的标题。

[self.btnsetTitle:NSLocalizedString(@"button",@"this is a title") forState:UIControlStateNormal];


运行后,将会发现标题的按钮名字已经改好了

如果模拟器的语言是英文的话,那么就显示btn

   

是中文的话,就显示 "按钮"。



到这里,国际化操作就完成了。


注意:

如果创建.strings文件是自定义的名字的话,如当前我起名为 Internation.strings,那么调用的方式为:

NSLocalizedStringFromTable(@”title”,@”Internation”, nil)   NSLocalizedStringFromTable(@”name”,@”Internation”, nil)

当自定义名字后,使用NSLocalizedString的方式不起作用,这里要注意;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值