X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=vendor%2Frails%2Factionpack%2Flib%2Faction_view%2Fhelpers%2Ftranslation_helper.rb;fp=vendor%2Frails%2Factionpack%2Flib%2Faction_view%2Fhelpers%2Ftranslation_helper.rb;h=4aed10f6407329d9773e6c2257ea2fca691c04f0;hb=437aa336c44c74a30aeea16a06743c32747ed661;hp=0000000000000000000000000000000000000000;hpb=97a0772b06264134cfe38e7494f9427efe0840a0;p=feedcatcher.git diff --git a/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb b/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb new file mode 100644 index 0000000..4aed10f --- /dev/null +++ b/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb @@ -0,0 +1,39 @@ +require 'action_view/helpers/tag_helper' + +module ActionView + module Helpers + module TranslationHelper + # Delegates to I18n#translate but also performs two 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. + def translate(key, options = {}) + options[:raise] = true + I18n.translate(scope_key_by_partial(key), options) + rescue I18n::MissingTranslationData => e + keys = I18n.send(:normalize_translation_keys, e.locale, e.key, e.options[:scope]) + content_tag('span', keys.join(', '), :class => 'translation_missing') + end + alias :t :translate + + # Delegates to I18n.localize with no additional functionality. + def localize(*args) + I18n.localize *args + end + alias :l :localize + + + private + def scope_key_by_partial(key) + if key.to_s.first == "." + template.path_without_format_and_extension.gsub(%r{/_?}, ".") + key.to_s + else + key + end + end + end + end +end \ No newline at end of file