localization de ABAddressBook

Tengo una aplicación basada en la libreta de direcciones donde tomo el nombre de los contactos y los muestro en una tabla, al igual que ABPeopleViewController, usando

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

Eso funciona bien cuando trato con nombres en inglés; salen así, ya que quiero que:

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

El último, en japonés, idealmente debería ser Tanaka Taro.

Sin embargo, cuando cambié el idioma a chino y japonés, esto es lo que obtengo:

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

Si bien lo que quiero para todas las configuraciones de idioma es:

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

Los contactos incorporados de Apple abordan este asunto con el apellido en negrita, pero eso parece crudo para un usuario internacional. ¿Hay alguna forma de detectar el idioma y mostrar el nombre en consecuencia?

Bien, después de un poco de excavación encontré la respuesta en el nuevo NSLinguisticTagger de iOS 5, que puede hacer todo tipo de cosas maravillosas con lenguaje y cadenas. Con un poco de manipulación se puede forzar a decirme en qué idioma se encuentra una cadena y, por lo tanto, cómo armar un nombre completo. La respuesta que publiqué en otra pregunta, ya que está perdiendo memory y no puedo resolverlo. Aquí está el enlace:

NSLinguisticTagger Memory Fuga