rails.se
Översätta Valideringsmeddelanden

Skapa en fil i mappen lib med namnet overrides.rb och stoppa in följande:


ActiveRecord::Errors.class_eval do
  default_error_messages.update({
    :inclusion => " finns inte med i listan",
    :exclusion => " är reserverat",
    :invalid => " är ogiltigt",
    :confirmation => " matchar inte konfirmationen",
    :accepted  => " måste godtas",
    :empty => " får inte vara tomt",
    :blank => " får inte vara blankt",
    :too_long => " är för lång (max är %d tecken)",
    :too_short => " är för kort(min är %d tecken)",
    :wrong_length => " har fel längd (borde vara %d tecken lång)",
    :taken => " är redan tagen",
    :not_a_number => " är inte ett nummer",
  })
end

Öppna därefter
config/environment.rb och lägg till detta längst ner:


require 'overrides'

Utöver det så kommer det nu stå, ifall dina databaskolumner är på engelska, “<Columnnamn> får inte vara blankt” och för det så anser jag (ba) att pluginen error_messages_for är superbt, då man kan översätta “headern” samt “sub headern” på ett felmeddelandefält.

Svenska attributnamn

Vill du ha attributnamnen på svenska så är detta en rätt smidig lösning. Lägg till detta i din modell:


  def self.human_attribute_name(attribute_key_name)
    humanized_attributes = {
      :name => "Namnet",
      :email => "Email-adressen",
      :firstname => "Förnamnet",
      :lastname => "Efternamnet" 
    }
    humanized_attributes[attribute_key_name.to_sym] || attribute_key_name.humanize
  end