2011-12-30 42 views
3

我有一個基於本地址應用,在那裏我搶聯繫人的名字,並在表格中顯示出來,就像ABPeopleViewController,使用本地化ABAddressBook

NSString *name = (NSString *)ABRecordCopyCompositeName([contacts objectAtIndex:indexPath.section]); 
aCell.textLabel.text = name; 
[name release]; 

這時候,我負責的英文名工作正常;他們出來這樣,我想他們:

John Smith (good) 
Jane Doe (good) 
Taro Tanaka (Actually 太郎田中, and meh) 

最後一個,在日本,應該是理想的田中太郎。

當我改變了語言,以中國和日本相反,但是,這是我得到:

Smith John (bad) 
Doe Jane  (bad) 
Tanaka Taro (田中太郎, good) 

而我想對所有的語言設置爲:

John Smith 
Jane Doe 
Tanaka Taro (田中太郎, that is) 

蘋果公司的內置在聯繫人通過大膽地處理姓氏來處理這個問題,但這對於國際用戶來說似乎很粗糙。有沒有檢測語言並相應顯示名稱?

回答

1

好吧,經過一番挖掘,我找到了iOS 5新的NSLinguisticTagger的答案,它可以用語言和字符串做各種奇妙的事情。通過一些操作,可以強制告訴我一個字符串是什麼語言,因此如何組合一個全名。我在另一個問題中發佈的答案,因爲它正在泄漏內存,我無法解決它。以下是鏈接:

NSLinguisticTagger Memory Leak