天天看點

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]

第一個元素即為目前使用者設定的語言

NSLocale

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"

] );

//法文(法國)

繼續閱讀