NSLocale的一些方法
来源:互联网 发布:淘宝订单申请售后时间 编辑:程序博客网 时间:2024/06/05 14:55
本地化封装了关于语言,文化以及技术约定和规范的信息。用于提供于用户所处地域相关的定制化信息和首选项信息的设置。通过获取用户的本地化信息设置,我们可以为用户提供更加友好人性化的界面设置,包括更改应用程序的界面的语言,货币类型,数字,日期格式的格式化,提供正确的地理位置显示等等。IOS内置为应用程序的开发提供了很好的本地化机制,良好的本地化意味着应用程序可以为更多的用户提供服务。其中NSLocale类的的主要作用便是用来封装本地化相关的各种信息,下面简单列举下NSLocale的一些方法,但NSLocale更多是使用在对数字,时间日期本地化的处理的过程。
1.创建本地化对象
1
// 根据本地标识符创建本地化对象
2
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@
"en_US"
];
3
4
// 当前用户设置的本地化对象
5
[NSLocale currentLocale]
2.获取系统本地化信息
01
// 获取系统所有本地化标识符数组列表
02
[NSLocale availableLocaleIdentifiers] ;
03
04
// 获取所有已知合法的国家代码数组列表
05
[NSLocale ISOCountryCodes] ;
06
07
// 获取所有已知合法的ISO货币代码数组列表
08
[NSLocale ISOCurrencyCodes] ;
09
10
// 获取所有已知合法的ISO语言代码数组列表
11
[NSLocale ISOLanguageCodes] ;
3.获取当前系统设置语言的标识符
1
[[NSLocale currentLocale] localeIdentifier];
2
等价于
3
[[NSLocale currentLocale] objectForKey:NSLocaleIdentifier];
4.获取本地化对象的具体内容
1
NSLocale *local = [NSLocale currentLocale];
2
3
[local objectForKey:NSLocaleIdentifier];
4
5
[local objectForKey: NSLocaleLanguageCode];
key值参见NSLocale Calendar Keys
5.获取当前语言的排版方向和字符方向
1
[NSLocale lineDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];
2
3
[NSLocale characterDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode] ;
6.获取用户的语言偏好设置列表,该列表对应于IOS中Setting>General>Language弹出的面板中的语言列表。
1
[NSLocale preferredLanguages]
第一个元素即为当前用户设置的语言
7.监听用户本地化设置的消息
1
[[NSNotificationCenter defaultCenter] addObserver:self
2
selector:
@selector
(localChangedHandler:)
3
name:NSCurrentLocaleDidChangeNotification object:nil];
8.以本地化方式获取国际化信息的显示名称
1
NSLocale *curLocal = [[NSLocale alloc]initWithLocaleIdentifier:@
"zh-Hans"
] ;
2
3
NSLog(@
"%@"
,[curLocal displayNameForKey:NSLocaleIdentifier value:@
"fr_FR"
] );
// 法文(法国)
4
5
curLocal = [[NSLocale alloc]initWithLocaleIdentifier:@
"zh-Hant"
] ;
6
7
NSLog(@
"%@"
,[curLocal displayNameForKey:NSLocaleIdentifier value:@
"fr_FR"
] );
//法文(法國)
与CFLocale自由转换.可以通过注册 NSCurrentLocaleDidChangeNotification 通知来获得区域位置改变消息生成
- – initWithLocaleIdentifier:
- + systemLocale// 操作系统的,最初始的区域?
- + currentLocale// 当前用户设定区域,肯能是缓存的
- + autoupdatingCurrentLocale// 当前用户的系统区域设置,实时更新的
信息
- – displayNameForKey:value:
/*
某种locale中对指定区域中指定属性的显示值。并不是所有的属性都有显示值。
举例:
NSLocale *frLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"] autorelease];
NSString *displayNameString = [frLocale displayNameForKey:NSLocaleIdentifier value:@"fr_FR"];
NSLog(@"displayNameString fr_FR: %@", displayNameString);
displayNameString = [frLocale displayNameForKey:NSLocaleIdentifier value:@"en_US"];
NSLog(@"displayNameString en_US: %@", displayNameString);
输出
displayNameString fr_FR: français (France)
displayNameString en_US: anglais (États-Unis)
另一种
NSLocale *gbLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"] autorelease];
displayNameString = [gbLocale displayNameForKey:NSLocaleIdentifier value:@"fr_FR"];
NSLog(@"displayNameString fr_FR: %@", displayNameString);
displayNameString = [gbLocale displayNameForKey:NSLocaleIdentifier value:@"en_US"];
NSLog(@"displayNameString en_US: %@", displayNameString);
返回
displayNameString fr_FR: French (France)
displayNameString en_US: English (United States)
*/
- – localeIdentifier// 返回locale的标识
- – objectForKey:
系统信息
- + availableLocaleIdentifiers// 返回NSString的NSArray,设备支持的区域
- + ISOCountryCodes// 所有的ISO定义的国家地区编码
- + ISOCurrencyCodes// 所有的ISO定义的货币编码
- + ISOLanguageCodes// 所有ISO定义的语言编码
- + commonISOCurrencyCodes// 通用的货币编码
与标识转换
- + canonicalLocaleIdentifierFromString:// 从给定的local标识中返回标准的标识
- + componentsFromLocaleIdentifier:
/*
从字符串中解析出一个local的组成信息.
参数
string
一个local ID 包含 language, script, country, variant, and keyword/value pairs,比如,"en_US@calendar=japanese".
返回一个解析得到的字典,上面的可以解析出: NSLocaleLanguageCode=en, NSLocaleCountryCode=US, andNSLocaleCalendar=NSJapaneseCalendar.
*/
- + localeIdentifierFromComponents:
/*
与上面的函数对应。
比如字典{NSLocaleLanguageCode="en", NSLocaleCountryCode="US", NSLocaleCalendar=NSJapaneseCalendar}解析成"en_US@calendar=japanese".
*/
- + canonicalLanguageIdentifierFromString:// 给定标识返回标准的语言支持标识
- + localeIdentifierFromWindowsLocaleCode:// 从Windows的地区码得到locale标识
- + windowsLocaleCodeFromLocaleIdentifier:// 从locale标识得到Windows的地区码
首选语言
- + preferredLanguages// 用户可选的语言集,IETF BCP 47中定义
文字方向
- + characterDirectionForLanguage:// 返回指定语言的字符排列方向
- + lineDirectionForLanguage:// 指定语言的行排列方向
一些变量
NSLocaleLanguageDirection
These constants describe the text direction for a language. Used by the methodslineDirectionForLanguage: and characterDirectionForLanguage:.
enum {
NSLocaleLanguageDirectionUnknown = kCFLocaleLanguageDirectionUnknown,// 未知
NSLocaleLanguageDirectionLeftToRight = kCFLocaleLanguageDirectionLeftToRight,
NSLocaleLanguageDirectionRightToLeft = kCFLocaleLanguageDirectionRightToLeft,
NSLocaleLanguageDirectionTopToBottom = kCFLocaleLanguageDirectionTopToBottom,
NSLocaleLanguageDirectionBottomToTop = kCFLocaleLanguageDirectionBottomToTop
};
typedef NSUInteger NSLocaleLanguageDirection;
NSLocale Component Keys
NSLocale 的组成key
NSString * const NSLocaleIdentifier;// 标识
NSString * const NSLocaleLanguageCode;// 语言码zh
NSString * const NSLocaleCountryCode;// 区域码
NSString * const NSLocaleScriptCode;// The key for the locale script code.
NSString * const NSLocaleVariantCode;// The key for the locale variant code.
NSString * const NSLocaleExemplarCharacterSet;// 元字符集 NSCharacterSet
NSString * const NSLocaleCalendar;// 当地日历 NSCalendar
NSString * const NSLocaleCollationIdentifier;// The key for the collation associated with the locale.
NSString * const NSLocaleUsesMetricSystem;// 是否使用公制 NSNumber
NSString * const NSLocaleMeasurementSystem;// 当地度量单位
NSString * const NSLocaleDecimalSeparator;// 小数点符号
NSString * const NSLocaleGroupingSeparator;// 分组符号
NSString * const NSLocaleCurrencySymbol;// 货币符号
NSString * const NSLocaleCurrencyCode;// 货币代码
NSString * const NSLocaleCollatorIdentifier;// 具体语言码??zh-Hans
NSString * const NSLocaleQuotationBeginDelimiterKey;// 引号开始符号
NSString * const NSLocaleQuotationEndDelimiterKey;// 引号结束符号
NSString * const NSLocaleAlternateQuotationBeginDelimiterKey;// 单引号开始符号
NSString * const NSLocaleAlternateQuotationEndDelimiterKey;// 单引号结束符号
NSLocale Calendar Keys
NSCalendar 包含的.
NSString * const NSGregorianCalendar;// 公历标识
NSString * const NSBuddhistCalendar;// 佛历标识
NSString * const NSChineseCalendar;// 农历标识(不支持)
NSString * const NSHebrewCalendar;// 希伯来历
NSString * const NSIslamicCalendar;// 回历
NSString * const NSIslamicCivilCalendar;
NSString * const NSJapaneseCalendar;// 日本历
NSString * const NSRepublicOfChinaCalendar;// **历法(不能用来格式,有些函数不正确?)
NSString * const NSPersianCalendar;// 波斯历法
NSString * const NSIndianCalendar;// 印度历法
NSString * const NSISO8601Calendar;// ISO8601历法,标准还没制定?
上面的可用来创建NSCalendar或者由NSCalendar的标识函数得到.
通知
NSCurrentLocaleDidChangeNotification
用户的区域设置改变事件.
- NSLocale的一些方法
- NSLocale的一些方法
- NSLocale的一些方法
- NSLocale的一些方法
- ios开发NSLocale的一些方法
- ios开发NSLocale的一些方法
- iOS NSLocale相关方法
- NSlocale的使用
- NSLocale
- NSLocale
- NSLocale
- NSLocale的重要性和用法简介
- NSLocale的重要性和用法简介
- NSLocale中常用的语言代码对照表
- iOS开发之NSDateFormatter的NSLocale使用en_US_POSIX还是en_US
- NSLocale Class
- NSLocale用法
- 一些常用的方法
- JAVA编程思想第四版-多线程的练习答案之练习18
- 数据结构之链表
- C++ 前景
- JAVA编程思想第四版-多线程的练习答案之练习19
- hdu 2458 Kindergarten 匹配
- NSLocale的一些方法
- Emacs for Linux安装指南
- 工作环境迁移:Ubuntu 12.04 使用笔记(四)
- 【机器学习1】线性回归,贝叶斯
- MVC学习笔记五:HTML辅助方法【上】
- JAVA编程思想第四版-多线程的练习答案之练习20
- Bert Ertman专访:将Spring及遗留应用迁移到Java EE 6平台
- android onTouchEvent和setOnTouchListener中onTouch的区别
- SQL Union和SQL Union All用法