Прежде всего, форматирование дат в JRE известно некорректным поведением во многих локалях (недопустимые длинные польские, чешские и русские даты, недопустимые короткие польские даты; и это только примеры того, что я точно знаю).Поэтому я бы не стал сильно доверять этому источнику информации.
Если вы хотите реализовать собственную логику форматирования длинных дат, я бы сделал следующее:
String spanishDatePattern = "{0,number,00} {1} {2,number,####}";
String spanishLongDateMonthNameNovember = "de noviembre de";
Object[] arguments = { new Integer(date.getDate()),
spanishLongDateMonthNameNovember,
new Integer(date.getYear()) };
String formattedDate = MessageFormat.format(spanishDatePattern,
arguments);
В этом случае выпотребуется 13 сообщений на каждый язык (12 месяцев ~ имена и 1 шаблон).Думаю, не так уж и много.
Конечно, это был всего лишь пример, в действительности вам, вероятно, понадобится добавить логику для разрешения названий месяцев (с ключами, имена которых заканчиваются на номер месяца, т.е. longDateFormatMonthName.0 =январь?).