Internacionalizar nomes de pessoas

Olá pessoal,

Preciso internacionalizar o nome de pessoas. Por exemplo:

Portugues: (‘first name’ ‘middle name’ ‘last name’)
Inglês: (‘last name’, ‘first name’ ‘middle name’)

Como eu posso fazê-lo?

Você já tem os nomes separados (o que é normalmente mais recomendável, e deveria ter sido feito no cadastro), ou precisa separá-los (com muito choro e ranger de dentes, e gente reclamando de monte, porque a separação nunca é perfeita?)
Se já tiver os nomes separados é relativamente fácil fazer o tal método que internacionaliza os nomes. Por exemplo:

Locale defaultLocale = Locale.getDefault(); // pode ser que você receba o locale como parâmetro, por exemplo, se você tiver uma aplicação Web cujo locale é setado pelo browser)
Locale brazilLocale = new Locale ("pt", "BR");
if (defaultLocale.equals (Locale.US))
    return lastName + ", " + firstName + " " + middleName;
else if (defaultLocale.equals (brazilLocale)
    return firstName + " " + middleName + " " + lastName;
else ...