XCODE 4.5 IOS多语言设置 及NSLocalizedString和NSLocalizedStringFromTable的用法。
前 些天升级到Xcode4.5,现在正在用Xcode4.5+IOS6开发项目,当使用国际化时,遇到了一点问题,之前版本Xcode上新建 Localizable.strings后,添加语言的“+”号不见了,找了半天无果,自己研究了下,后来在Stackoverflow上找到了解决方 案,原来Apple把这个“+”号换地方了。下面来看看如何使用。
首先新建一个名为Localizable.strings的资源文件

完成后选中该文件,在属性选择器中可以看到多了个按钮:

点击这个按钮后,出现国际化语言选择框,但只有一个English的选项:

没 关系,继续,点击Localize按钮,这时只支持英语。Xcode4.5之前的版本会在属性选择器里面有个“+”号用来添加其他语言支持,现在没了,其 实是在别的地方。点击工程根目录,并选择PROJECT,然后选择INFO选项卡,底部我们就看到了Localizations:

点击“+”号选择一门语言添加上,我这里选的是Chinese,ok,完成了,再看Localizable.strings文件,就多了两个子文件,分别支持英文和汉语:

在属性选择器中也看到了English和Chinese:

这样,就完成了在Xcode4.5上国际化的设置和操作,下面来看如何使用。
首先选择Localizable.strings(English)文件,添加如下内容:
"loading" ="Loading...";
然后选择Localizable.strings(Chinese)文件,添加如下内容:
"loading" ="加载中...";
内容注意一定要以分号结尾,否则无法识别。然后是在代码中使用:
NSString *loading = NSLocalizedString(@"loading",@"");
系统会根据当前设备的语言环境来识别使用中文还是英文,到此,在Xcode4.5上国际化的操作就完成了。
如果在命名.strings文件为 Localizable.strings 时,那么你就可以用以下方式调用即可:
|
1
|
NSLocalizedString(@"title", nil) NSLocalizedString(@"name", nil) |
- 此时这两种方法的用途一样:
- NSLog(@"Local string0: %@", NSLocalizedString(@"str0", nil));
- NSLog(@"Local string1: %@", NSLocalizedString(@"str1", nil));
- NSLog(@"Local string0: %@", NSLocalizedStringFromTable(@"str0", @"Localizable", nil));
- NSLog(@"Local string1: %@", NSLocalizedStringFromTable(@"str1", @"Localizable", nil));
如果创建.strings文件是自定义的名字的话,如当前我起名为 Internation.strings,那么调用的方式为:
NSLocalizedStringFromTable(@”title”,@”Internation”, nil) NSLocalizedStringFromTable(@”name”,@”Internation”, nil)
当自定义名字后,使用NSLocalizedString的方式不起作用,这里要注意;
XCODE 4.5 IOS多语言设置 及NSLocalizedString和NSLocalizedStringFromTable的用法。的更多相关文章
- iOS多语言设置
最近公司做的项目需要向国外推广,因此app需要添加相应的语言设置,为此整理记录下多语言设置的过程.如有不对的地方,欢迎各位大神指正.下面就详细介绍下设置的过程: 1.基本设置 第一步:首先在 项目工程 ...
- ios多语言设置,操作
多语言在应用程序中一般有两种做法:一.程序中提供给用户自己选择的机会: NSArray *languages = [NSLocale preferredLanguages]; NSString *cu ...
- [iOS]C语言技术视频-16-指针变量高级用法(堆栈内存)
下载地址: 链接: http://pan.baidu.com/s/1qWqWnGo 密码: igjc
- [iOS]C语言技术视频-17-指针变量高级用法练习二(使用堆内存完成链表结构的存储)
下载地址: 链接: http://pan.baidu.com/s/1kTmwIYr 密码: j7xq
- [iOS]C语言技术视频-15-指针变量高级用法练习一(函数指针完成动态排序)
下载地址: 链接: http://pan.baidu.com/s/1o6MOzX4 密码: xzxn
- [iOS]C语言技术视频-14-指针变量高级用法(函数指针)
下载地址: 链接: http://pan.baidu.com/s/1ykyg2 密码: fg5t
- 【转】iOS多语言本地化(国际化)设置
原文网址:http://www.jianshu.com/p/2b7743ae9c90 讨论的iOS应用中的多语言设置,Ok 一般是两种情况: 1.根据当前设备语言自动切换显示 2.在应用中可进行语言设 ...
- iOS 国际化多语言设置 xcode7
iOS 国际化多语言设置 方式一: 1. 在storyboard中创建好UI,然后在 project 里面 Localizables 栏目里面,添加你需要的语言:默认是Englist; 比如这里我添 ...
- iOS应用的语言设置
首先需要明确两个名词的区别:“当前手机的系统语言”.“应用内部的语言设置” 要解决的问题的情景: 在iOS应用中,有时候会调用系统的一些UI控件,例如: 1.在UIWebView中长按会弹出系统的上下 ...
随机推荐
- Algorithms(fourth edition)——无向图
1.设计图基本操作API 2.用什么数据结构来表示图并实现API 要求:(1)要预留足够空间 (2)实例方法实现要快 三个选择: 邻接矩阵:布尔矩阵,不满足条件一,而且无法表示平行边 边的数组:不满足 ...
- 记一次Entity Framework 项目的优化过程
在博客园看了不少其他大神的经验.今天也抽空贡献点自己的经验(并不是说自己也是大神..小弟还只新手程序员去年才毕业的) 好了废话不多说,直接进入主题.(具体的好坏各位看官就随便看看吧..没有什么好坏之分 ...
- 菜鸟之路——Linux基础::计算机网络基础,Linux常用系统命令,Linux用户与组权限
最近又重新安排了一下我的计划.准备跟着老男孩的教程继续学习,感觉这一套教程讲的很全面,很详细.比我上一套机器学习好的多了. 他的第一阶段是Python基础,第二阶段是高等数学基础,主要将机器学习和深度 ...
- leetcode NO.349 两个数组的交集 (python实现)
来源 https://leetcode-cn.com/problems/intersection-of-two-arrays/ 题目描述 给定两个数组,写一个函数来计算它们的交集. 例子: 给定 nu ...
- 【bzoj4869】[Shoi2017]相逢是问候 扩展欧拉定理+并查集+树状数组
题目描述 Informatik verbindet dich und mich. 信息将你我连结. B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数.一共有m个操作,可以分为两种:0 ...
- FZU 2041 二分枚举
思路:先O(n)预处理出ri[i][j],le[i][j],分别表示第i个位置向右边移动出j个空格需要的步数,表示第i个位置向左边移动出j个空格需要的步数. 然后枚举间隙处,二分判段最大间隔. #in ...
- 面试:ios 批量上传图片
这几天面试,被问到关于GCD的用法,想了想,之前项目好像确实用的比较少,只是知道怎么用,有思路,但是却从来没有试过,回来之后,就尝试写了下: 封装图片上传的方法 /**批量上传图片*/ + (NSUR ...
- nutch2.x在eclipse+windows环境下运行遇到的一些问题的解决方案
1.问题 permission /tmp/hadoop.... 解决方法:下载hadoop源码包,修改org.apache.hadoop.fs.FileUtil.java文件中方法checkRetur ...
- redis批量删除脚本
服务器上安装了redis客户端,通过客户端利用脚本对数据批量删除,脚本内容如下: #!/bin/bash name="$1" echo $name ./redis-cli -h r ...
- 配置 L3 agent
上一节我们介绍了路由服务(Routing)的基本功能,今天教大家如何配置. Neutron 的路由服务是由 l3 agent 提供的. 除此之外,l3 agent 通过 iptables 提供 fir ...