NSlocale的使用

本地化封裝了關於語言,文化以及技術約定和規範的信息。用於提供於用戶所處地域相關的定製化信息和首選項信息的設置。經過獲取用戶的本地化信息設置,咱們能夠爲用戶提供更加友好人性化的界面設置,包括更改應用程序的界面的語言,貨幣類型,數字,日期格式的格式化,提供正確的地理位置顯示等等。IOS內置爲應用程序的開發提供了很好的本地化機制,良好的本地化意味着應用程序能夠爲更多的用戶提供服務。其中NSLocale類的的主要做用即是用來封裝本地化相關的各類信息,下面簡單列舉下NSLocale的一些方法,但NSLocale更可能是使用在對數字,時間日期本地化的處理的過程。java

1.建立本地化對象數組

?
1
2
3
4
5
// 根據本地標識符建立本地化對象
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@ "en_US" ];
 
// 當前用戶設置的本地化對象
[NSLocale currentLocale]

2.獲取系統本地化信息spa

?
1
2
3
4
5
6
7
8
9
10
11
// 獲取系統全部本地化標識符數組列表
[NSLocale availableLocaleIdentifiers] ;
 
// 獲取全部已知合法的國家代碼數組列表
[NSLocale ISOCountryCodes] ;
 
// 獲取全部已知合法的ISO貨幣代碼數組列表
[NSLocale ISOCurrencyCodes] ;
 
// 獲取全部已知合法的ISO語言代碼數組列表
[NSLocale ISOLanguageCodes] ;

3.獲取當前系統設置語言的標識符.net

?
1
2
3
[[NSLocale currentLocale] localeIdentifier];
等價於
[[NSLocale currentLocale] objectForKey:NSLocaleIdentifier];

4.獲取本地化對象的具體內容code

?
1
2
3
4
5
NSLocale *local = [NSLocale currentLocale];
 
[local objectForKey:NSLocaleIdentifier];
 
[local objectForKey: NSLocaleLanguageCode];

key值參見NSLocale Calendar Keysserver

5.獲取當前語言的排版方向和字符方向對象

?
1
2
3
[NSLocale lineDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode];
 
[NSLocale characterDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode] ;

6.獲取用戶的語言偏好設置列表,該列表對應於IOS中Setting>General>Language彈出的面板中的語言列表。blog

?
1
[NSLocale preferredLanguages]

第一個元素即爲當前用戶設置的語言圖片

在此輸入圖片描述

7.監聽用戶本地化設置的消息ci

?
1
2
3
[[NSNotificationCenter defaultCenter] addObserver:self
                                          selector: @selector (localChangedHandler:)
                                              name:NSCurrentLocaleDidChangeNotification object:nil];

8.以本地化方式獲取國際化信息的顯示名稱

?
1
2
3
4
5
6
7
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" ] ); //法文(法國)
相關文章
相關標籤/搜索