本地化封裝了關於語言,文化以及技術約定和規範的信息。用於提供於用戶所處地域相關的定製化信息和首選項信息的設置。通過獲取用戶的本地化信息設置,我們可以爲用戶提供更加友好人性化的界面設置,包括更改應用程序的界面的語言,貨幣類型,數字,日期格式的格式化,提供正確的地理位置顯示等等。IOS內置爲應用程序的開發提供了很好的本地化機制,良好的本地化意味着應用程序可以爲更多的用戶提供服務。其中NSLocale類的的主要作用便是用來封裝本地化相關的各種信息,下面簡單列舉下NSLocale的一些方法,但NSLocale更多是使用在對數字,時間日期本地化的處理的過程。
1.創建本地化對象
1
2
3
4
5
|
//
根據本地標識符創建本地化對象 NSLocale
*usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@ "en_US" ]; //
當前用戶設置的本地化對象 [NSLocale
currentLocale] |
2.獲取系統本地化信息
1
2
3
4
5
6
7
8
9
10
11
|
//
獲取系統所有本地化標識符數組列表 [NSLocale
availableLocaleIdentifiers] ; //
獲取所有已知合法的國家代碼數組列表 [NSLocale
ISOCountryCodes] ; //
獲取所有已知合法的ISO貨幣代碼數組列表 [NSLocale
ISOCurrencyCodes] ; //
獲取所有已知合法的ISO語言代碼數組列表 [NSLocale
ISOLanguageCodes] ; |
3.獲取當前系統設置語言的標識符
1
2
3
|
[[NSLocale
currentLocale] localeIdentifier]; 等價於 [[NSLocale
currentLocale] objectForKey:NSLocaleIdentifier]; |
4.獲取本地化對象的具體內容
1
2
3
4
5
|
NSLocale
*local = [NSLocale currentLocale]; [local
objectForKey:NSLocaleIdentifier]; [local
objectForKey: NSLocaleLanguageCode]; |
key值參見NSLocale Calendar Keys
5.獲取當前語言的排版方向和字符方向
1
2
3
|
[NSLocale
lineDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]; [NSLocale
characterDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode] ; |
6.獲取用戶的語言偏好設置列表,該列表對應於IOS中Setting>General>Language彈出的面板中的語言列表。
1
|
[NSLocale
preferredLanguages] |
第一個元素即爲當前用戶設置的語言
7.監聽用戶本地化設置的消息
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" ]
); //法文(法國) |