2011-12-30 8 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) 

Appleの内蔵連絡先ではのの姓で太字で表記していますが、それは国際的なユーザーにとっては粗末なことです。とにかく言語を検出し、それに応じて名前を表示することはありますか?

答えて

1

ちょっと掘り下げた後、私はiOS 5の新しいNSLinguisticTaggerで答えを見つけました。これは、言語や文字列であらゆる種類の奇妙なことを行うことができます。ちょっとした操作で、文字列がどんな言語になっているか、それでフルネームをまとめる方法を教えてくれるように強制することができます。それは私がそれを解決することはできません。ここにリンクがあります:

NSLinguisticTagger Memory Leak