iOS_本地化设置NSLocale
来源:互联网 发布:群硕软件 编辑:程序博客网 时间:2024/06/05 15:10
本地化封装了关于语言,文化以及技术约定和规范的信息。
用于提供于用户所处地域相关的定制化信息和首选项信息的设置。通过获取用户的本地化信息设置,我们可以为用户提供更加友好人性化的界面设置,包括更改更改应用程序的界面的语言,货币类型,数字,日期格式的格式化,提供正确的地理位置显示等等。
IOS内置为应用程序的开发提供了很好的本地化机制,良好的本地化意味着应用程序可以为更多的用户提供服务。其中NSLocale类的的主要作用便是用来封装本地化相关的各种信息,下面简单列举下NSLocale的一些方法,但NSLocale更多是使用在对数字,时间日期本地化的处理的过程。
若你只开发中国区的应用,需要保证用户修改当前语言环境时应用的显示不发生变化。而像NSDateFormatter这样的类,会根据设备的设置,自动返回不同语言的数据。为了保证返回数据的语言一致,我们需要设置NSLocale。
NSLocale *locale = [[NSLocalealloc]initWithLocaleIdentifier:@"zh"];
NSDateFormatter *secondDateFormatter = [[NSDateFormatteralloc] init];
[secondDateFormattersetDateFormat:@"cccc"];
secondDateFormatter.locale = locale;
NSDate *date = [NSDatedate];
NSLog(@"%@", [secondDateFormatterstringFromDate:date]);
这是大家不常用的一个类,NSLocale类是将与国家和语言相关的信息进行简单的组合,包括货币,文学方面的信息。
货币:货币的国际名称(人民币的国际货币名称是CNY);货币符号(人民币的国际货币符号是¥)
文学:标点符号,文字的书写顺序(左右顺序),引用的起止符号等等
若做金融一类的应用可能会用到NSLocale这个类。
这个类稍微了解即可。若想要细细研究有如下步骤提供:
1.创建本地化对象
//根据本地标识符创建本地化对象
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
//当前用户设置的本地化对象
[NSLocale currentLocale];
2.获取系统本地化信息
//获取系统所有本地化标识符数组列表
[NSLocale availableLocaleIdentifiers] ;
//获取所有已知合法的国家代码数组列表
[NSLocale ISOCountryCodes] ;
//获取所有已知合法的ISO货币代码数组列表
[NSLocale ISOCurrencyCodes] ;
//获取所有已知合法的ISO语言代码数组列表
[NSLocale ISOLanguageCodes] ;
3.获取当前系统设置语言的标识符
[[NSLocale currentLocale] localeIdentifier];
等价于
[[NSLocale currentLocale] objectForKey:NSLocaleIdentifier];
4.获取本地化对象的具体内容
NSLocale *local = [NSLocale currentLocale];
[local objectForKey:NSLocaleIdentifier];
[local objectForKey: NSLocaleLanguageCode];
key值参见NSLocale Calendar Keys
5.获取当前语言的排版方向和字符方向
[NSLocale lineDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];[NSLocale characterDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode] ;
6.获取用户的语言偏好设置列表,该列表对应于IOS中Setting>General>Language弹出的面板中的语言列表。
[NSLocale preferredLanguages]
第一个元素即为当前用户设置的语言
7.监听用户本地化设置的消息
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(localChangedHandler:)name:NSCurrentLocaleDidChangeNotification object:nil];
8.以本地化方式获取国际化信息的显示名称
NSLocale *curLocal = [[NSLocale alloc]initWithLocaleIdentifier:@"zh-Hans"] ;
NSLog(@"%@",[curLocal displayNameForKey:NSLocaleIdentifier value:@"fr_FR"] );
// 法文(法国)
curLocal = [[NSLocale alloc]initWithLocaleIdentifier:@"zh-Hant"] ;
NSLog(@"%@",[curLocal displayNameForKey:NSLocaleIdentifier value:@"fr_FR"] )
//法文(法國)
- iOS_本地化设置NSLocale
- iOS NSLocale(本地化语言)
- NSDate实例以NSLocale本地化格式输出
- NSLocale
- NSLocale
- NSLocale
- iOS 封装本地化相关信息 NSLocale类介绍
- iOS_ NSUserDefaults_数据本地化的轻型装备
- 本地化设置
- ios_按钮圆角边设置
- IOS_分享本地化语言封装好的类
- iOS_跳转到系统设置
- 程序字符集设置本地化
- iOS_给uiview等设置圆角
- 控制台下设置本地化输出
- AjaxControlToolkit全球化+本地化的设置
- iOS 手动设置本地化语言
- Xcode 5 的本地化设置
- 九度OJ 1009
- stm32多功能双向5v兼容的IO口的理解
- 记录使用ubuntu的一些经历
- 专利技术交底书撰写经历
- mobi格式文件解压实践
- iOS_本地化设置NSLocale
- hdu 5139 Formula
- 寻找指定元素的指针
- getWidth和getMeasuredWidth在何时可以得到正确数值
- OC学习篇之---Foundation框架中的NSObject对象
- MINA源码分析---协议解码输出接口ProtocolDecoderOutput及其实现
- #include<vector> 的用法
- 冬日午后
- vs2010将杂乱的代码格式化