aboutsummaryrefslogtreecommitdiffstats
path: root/actionview
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-01-27 10:04:26 -0800
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-01-27 10:04:26 -0800
commitd57ce232a885b21e1d6d1f9fbf60bc5908ad880d (patch)
treef62345d1f58cc689c1a113773cff54c12c607a94 /actionview
parent31616068032beb537768787ff3a206b062eb192e (diff)
parent433628a45c2f5dd04b115af1b5579dac75255c67 (diff)
downloadrails-d57ce232a885b21e1d6d1f9fbf60bc5908ad880d.tar.gz
rails-d57ce232a885b21e1d6d1f9fbf60bc5908ad880d.tar.bz2
rails-d57ce232a885b21e1d6d1f9fbf60bc5908ad880d.zip
Merge pull request #13832 from kassio/setup-for-raise-missing-translations
Rails config for raise on missing translations
Diffstat (limited to 'actionview')
-rw-r--r--actionview/CHANGELOG.md7
-rw-r--r--actionview/lib/action_view/base.rb4
-rw-r--r--actionview/lib/action_view/helpers/translation_helper.rb8
-rw-r--r--actionview/test/template/translation_helper_test.rb10
4 files changed, 25 insertions, 4 deletions
diff --git a/actionview/CHANGELOG.md b/actionview/CHANGELOG.md
index 19877ca8cb..960f867d99 100644
--- a/actionview/CHANGELOG.md
+++ b/actionview/CHANGELOG.md
@@ -1,3 +1,10 @@
+* Added `config.action_view.raise_on_missing_translations` to define whether an
+ error should be raised for missing translations.
+
+ Fixes #13196
+
+ *Kassio Borges*
+
* Improved ERB dependency detection. New argument types and formattings for the `render`
calls can be matched.
diff --git a/actionview/lib/action_view/base.rb b/actionview/lib/action_view/base.rb
index 8eb7072d0c..455ce531ae 100644
--- a/actionview/lib/action_view/base.rb
+++ b/actionview/lib/action_view/base.rb
@@ -153,6 +153,10 @@ module ActionView #:nodoc:
# Specify default_formats that can be rendered.
cattr_accessor :default_formats
+ # Specify whether an error should be raised for missing translations
+ cattr_accessor :raise_on_missing_translations
+ @@raise_on_missing_translations = false
+
class_attribute :_routes
class_attribute :logger
diff --git a/actionview/lib/action_view/helpers/translation_helper.rb b/actionview/lib/action_view/helpers/translation_helper.rb
index 3ae1df04fe..0bc40874d9 100644
--- a/actionview/lib/action_view/helpers/translation_helper.rb
+++ b/actionview/lib/action_view/helpers/translation_helper.rb
@@ -38,10 +38,10 @@ module ActionView
# If the user has specified rescue_format then pass it all through, otherwise use
# raise and do the work ourselves
- if options.key?(:raise) || options.key?(:rescue_format)
- raise_error = options[:raise] || options[:rescue_format]
- else
- raise_error = false
+ options[:raise] ||= ActionView::Base.raise_on_missing_translations
+
+ raise_error = options[:raise] || options.key?(:rescue_format)
+ unless raise_error
options[:raise] = true
end
diff --git a/actionview/test/template/translation_helper_test.rb b/actionview/test/template/translation_helper_test.rb
index 269714fad0..c4770840fb 100644
--- a/actionview/test/template/translation_helper_test.rb
+++ b/actionview/test/template/translation_helper_test.rb
@@ -53,6 +53,16 @@ class TranslationHelperTest < ActiveSupport::TestCase
assert_equal false, translate(:"translations.missing", :rescue_format => nil).html_safe?
end
+ def test_raises_missing_translation_message_with_raise_config_option
+ ActionView::Base.raise_on_missing_translations = true
+
+ assert_raise(I18n::MissingTranslationData) do
+ translate("translations.missing")
+ end
+ ensure
+ ActionView::Base.raise_on_missing_translations = false
+ end
+
def test_raises_missing_translation_message_with_raise_option
assert_raise(I18n::MissingTranslationData) do
translate(:"translations.missing", :raise => true)