本地化封裝了關于語言,文化以及技術約定和規範的資訊。用于提供于使用者所處地域相關的定制化資訊和首選項資訊的設定。通過擷取使用者的本地化資訊設定,我們可以為使用者提供更加友好人性化的界面設定,包括更改應用程式的界面的語言,貨币類型,數字,日期格式的格式化,提供正确的地理位置顯示等等。IOS内置為應用程式的開發提供了很好的本地化機制,良好的本地化意味着應用程式可以為更多的使用者提供服務。其中NSLocale類的的主要作用便是用來封裝本地化相關的各種資訊,下面簡單列舉下NSLocale的一些方法,但NSLocale更多是使用在對數字,時間日期本地化的處理的過程。
1.建立本地化對象
2 | NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@ "en_US" ]; |
5 | [NSLocale currentLocale] |
2.擷取系統本地化資訊
02 | [NSLocale availableLocaleIdentifiers] ; |
05 | [NSLocale ISOCountryCodes] ; |
07 | // 擷取所有已知合法的ISO貨币代碼數組清單 |
08 | [NSLocale ISOCurrencyCodes] ; |
10 | // 擷取所有已知合法的ISO語言代碼數組清單 |
11 | [NSLocale ISOLanguageCodes] ; |
3.擷取目前系統設定語言的辨別符
1 | [[NSLocale currentLocale] localeIdentifier]; |
3 | [[NSLocale currentLocale] objectForKey:NSLocaleIdentifier]; |
4.擷取本地化對象的具體内容
1 | NSLocale *local = [NSLocale currentLocale]; |
3 | [local objectForKey:NSLocaleIdentifier]; |
5 | [local objectForKey: NSLocaleLanguageCode]; |
key值參見NSLocale Calendar Keys
5.擷取目前語言的排版方向和字元方向
1 | [NSLocale lineDirectionForLanguage:[[NSLocale currentLocale] objectForKey:NSLocaleLanguageCode]; |
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" ] ; |
3 | NSLog(@ "%@" ,[curLocal displayNameForKey:NSLocaleIdentifier value:@ "fr_FR" ] ); // 法文(法國) |
5 | curLocal = [[NSLocale alloc]initWithLocaleIdentifier:@ "zh-Hant" ] ; |
7 | NSLog(@ "%@" ,[curLocal displayNameForKey:NSLocaleIdentifier value:@ "fr_FR" ] ); //法文(法國) |