ios开发NSLocale的一些方法
来源:互联网 发布:阿里云架设ftp 编辑:程序博客网 时间:2024/05/18 19:22
国际化处理时候,也要考虑NSLocale问题。
本地化封装了关于语言,文化以及技术约定和规范的信息。用于提供于用户所处地域相关的定制化信息和首选项信息的设置。通过获取用户的本地化信息设置,我们可以为用户提供更加友好人性化的界面设置,包括更改应用程序的界面的语言,货币类型,数字,日期格式的格式化,提供正确的地理位置显示等等。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"
] );
//法文(法國)
NSLocale
若你只开发中国区的应用,需要保证用户修改当前语言环境时应用的显示不发生变化。而像NSDateFormatter这样的类,会根据设备的设置,自动返回不同语言的数据。为了保证返回数据的语言一致,我们需要设置NSLocale。
1
<!-- lang: cpp -->
2
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@
"zh"
];
3
NSDateFormatter *secondDateFormatter = [[NSDateFormatter alloc] init];
4
[secondDateFormatter setDateFormat:@
"cccc"
];
5
secondDateFormatter.locale = locale;
6
NSDate *date = [NSDate date];
7
NSLog(@
"%@"
, [secondDateFormatter stringFromDate:date]);
当然,像上面的需求很罕见。
作为大家都不常用的一个类,NSLocale类是将与国家和语言相关的信息进行简单的组合,包括货币,文学方面的信息。
货币:货币的国际名称(人民币的国际货币名称是CNY);货币符号(人民币的国际货币符号是¥)
文学:标点符号,文字的书写顺序(左右顺序),引用的起止符号等等
若做金融一类的应用可能会用到NSLocale这个类。
这个类稍微了解即可。
- ios开发NSLocale的一些方法
- ios开发NSLocale的一些方法
- NSLocale的一些方法
- NSLocale的一些方法
- NSLocale的一些方法
- NSLocale的一些方法
- iOS NSLocale相关方法
- iOS开发之NSDateFormatter的NSLocale使用en_US_POSIX还是en_US
- iOS开发-隐藏Tabbar的一些方法
- iOS开发一些实用的小方法
- iOS开发关于后台的一些方法
- iOS开发中一些常用的方法
- iOS开发:关于layout的一些方法
- iOS 开发 一些常用的公共方法
- iOS开发的一些小方法
- iOS开发 GCD一些常用的方法
- iOS 之NSLocale Class
- iOS学习之NSLocale
- Android的消息处理机制(图+源码分析)——Looper,Handler,Message
- 女子违停不服处罚撞交警 事后求原谅称一时之气
- 中国电力建设集团原副总经理巨额贿赂被双开
- 使用Loadrunner 调用Webservice接口测试优化总结
- 基于注解的SPRINGMVC+FREEMARKER环境搭建
- ios开发NSLocale的一些方法
- ruby中的异常与变量的初始化
- 普京:尊重乌克兰民众选择将同乌新领导人合作
- jcaptcha验证码
- 常用NoSQL比较
- Qt应用程序的发布,exe文件图标设置
- C#调用存储过程带输出参数或返回值
- PAT-B 1020. 月饼(同PAT 1070. Mooncake)
- Ajax中responseText返回的是一个页面的问题