Как я мог разобрать его, если он был на другом языке, то есть на испанском "Lunes 31 Enero"?
Обычно я бы сказал, что Chronic gem - лучший выбор для гибкого анализа даты и времени. Бросание на разных языках делает эту проблему другой, потому что библиотеки ориентированы на английский.
Это означает возврат к Date.parse
. Заскочив в IRB у меня был сюрприз:
ruby-1.9.2-p136 :001 > require 'date'
=> true
ruby-1.9.2-p136 :002 > puts Date.parse('Lunes 31 Enero')
2011-01-31
Итак, Date.parse уже испанского языка.
Если это не так, возможно, можно переопределить константы даты и месяца, чтобы помочь ему:
require 'date'
Date::MONTHNAMES = [nil] + %w( Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre )
Date::DAYNAMES = %w( Lunes Martes Miércoles Jueves Viernes Sábado Domingo )
Date::ABBR_MONTHNAMES = [nil] + %w( Ene Feb Mar Abr May Jun Jul Ago Sep Oct Nov Dic )
Date::ABBR_DAYNAMES = %w( Lun Mar Mié Jue Vie Sáb Dom )
Я не проверял это, поскольку он уже работает, не вмешиваясь ни в какие вещи, но для других, не поддерживаемых языков, может быть целесообразным экспериментом изменить значения и посмотреть, что происходит.