Commit ee2d7246f0bb9ae8e96237bcd2d8e3d4b1018f0e
1 parent
5f0ea83e
Exists in
master
and in
8 other branches
Fix translation of custom AR validation messages
Showing
17 changed files
with
26 additions
and
20 deletions
Show diff stats
app/models/category.rb
| 1 | 1 | class Category < ActiveRecord::Base |
| 2 | 2 | |
| 3 | - validates_exclusion_of :slug, :in => [ 'index' ], :message => N_('%{fn} cannot be like that.') | |
| 3 | + validates_exclusion_of :slug, :in => [ 'index' ], :message => N_('%{fn} cannot be like that.').fix_i18n | |
| 4 | 4 | validates_presence_of :name, :environment_id |
| 5 | - validates_uniqueness_of :slug,:scope => [ :environment_id, :parent_id ], :message => N_('%{fn} is already being used by another category.') | |
| 5 | + validates_uniqueness_of :slug,:scope => [ :environment_id, :parent_id ], :message => N_('%{fn} is already being used by another category.').fix_i18n | |
| 6 | 6 | belongs_to :environment |
| 7 | 7 | |
| 8 | 8 | validates_inclusion_of :display_color, :in => [ 1, 2, 3, 4, nil ] |
| 9 | - validates_uniqueness_of :display_color, :scope => :environment_id, :if => (lambda { |cat| ! cat.display_color.nil? }), :message => N_('%{fn} was already assigned to another category.') | |
| 9 | + validates_uniqueness_of :display_color, :scope => :environment_id, :if => (lambda { |cat| ! cat.display_color.nil? }), :message => N_('%{fn} was already assigned to another category.').fix_i18n | |
| 10 | 10 | |
| 11 | 11 | # Finds all top level categories for a given environment. |
| 12 | 12 | named_scope :top_level_for, lambda { |environment| | ... | ... |
app/models/change_password.rb
| ... | ... | @@ -30,10 +30,10 @@ class ChangePassword < Task |
| 30 | 30 | unless data.login.blank? || data.email.blank? |
| 31 | 31 | user = User.find_by_login_and_environment_id(data.login, data.environment_id) |
| 32 | 32 | if user.nil? |
| 33 | - data.errors.add(:login, _('%{fn} is not a valid username.')) | |
| 33 | + data.errors.add(:login, _('%{fn} is not a valid username.').fix_i18n) | |
| 34 | 34 | else |
| 35 | 35 | if user.email != data.email |
| 36 | - data.errors.add(:email, _('%{fn} is invalid.')) | |
| 36 | + data.errors.add(:email) | |
| 37 | 37 | end |
| 38 | 38 | end |
| 39 | 39 | end | ... | ... |
app/models/comment.rb
| ... | ... | @@ -17,7 +17,7 @@ class Comment < ActiveRecord::Base |
| 17 | 17 | validates_presence_of :author_id, :if => (lambda { |rec| rec.name.blank? && rec.email.blank? }) |
| 18 | 18 | validates_each :name do |rec,attribute,value| |
| 19 | 19 | if rec.author_id && (!rec.name.blank? || !rec.email.blank?) |
| 20 | - rec.errors.add(:name, _('%{fn} can only be informed for unauthenticated authors')) | |
| 20 | + rec.errors.add(:name, _('%{fn} can only be informed for unauthenticated authors').fix_i18n) | |
| 21 | 21 | end |
| 22 | 22 | end |
| 23 | 23 | ... | ... |
app/models/community.rb
app/models/create_community.rb
| ... | ... | @@ -16,7 +16,7 @@ class CreateCommunity < Task |
| 16 | 16 | def validate |
| 17 | 17 | self.environment.required_community_fields.each do |field| |
| 18 | 18 | if self.send(field).blank? |
| 19 | - self.errors.add(field, _('%{fn} can\'t be blank')) | |
| 19 | + self.errors.add_on_blank(field) | |
| 20 | 20 | end |
| 21 | 21 | end |
| 22 | 22 | end | ... | ... |
app/models/create_enterprise.rb
| ... | ... | @@ -40,12 +40,12 @@ class CreateEnterprise < Task |
| 40 | 40 | |
| 41 | 41 | if self.region && self.target |
| 42 | 42 | unless self.region.validators.include?(self.target) || self.target_type == "Environment" |
| 43 | - self.errors.add(:target, '%{fn} is not a validator for the chosen region') | |
| 43 | + self.errors.add(:target, _('%{fn} is not a validator for the chosen region').fix_i18n) | |
| 44 | 44 | end |
| 45 | 45 | end |
| 46 | 46 | |
| 47 | 47 | if self.status != Task::Status::CANCELLED && self.identifier && Profile.exists?(:identifier => self.identifier) |
| 48 | - self.errors.add(:identifier, '%{fn} is already being as identifier by another enterprise, organization or person.') | |
| 48 | + self.errors.add(:identifier, _('%{fn} is already being as identifier by another enterprise, organization or person.').fix_i18n) | |
| 49 | 49 | end |
| 50 | 50 | end |
| 51 | 51 | ... | ... |
app/models/domain.rb
| ... | ... | @@ -10,14 +10,14 @@ class Domain < ActiveRecord::Base |
| 10 | 10 | |
| 11 | 11 | # <tt>name</tt> must be a sequence of word characters (a to z, plus 0 to 9, |
| 12 | 12 | # plus '_'). Letters must be lowercase |
| 13 | - validates_format_of :name, :with => /^([a-z0-9_-]+\.)+[a-z0-9_-]+$/, :message => N_('%{fn} must be composed only of lowercase latters (a to z), numbers (0 to 9), "_" and "-"') | |
| 13 | + validates_format_of :name, :with => /^([a-z0-9_-]+\.)+[a-z0-9_-]+$/, :message => N_('%{fn} must be composed only of lowercase latters (a to z), numbers (0 to 9), "_" and "-"').fix_i18n | |
| 14 | 14 | |
| 15 | 15 | # checks validations that could not be expressed using Rails' predefined |
| 16 | 16 | # validations. In particular: |
| 17 | 17 | # * <tt>name</tt> must not start with 'www.' |
| 18 | 18 | def validate |
| 19 | 19 | if self.name =~ /^www\./ |
| 20 | - self.errors.add(:name, _('%{fn} must not start with www.')) | |
| 20 | + self.errors.add(:name, _('%{fn} must not start with www.').fix_i18n) | |
| 21 | 21 | end |
| 22 | 22 | end |
| 23 | 23 | ... | ... |
app/models/enterprise.rb
app/models/event.rb
| ... | ... | @@ -22,7 +22,7 @@ class Event < Article |
| 22 | 22 | |
| 23 | 23 | validates_each :start_date do |event,field,value| |
| 24 | 24 | if event.end_date && event.start_date && event.start_date > event.end_date |
| 25 | - event.errors.add(:start_date, _('%{fn} cannot come before end date.')) | |
| 25 | + event.errors.add(:start_date, _('%{fn} cannot come before end date.').fix_i18n) | |
| 26 | 26 | end |
| 27 | 27 | end |
| 28 | 28 | ... | ... |
app/models/image.rb
| ... | ... | @@ -17,7 +17,7 @@ class Image < ActiveRecord::Base |
| 17 | 17 | :icon => '20x20!' }, |
| 18 | 18 | :max_size => 5.megabytes # remember to update validate message below |
| 19 | 19 | |
| 20 | - validates_attachment :size => N_("%{fn} of uploaded file was larger than the maximum size of 5.0 MB") | |
| 20 | + validates_attachment :size => N_("%{fn} of uploaded file was larger than the maximum size of 5.0 MB").fix_i18n | |
| 21 | 21 | |
| 22 | 22 | delay_attachment_fu_thumbnails |
| 23 | 23 | ... | ... |
app/models/person.rb
| ... | ... | @@ -197,7 +197,7 @@ class Person < Profile |
| 197 | 197 | |
| 198 | 198 | validates_each :email, :on => :update do |record,attr,value| |
| 199 | 199 | if User.find(:first, :conditions => ['email = ? and id != ? and environment_id = ?', value, record.user.id, record.environment.id]) |
| 200 | - record.errors.add(attr, _('%{fn} is already used by other user')) | |
| 200 | + record.errors.add(attr, _('%{fn} is already used by other user').fix_i18n) | |
| 201 | 201 | end |
| 202 | 202 | end |
| 203 | 203 | ... | ... |
app/models/uploaded_file.rb
| ... | ... | @@ -50,7 +50,7 @@ class UploadedFile < Article |
| 50 | 50 | :thumbnail_class => Thumbnail, |
| 51 | 51 | :max_size => 5.megabytes # remember to update validate message below |
| 52 | 52 | |
| 53 | - validates_attachment :size => N_("%{fn} of uploaded file was larger than the maximum size of 5.0 MB") | |
| 53 | + validates_attachment :size => N_("%{fn} of uploaded file was larger than the maximum size of 5.0 MB").fix_i18n | |
| 54 | 54 | |
| 55 | 55 | delay_attachment_fu_thumbnails |
| 56 | 56 | ... | ... |
app/models/user.rb
| ... | ... | @@ -100,7 +100,7 @@ class User < ActiveRecord::Base |
| 100 | 100 | before_save :encrypt_password |
| 101 | 101 | validates_format_of :email, :with => Noosfero::Constants::EMAIL_FORMAT, :if => (lambda {|user| !user.email.blank?}) |
| 102 | 102 | |
| 103 | - validates_inclusion_of :terms_accepted, :in => [ '1' ], :if => lambda { |u| ! u.terms_of_use.blank? }, :message => N_('%{fn} must be checked in order to signup.') | |
| 103 | + validates_inclusion_of :terms_accepted, :in => [ '1' ], :if => lambda { |u| ! u.terms_of_use.blank? }, :message => N_('%{fn} must be checked in order to signup.').fix_i18n | |
| 104 | 104 | |
| 105 | 105 | # Authenticates a user by their login name and unencrypted password. Returns the user or nil. |
| 106 | 106 | def self.authenticate(login, password, environment = nil) | ... | ... |
lib/noosfero/core_ext/string.rb
test/unit/comment_test.rb
test/unit/person_test.rb
| ... | ... | @@ -133,6 +133,7 @@ class PersonTest < ActiveSupport::TestCase |
| 133 | 133 | other.email = 'user@domain.com' |
| 134 | 134 | other.valid? |
| 135 | 135 | assert other.errors.invalid?(:email) |
| 136 | + assert_no_match /\{fn\}/, other.errors.on(:email) | |
| 136 | 137 | end |
| 137 | 138 | |
| 138 | 139 | should 'be able to use an e-mail already used in other environment' do | ... | ... |
vendor/plugins/validates_as_cnpj/lib/validates_as_cnpj.rb
| ... | ... | @@ -62,14 +62,14 @@ module ActiveRecord |
| 62 | 62 | module Validations |
| 63 | 63 | module ClassMethods |
| 64 | 64 | def validates_as_cnpj(*attr_names) |
| 65 | - configuration = { :message => "%{fn} is invalid" } | |
| 65 | + configuration = { } | |
| 66 | 66 | configuration.update(attr_names.pop) if attr_names.last.is_a?(Hash) |
| 67 | 67 | |
| 68 | 68 | validates_each(attr_names, configuration) do |record, attr_name, value| |
| 69 | 69 | next if value.blank? |
| 70 | 70 | |
| 71 | 71 | unless ValidaCNPJ::valida_cnpj(value) |
| 72 | - record.errors.add(attr_name, configuration[:message]) | |
| 72 | + record.errors.add(attr_name) | |
| 73 | 73 | end |
| 74 | 74 | end |
| 75 | 75 | end | ... | ... |