Skip to content

Commit

Permalink
Improve getting translations for number helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
carlosantoniodasilva committed Jan 25, 2012
1 parent a6aea14 commit fb22f93
Showing 1 changed file with 13 additions and 10 deletions.
23 changes: 13 additions & 10 deletions actionpack/lib/action_view/helpers/number_helper.rb
Expand Up @@ -188,9 +188,8 @@ def number_to_percentage(number, options = {})

options.symbolize_keys!

defaults = defaults_translations(options[:locale]).merge(translations_for('percentage', options[:locale]))

options = options.reverse_merge(defaults)
defaults = format_translations('percentage', options[:locale])
options = defaults.merge!(options)

format = options[:format] || "%n%"

Expand Down Expand Up @@ -237,7 +236,7 @@ def number_with_delimiter(number, options = {})
return number
end

options = options.reverse_merge(defaults_translations(options[:locale]))
options = defaults_translations(options[:locale]).merge(options)

parts = number.to_s.to_str.split('.')
parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{options[:delimiter]}")
Expand Down Expand Up @@ -283,9 +282,9 @@ def number_with_precision(number, options = {})
return number
end

defaults = defaults_translations(options[:locale]).merge(translations_for('precision', options[:locale]))
defaults = format_translations('precision', options[:locale])
options = defaults.merge!(options)

options = options.reverse_merge(defaults) # Allow the user to unset default values: Eg.: :significant => false
precision = options.delete :precision
significant = options.delete :significant
strip_insignificant_zeros = options.delete :strip_insignificant_zeros
Expand Down Expand Up @@ -352,9 +351,9 @@ def number_to_human_size(number, options = {})
return number
end

defaults = defaults_translations(options[:locale]).merge(translations_for('human', options[:locale]))
defaults = format_translations('human', options[:locale])
options = defaults.merge!(options)

options = options.reverse_merge(defaults)
#for backwards compatibility with those that didn't add strip_insignificant_zeros to their locale files
options[:strip_insignificant_zeros] = true if not options.key?(:strip_insignificant_zeros)

Expand Down Expand Up @@ -464,9 +463,9 @@ def number_to_human(number, options = {})
return number
end

defaults = defaults_translations(options[:locale]).merge(translations_for('human', options[:locale]))
defaults = format_translations('human', options[:locale])
options = defaults.merge!(options)

options = options.reverse_merge(defaults)
#for backwards compatibility with those that didn't add strip_insignificant_zeros to their locale files
options[:strip_insignificant_zeros] = true if not options.key?(:strip_insignificant_zeros)

Expand Down Expand Up @@ -504,6 +503,10 @@ def number_to_human(number, options = {})

private

def format_translations(namespace, locale)
defaults_translations(locale).merge(translations_for(namespace, locale))
end

def defaults_translations(locale)
I18n.translate(:'number.format', :locale => locale, :default => {})
end
Expand Down

0 comments on commit fb22f93

Please sign in to comment.