This started out interesting - I find these kinds of l10n problems quite fascinating. But the last part of the article kind of baffles me. It's presented as a hard engineering problem and they solve it with a nasty hack. Why not just cache the various ways of rendering a name, based on different cultural customs?