本地化ABAddressBook

时间:2011-12-30 09:56:38

标签: ios localization contacts abaddressbook

我有一个基于地址簿的应用程序,我在其中获取联系人名称并将其显示在表格中,就像ABPeopleViewController一样,使用

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 个答案:

答案 0 :(得分:1)

好吧,经过一番挖掘后,我在iOS 5的新NSLinguisticTagger中找到了答案,它可以用语言和字符串做各种奇妙的事情。通过一点操作,它可以被强制告诉我字符串是什么语言,因此如何组合一个全名。我在另一个问题中发布的答案,因为它泄漏了内存,我无法解决它。这是链接:

NSLinguisticTagger Memory Leak