Class Index [+]

Quicksearch

ActionView::Helpers::TranslationHelper

Public Instance Methods

l(*args) click to toggle source
Alias for: localize
localize(*args) click to toggle source

Delegates to I18n.localize with no additional functionality.

    # File lib/action_view/helpers/translation_helper.rb, line 40
40:       def localize(*args)
41:         I18n.localize(*args)
42:       end
Also aliased as: l
t(key, options = {}) click to toggle source
Alias for: translate
translate(key, options = {}) click to toggle source

Delegates to I18n#translate but also performs three additional functions. First, it’ll catch MissingTranslationData exceptions and turn them into inline spans that contains the missing key, such that you can see in a view what is missing where.

Second, it’ll scope the key by the current partial if the key starts with a period. So if you call translate(".foo") from the people/index.html.erb template, you’ll actually be calling I18n.translate("people.index.foo"). This makes it less repetitive to translate many keys within the same partials and gives you a simple framework for scoping them consistently. If you don’t prepend the key with a period, nothing is converted.

Third, it’ll mark the translation as safe HTML if the key has the suffix “_html” or the last element of the key is the word “html”. For example, calling translate(“footer_html“) or translate(“footer.html“) will return a safe HTML string that won’t be escaped by other HTML helper methods. This naming convention helps to identify translations that include HTML tags so that you know what kind of output to expect when you call translate in a template.

    # File lib/action_view/helpers/translation_helper.rb, line 26
26:       def translate(key, options = {})
27:         translation = I18n.translate(scope_key_by_partial(key), options.merge!(:raise => true))
28:         if html_safe_translation_key?(key) && translation.respond_to?(:html_safe)
29:           translation.html_safe
30:         else
31:           translation
32:         end
33:       rescue I18n::MissingTranslationData => e
34:         keys = I18n.normalize_keys(e.locale, e.key, e.options[:scope])
35:         content_tag('span', keys.join(', '), :class => 'translation_missing')
36:       end
Also aliased as: t

Private Instance Methods

html_safe_translation_key?(key) click to toggle source
    # File lib/action_view/helpers/translation_helper.rb, line 58
58:         def html_safe_translation_key?(key)
59:           key.to_s =~ /(\b|_|\.)html$/
60:         end
scope_key_by_partial(key) click to toggle source
    # File lib/action_view/helpers/translation_helper.rb, line 46
46:         def scope_key_by_partial(key)
47:           if key.to_s.first == "."
48:             if @_virtual_path
49:               @_virtual_path.gsub(%{/_?}, ".") + key.to_s
50:             else
51:               raise "Cannot use t(#{key.inspect}) shortcut because path is not available"
52:             end
53:           else
54:             key
55:           end
56:         end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.