網站的頁面需要提供下拉式選單供使用者選擇星期幾
一開始使用Date::DAYNAMES取得一週的詞彙:
1 | <%= simple_form_for @post do |f| %> |
然而預設為英文單字1
=> [["Sunday", 0], ["Monday", 1], ["Tuesday", 2], ["Wednesday", 3], ["Thursday", 4], ["Friday", 5], ["Saturday", 6]]
我們想改成中文顯示,於是使用i18n轉換字詞
首先,在config/locales下新增一個zh-TW.yml檔,裡面建立中文的對應單字1
2
3
4
5
6
7
8
9
10"zh-TW":
date:
day_names:
- 星期日
- 星期一
- 星期二
- 星期三
- 星期四
- 星期五
- 星期六
要特別注意的是yml檔裡不能用tab來縮排,必需使用2個空白
接著設定config1
config.i18n.default_locale = 'zh-TW'
修改原來的view,即可轉換選單的英文字詞1
2
3
4
5
6<%= simple_form_for @post do |f| %>
...略
<p>
球聚時間:每週 <%= f.select :day, t(:"date.day_names").zip((0..6).to_a) %>
</p>
<% end %>
參考來源:
“How to store and display a day of the week” from Stack Overflow
ihower介紹i118n
設定yml檔 from Stack Overflow