aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorprintercu <printercu@gmail.com>2013-08-07 12:33:28 +0400
committerMax Melentiev <melentievm@gmail.com>2013-09-25 16:23:28 +0400
commit40a8130bc5f00f0d77b152e75484f175d70cabdd (patch)
tree4b75d61368faa80f10d3849dfc63f3fa55551210 /actionpack
parent69c5e010dcff0545fb2f38672e28894f230b1338 (diff)
downloadrails-40a8130bc5f00f0d77b152e75484f175d70cabdd.tar.gz
rails-40a8130bc5f00f0d77b152e75484f175d70cabdd.tar.bz2
rails-40a8130bc5f00f0d77b152e75484f175d70cabdd.zip
ActionController#translate supports symbols
Made it similar to views helper.
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG.md4
-rw-r--r--actionpack/lib/abstract_controller/translation.rb9
-rw-r--r--actionpack/test/abstract/translation_test.rb27
3 files changed, 28 insertions, 12 deletions
diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md
index 8b78e0f801..7102cbd734 100644
--- a/actionpack/CHANGELOG.md
+++ b/actionpack/CHANGELOG.md
@@ -1,3 +1,7 @@
+* ActionController#translate supports symbols.
+
+ *Max Melentiev*
+
* Introduce `BasicRendering` which is the most basic rendering implementation. It
allows to `render :text` and `render :nothing` without depending on Action View.
diff --git a/actionpack/lib/abstract_controller/translation.rb b/actionpack/lib/abstract_controller/translation.rb
index 02028d8e05..ea2551cb70 100644
--- a/actionpack/lib/abstract_controller/translation.rb
+++ b/actionpack/lib/abstract_controller/translation.rb
@@ -8,14 +8,11 @@ module AbstractController
# <tt>I18n.translate("people.index.foo")</tt>. This makes it less repetitive
# to translate many keys within the same controller / action and gives you a
# simple framework for scoping them consistently.
- def translate(*args)
- key = args.first
- if key.is_a?(String) && (key[0] == '.')
+ def translate(key, options = {})
+ if key.to_s.first == '.'
key = "#{ controller_path.tr('/', '.') }.#{ action_name }#{ key }"
- args[0] = key
end
-
- I18n.translate(*args)
+ I18n.translate(key, options)
end
alias :t :translate
diff --git a/actionpack/test/abstract/translation_test.rb b/actionpack/test/abstract/translation_test.rb
index 4fdc480b43..d43a445535 100644
--- a/actionpack/test/abstract/translation_test.rb
+++ b/actionpack/test/abstract/translation_test.rb
@@ -9,6 +9,20 @@ module AbstractController
class TranslationControllerTest < ActiveSupport::TestCase
def setup
@controller = TranslationController.new
+ I18n.backend.store_translations(:en, {
+ one: {
+ two: 'bar',
+ },
+ abstract_controller: {
+ testing: {
+ translation: {
+ index: {
+ foo: 'bar',
+ },
+ },
+ },
+ },
+ })
end
def test_action_controller_base_responds_to_translate
@@ -28,16 +42,17 @@ module AbstractController
end
def test_lazy_lookup
- expected = 'bar'
@controller.stubs(action_name: :index)
- I18n.stubs(:translate).with('abstract_controller.testing.translation.index.foo').returns(expected)
- assert_equal expected, @controller.t('.foo')
+ assert_equal 'bar', @controller.t('.foo')
+ end
+
+ def test_lazy_lookup_with_symbol
+ @controller.stubs(action_name: :index)
+ assert_equal 'bar', @controller.t(:'.foo')
end
def test_default_translation
- key, expected = 'one.two', 'bar'
- I18n.stubs(:translate).with(key).returns(expected)
- assert_equal expected, @controller.t(key)
+ assert_equal 'bar', @controller.t('one.two')
end
def test_localize