本地化ABAddressBook

3

我有一个基于通讯录的应用程序,在其中获取联系人的姓名并将其显示在表格中,就像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)

苹果内置的联系人功能通过加粗姓氏来处理这个问题,但对于国际用户来说似乎过于简单粗暴。是否有一种方式可以检测语言并相应地显示姓名呢?

1个回答

1

好的,在经过一番搜索后,我在iOS 5的新NSLinguisticTagger中找到了答案,它可以对语言和字符串进行各种奇妙的操作。通过一些操作,它可以告诉我一个字符串所使用的语言,从而确定如何组合全名。我在另一个问题中发布了答案,因为它会泄漏内存,我无法解决它。这是链接:

NSLinguisticTagger Memory Leak


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接