1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Rails config for raise on missing translations

Add a config to setup whether raise exception for missing translation or
not.
This commit is contained in:
Kassio Borges 2014-01-26 20:05:34 -02:00
parent 3fd6329e2b
commit 433628a45c
7 changed files with 33 additions and 4 deletions

View file

@ -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.

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -386,6 +386,8 @@ encrypted cookies salt value. Defaults to `'signed encrypted cookie'`.
The default setting is `true`, which uses the partial at `/admin/posts/_post.erb`. Setting the value to `false` would render `/posts/_post.erb`, which is the same behavior as rendering from a non-namespaced controller such as `PostsController`.
* `config.action_view.raise_on_missing_translations` determines whether an error should be raised for missing translations
### Configuring Action Mailer
There are a number of settings available on `config.action_mailer`:

View file

@ -35,4 +35,7 @@ Rails.application.configure do
# Raises helpful error messages.
config.assets.raise_runtime_errors = true
<%- end -%>
# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
end

View file

@ -33,4 +33,7 @@ Rails.application.configure do
# Print deprecation notices to the stderr.
config.active_support.deprecation = :stderr
# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true
end