diff options
author | Sergey Pchelincev <jalkoby91@gmail.com> | 2012-07-18 10:33:14 +0300 |
---|---|---|
committer | Sergey Pchelincev <jalkoby91@gmail.com> | 2012-07-18 10:33:14 +0300 |
commit | 1b5298e805a7dec4f5b3c465037dec16cbda4156 (patch) | |
tree | f0f3ab78c4adabe4c7588c6ee88537268a6d4333 /actionpack | |
parent | 58ccc9f6c5d261f7c1305d822b16447ac3d286b3 (diff) | |
download | rails-1b5298e805a7dec4f5b3c465037dec16cbda4156.tar.gz rails-1b5298e805a7dec4f5b3c465037dec16cbda4156.tar.bz2 rails-1b5298e805a7dec4f5b3c465037dec16cbda4156.zip |
add lazy look up in abstract controller's translate method
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/abstract_controller/translation.rb | 8 | ||||
-rw-r--r-- | actionpack/test/abstract/translation_test.rb | 13 |
2 files changed, 20 insertions, 1 deletions
diff --git a/actionpack/lib/abstract_controller/translation.rb b/actionpack/lib/abstract_controller/translation.rb index 6d68cf4944..b6c484d188 100644 --- a/actionpack/lib/abstract_controller/translation.rb +++ b/actionpack/lib/abstract_controller/translation.rb @@ -1,6 +1,12 @@ module AbstractController module Translation def translate(*args) + key = args.first + if key.is_a?(String) && (key[0] == '.') + key = "#{ controller_path.gsub('/', '.') }.#{ action_name }#{ key }" + args[0] = key + end + I18n.translate(*args) end alias :t :translate @@ -10,4 +16,4 @@ module AbstractController end alias :l :localize end -end
\ No newline at end of file +end diff --git a/actionpack/test/abstract/translation_test.rb b/actionpack/test/abstract/translation_test.rb index 0194ee943f..99064a8b87 100644 --- a/actionpack/test/abstract/translation_test.rb +++ b/actionpack/test/abstract/translation_test.rb @@ -23,4 +23,17 @@ class TranslationControllerTest < ActiveSupport::TestCase def test_action_controller_base_responds_to_l assert_respond_to @controller, :l end + + def test_lazy_lookup + expected = 'bar' + @controller.stubs(:action_name => :index) + I18n.stubs(:translate).with('action_controller.base.index.foo').returns(expected) + assert_equal expected, @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) + end end |