未验证 提交 8877b5ff 编写于 作者: S Stefan Wrobel 提交者: Kasper Timm Hansen

Fix translate method with default: nil

    ```ruby
    I18n.translate('missing.translation', default: nil)
    # => nil
    helper.translate('missing.translation', default: nil)
    # Before
    # => "<span class=\"translation_missing\" title=\"translation missing: en.missing.translation\">Translation</span>"
    # After
    # => nil
    ```
上级 8818d475
* `ActionView::Helpers::TranslationHelper#translate` returns nil when
passed `default: nil` without a translation matching `I18n#translate`.
*Stefan Wrobel*
* `OptimizedFileSystemResolver` prefers template details in order of locale,
formats, variants, handlers.
......
......@@ -58,7 +58,7 @@ module TranslationHelper
# when you call translate in a template and translators know which keys
# they can provide HTML values for.
def translate(key, **options)
if options.has_key?(:default)
unless options[:default].nil?
remaining_defaults = Array.wrap(options.delete(:default)).compact
options[:default] = remaining_defaults unless remaining_defaults.first.kind_of?(Symbol)
end
......
......@@ -242,6 +242,16 @@ def test_translate_with_array_of_array_default
assert_equal [], translation
end
def test_translate_with_false_default
translation = translate(:'translations.missing', default: false)
assert_equal false, translation
end
def test_translate_with_nil_default
translation = translate(:'translations.missing', default: nil)
assert_nil translation
end
def test_translate_does_not_change_options
options = {}
if RUBY_VERSION >= "2.7"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册