Skip to content

Instantly share code, notes, and snippets.

@sunchess
Created May 8, 2015 09:29
Show Gist options
  • Save sunchess/48434beee4fe92ba7242 to your computer and use it in GitHub Desktop.
Save sunchess/48434beee4fe92ba7242 to your computer and use it in GitHub Desktop.
Просматриваем путь к переводу полей формы #Rails 4.2
#put to lib/i18n_ar_attribute_shower.rb
module ActiveModel
# == Active \Model \Translation
#
# Provides integration between your object and the Rails internationalization
# (i18n) framework.
#
# A minimal implementation could be:
#
# class TranslatedPerson
# extend ActiveModel::Translation
# end
#
# TranslatedPerson.human_attribute_name('my_attribute')
# # => "My attribute"
#
# This also provides the required class methods for hooking into the
# Rails internationalization API, including being able to define a
# class based +i18n_scope+ and +lookup_ancestors+ to find translations in
# parent classes.
module Translation
include ActiveModel::Naming
# Transforms attribute names into a more human format, such as "First name"
# instead of "first_name".
#
# Person.human_attribute_name("first_name") # => "First name"
#
# Specify +options+ with additional translating options.
def human_attribute_name(attribute, options = {})
options = { count: 1 }.merge!(options)
parts = attribute.to_s.split(".")
attribute = parts.pop
namespace = parts.join("/") unless parts.empty?
attributes_scope = "#{self.i18n_scope}.attributes"
if namespace
defaults = lookup_ancestors.map do |klass|
:"#{attributes_scope}.#{klass.model_name.i18n_key}/#{namespace}.#{attribute}"
end
defaults << :"#{attributes_scope}.#{namespace}.#{attribute}"
else
defaults = lookup_ancestors.map do |klass|
:"#{attributes_scope}.#{klass.model_name.i18n_key}.#{attribute}"
end
end
defaults << :"attributes.#{attribute}"
defaults << options.delete(:default) if options[:default]
defaults << attribute.humanize
options[:default] = defaults
dsh = defaults.shift
Rails.logger.tagged("I18n attribute only Rails 4.2!: #{attribute}") do
Rails.logger.debug(dsh)
end if Rails.logger
I18n.translate(dsh, options)
end
end
end
#config/application.rb on bottom of file
#require Rails.root.join('lib', 'i18n_ar_attribute_shower') if Rails.env.development?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment