From b3df2761807746532ff04599cbe312d9e3a30bc1 Mon Sep 17 00:00:00 2001 From: Akira Matsuda Date: Mon, 16 Mar 2009 22:02:48 +0900 Subject: [PATCH] I18n: use I18n for select helpers' prompt text --- .../lib/action_view/helpers/form_options_helper.rb | 3 ++- actionpack/lib/action_view/locale/en.yml | 5 +++++ .../test/template/form_options_helper_i18n_test.rb | 20 ++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletions(-) create mode 100644 actionpack/test/template/form_options_helper_i18n_test.rb diff --git a/actionpack/lib/action_view/helpers/form_options_helper.rb b/actionpack/lib/action_view/helpers/form_options_helper.rb index 6b385ef..282016c 100644 --- a/actionpack/lib/action_view/helpers/form_options_helper.rb +++ b/actionpack/lib/action_view/helpers/form_options_helper.rb @@ -506,7 +506,8 @@ module ActionView option_tags = "\n" + option_tags end if value.blank? && options[:prompt] - ("\n") + option_tags + prompt = options[:prompt].kind_of?(String) ? options[:prompt] : I18n.translate('select.prompt', :default => 'Please select') + "\n" + option_tags else option_tags end diff --git a/actionpack/lib/action_view/locale/en.yml b/actionpack/lib/action_view/locale/en.yml index afe3569..5fb760f 100644 --- a/actionpack/lib/action_view/locale/en.yml +++ b/actionpack/lib/action_view/locale/en.yml @@ -99,6 +99,11 @@ minute: "Minute" second: "Seconds" + # Used in FormOptionsHelper + select: + # default value for :prompt => true + prompt: "Please select" + activerecord: errors: template: diff --git a/actionpack/test/template/form_options_helper_i18n_test.rb b/actionpack/test/template/form_options_helper_i18n_test.rb new file mode 100644 index 0000000..15d36e2 --- /dev/null +++ b/actionpack/test/template/form_options_helper_i18n_test.rb @@ -0,0 +1,20 @@ +class FormOptionsHelperI18nTests < ActionView::TestCase + tests ActionView::Helpers::FormOptionsHelper + + def setup + @prompt_message = 'select!' + I18n.stubs(:translate).with('select.prompt', {:default => 'Please select'}).returns(@prompt_message) + end + + def test_select_with_prompt_true_translates_prompt_message + I18n.expects(:translate).with('select.prompt', {:default => 'Please select'}) + select 'post', 'category', [], :prompt => true + end + + def test_select_with_translated_prompt + assert_dom_equal( + %Q(), + select('post', 'category', [], :prompt => true) + ) + end +end -- 1.6.2