iOS 国际化
来源:互联网 发布:置信度算法 编辑:程序博客网 时间:2024/05/17 03:45
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"); }
本文来自网络:http://www.cnblogs.com/stoic/archive/2012/07/08/2581298.html
»下一篇:C++中抽象类和接口的区别
· 2014中国软件开发者调查(三):移动应用、游戏开发技术应用特点
· 11款最好的JavaScript源代码编辑器
· Linux Mint 17 KDE发布
· 中国申请的石墨烯专利数量最多
· 华数证实广电封杀电视盒子视频App
» 更多新闻...
· 前端架构那些事儿
· 如何系统性地保障软件的性能
· 程序员的样子(二)
· 程序员必须知道的10大基础实用算法及其讲解
公告
园龄:1年11个月
粉丝:7
关注:5
搜索
常用链接
- 我的随笔
- 我的评论
- 我的参与
- 最新评论
- 我的标签
随笔分类
- c++(4)
- cocoa(16)
- cocos2d-x学习(8)
- iOS开发(72)
- windows(2)
- XMPPFrameWork & ejabberd (8)
- 常用算法(1)
- 代码管理(1)
- 设计模式
- 生活随感(1)
- 数据库(1)
随笔档案
- 2014年3月 (7)
- 2013年11月 (2)
- 2013年10月 (3)
- 2013年8月 (6)
- 2013年7月 (1)
- 2013年5月 (27)
- 2013年4月 (21)
- 2013年3月 (17)
- 2012年9月 (1)
- 2012年8月 (3)
- 2012年7月 (18)
- 2012年6月 (1)
最新评论
- 1. Re:windows多线程同步
- 通俗易懂
- 2. Re:Mac 下安装ejabberd (XMPP服务器端)
- 我adium一直更不上去,请问你怎么设置的。
- 3. Re:xmppframework for iOS client(五) 添加AutoPing
- @althrun
知道的 - 4. Re:xmppframework for iOS client(五) 添加AutoPing
- 楼主阿,打印行数和函数自身的名称可以这样写:NSLog("%d: %s",__LINE__, __FUNCTION__)
阅读排行榜
- 1. IOS程序国际化(4543)
- 2. windows多线程同步(2508)
- 3. iOS 社会化分享 第三方开发包ShareSDK使用(2480)
- 4. iOS 获取GUID(2405)
- 5. xmppframework for iOS client(四) 注册新帐号(1381)
评论排行榜
- 1. xmppframework for iOS client(五) 添加AutoPing(2)
- 2. IOS程序国际化(1)
- 3. windows多线程同步(1)
- 4. iOS 社会化分享 第三方开发包ShareSDK使用(1)
- 5. mac终端常用命令(1)
推荐排行榜
- 1. iOS 社会化分享 第三方开发包ShareSDK使用(1)
- iOS国际化
- ios国际化
- iOS 国际化
- IOS国际化
- iOS 国际化
- iOS 国际化
- IOS国际化
- ios国际化
- iOS国际化
- IOS国际化
- IOS国际化
- IOS国际化
- iOS国际化
- IOS国际化
- iOS国际化
- iOS 国际化
- iOS 国际化
- IOS国际化
- PostgreSQL的执行计划分析
- 程序员的最大挑战
- 图解WinCE6.0下的内核驱动和用户驱动
- Linux时间 新纪元 epoch time
- 关于程序员的59条搞笑但却真实无比的编程语录
- iOS 国际化
- Error creating bean with name 'o.s.s.web.access.intercept.FilterSecurityInterceptor'
- QT信号和槽以结构体为参数传递复杂数据
- 思月の友情链接
- sinat_16846807的专栏
- sqlserver存储过程
- vs中添加lib的三种方法
- JD 1027:欧拉回路
- eclipse创建maven项目有个红叉
我添加语言,然后弹出一个框,要有什么referect file ,但是我的是空的,于是添加没有效果,是什么原因