IOS程序国际化
1.1 新建一个Single View app模版项目,命名为Localization。

1.2 新建后,可以看到工作目录结构文件如下,单击InfoPlist.strings,查看右边的属性,在Localization栏添加语言。

1.3 添加完成后打开对应语言文件,比如English的添加
CFBundleDisplayName="China";
Chinese文件添加
CFBundleDisplayName="中国";

运行,如果此时你的模拟器是中文,你会看到你的程序名称变成了 中国:

来到设置里把语言设置成 English。此时程序名称变成了:China

这时,程序名称的国际化完成了。那里面内容呢?
2、内容国际化
2.1新建Localization.strings文件

2.2 添加语言和1.1环节一样。
2.3 添加语言内容
添加"Key"="value"; 然后使用时用NSLocalizedString(@"key", @""); 读取内容.
Localization.strings English文件添加
"key" = "english value";
Localization.strings English文件添加
"key" = "中文内容";
在ViewController.m 中添加UILabel实验一下
- (void)viewDidLoad
{
[super viewDidLoad];
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(20, 40, 250, 60);
label.text = NSLocalizedString(@"key", @"");
[self.view addSubview:label];
}
运行

设置项里切换英文

3、如何在运行的时候判断现在运行环境是哪个语言?
3.1 获得所支持的语言
NSUserDefaults *defaults = [ NSUserDefaults standardUserDefaults ];
// 取得 iPhone 支持的所有语言设置
NSArray *languages = [defaults objectForKey : @"AppleLanguages" ];
NSLog ( @"%@" , languages);
运行,打印结果:
(
en,
"zh-Hant",
"zh-Hans",
fr,
de,
ja,
nl,
it,
es,
pt,
"pt-PT",
da,
fi,
nb,
sv,
ko,
ru,
pl,
tr,
uk,
ar,
hr,
cs,
el,
he,
ro,
sk,
th,
id,
"en-GB",
ca,
hu,
vi
)
"zh-Hant" 繁体中文
"zh-Hans", 简体中文
这段代码获取当前系统支持的语言。
3.2 获取当前使用语言
NSArray *languages = [NSLocale preferredLanguages];
NSString *currentLanguage = [languages objectAtIndex:0];
NSLog ( @"%@" , currentLanguage);
打印结果:
en
用获取到的当前语言,和支持的语言做字符串对比,就可以知道是那种语言了。
if([currentLanguage isEqualToString:@"en"])
{
NSLog(@"current Language:en");
}
IOS程序国际化的更多相关文章
- (转) iOS程序国际化
IOS程序国际化 本文转自http://www.cnblogs.com/zhidao-chen/archive/2012/07/08/2581977.html 1.1 新建一个Single View ...
- IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard 、xib 混用。完美解决方案)
上篇 IOS APP 国际化(实现不跟随系统语言,不用重启应用,代码切换stroyboard ,xib ,图片,其他资源 介绍了纯代码刷新 实现程序内切换语言. 但效率底下,也存在一些问题.暂放弃. ...
- iOS之应用程序国际化
一.程序国际化 准备工作: 1.首先我们要先创建一个工程,我们给他命名Internationalization-Demo,然后添加语言. 从代码中分离文本: 目前,应用展示的所有文本都是以硬编码字符串 ...
- ios应用程序国际化
1.程序名称国际化: 在Xcode中新建项目后,能够在project的info选项卡中找到Localization的项目,能够加入应用程序须要支持的国际语言. 回到项目中能够发如今InfoPlist. ...
- IOS软件国际化(本地化Localizable)
IOS软件国际化(本地化Localizable) iPhone是支持语言最多的手机,它支持各国语言及中国少数名族如蒙古等语言,这也是好多少数名族都用苹果的原因.在这一点上我们自主品牌还是要多学习学习. ...
- iOS APP 国际化
pp Store 中很多流行的应用程序有多种语言版本.虽然这些应用程序可能因为很多因素而变得流行,但是具有多种本地化版本,肯定是其中一个因素.越多的人可以理解并使用您的应用程序,潜在的买家也就越多. ...
- 【转】漫谈iOS程序的证书和签名机制
转自:漫谈iOS程序的证书和签名机制 接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕 ...
- 图解ios程序生命周期
图解ios程序生命周期 应用程序启动后状态有Active.Inactive.Background.Suspended.Not running这5种状态,几种状态的转换见下图: 在AppDelegate ...
- 漫谈iOS程序的证书和签名机制
接触iOS开发半年,曾经也被这个主题坑的摸不着头脑,也在淘宝上买过企业证书签名这些服务,有大神都做了一个全自动的发布打包(不过此大神现在不卖企业证书了),甚是羡慕和崇拜.于是,花了一点时间去研究了一下 ...
随机推荐
- Android反编译调试源码
Android反编译调试源码 1. 反编译得到源码 直接在windows 命令行下输入命令java -jar apktool_2.0.0.jar d -d 小米运动_1.4.641_1058.apk ...
- [置顶]
docker--基础镜像和dockerfile
制作基础镜像 注意:需要在CentOS6下操作 准备工作 yum -y install febootstrap 下载ISO镜像文件到服务器 mkdir /mnt/centos6/ mount -o l ...
- sqlserver中常用的四个选项(NOCOUNT/ANSI_NULLS/QUOTED_IDENTIFIER/ XACT_ABORT)
1 NOCOUNT选项 当 SET NOCOUNT 为 ON 时,不返回计数.当 SET NOCOUNT 为 OFF 时,返回计数. eg: if object_id(N'table_test',N' ...
- Linux zip
压缩文件: zip -r res.zip [src/] [abc.txt] 解压文件: unzip res.zip -d dir_path
- 转:Hash, MAC,HMAC说明
from: http://www.cnblogs.com/songhan/archive/2012/07/29/2613898.html Hash, MAC,HMAC Hash-MD5, SHA-1, ...
- oracle 12C SYS,SYSTEM用户的密码都忘记或是丢失
密码 conn / as sysdba alter user system identified by Abcd1234; manual script first -->manual_scrip ...
- Nodejs 模拟telnet
代码下载:https://files.cnblogs.com/files/xiandedanteng/nodejsTelnet.rar 效果: server.js代码: var net=require ...
- demo 微信毛玻璃效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- notepad++ 在每一行最后加上逗号
1.全选缩进对齐 2.替换功能,入下全部替换 3.在入下替换 4.结果 完成!
- Hadoop最大值的算法中出现的错误(strToDouble)
错误信息: Exception in thread "main" java.lang.NumberFormatException: For input string: " ...