Traduções I18n em validação

Recentemente, tive que editar algum código em que a mensagem de validação de e-mail estava codificada e usava uma redação diferente de outros lugares no site, onde I18n é usado. Acontece que era tão simples quanto eu esperava.

class EmailValidator < ActiveModel::EachValidator
def validate_each(object, attribute, value)
unless valid?(value)
# From this:
# object.errors[attribute] << (options[:message] || "is an incorrect email")
# to this:
object
.errors.add(attribute, (options[:message] || :invalid))
end
end

def valid?(str)
EmailValidator.valid?(str)
end

def self.valid? str
return unless str.present?
!!str.match(/^([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})$/i)
end
end