Delegates to I18n.localize with no additional functionality.
# File lib/action_view/helpers/translation_helper.rb, line 65 65: def localize(*args) 66: I18n.localize(*args) 67: end
Delegates to I18n#translate but also performs three additional functions.
First, it’ll pass the :rescue_format => :html option to I18n so that any thrown MissingTranslation messages will be turned into inline spans that
* have a "translation-missing" class set, * contain the missing key as a title attribute and * a titleized version of the last key segment as a text.
E.g. the value returned for a missing translation key :“blog.post.title“ will be Title. This way your views will display rather reasonable strings but it will still be easy to spot missing translations.
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 46 46: def translate(key, options = {}) 47: options.merge!(:rescue_format => :html) unless options.key?(:rescue_format) 48: if html_safe_translation_key?(key) 49: html_safe_options = options.dup 50: options.except(*I18n::RESERVED_KEYS).each do |name, value| 51: unless name == :count && value.is_a?(Numeric) 52: html_safe_options[name] = ERB::Util.html_escape(value.to_s) 53: end 54: end 55: translation = I18n.translate(scope_key_by_partial(key), html_safe_options) 56: 57: translation.respond_to?(:html_safe) ? translation.html_safe : translation 58: else 59: I18n.translate(scope_key_by_partial(key), options) 60: end 61: end
# File lib/action_view/helpers/translation_helper.rb, line 83 83: def html_safe_translation_key?(key) 84: key.to_s =~ /(\b|_|\.)html$/ 85: end
# File lib/action_view/helpers/translation_helper.rb, line 71 71: def scope_key_by_partial(key) 72: if key.to_s.first == "." 73: if @virtual_path 74: @virtual_path.gsub(%{/_?}, ".") + key.to_s 75: else 76: raise "Cannot use t(#{key.inspect}) shortcut because path is not available" 77: end 78: else 79: key 80: end 81: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.