我遇到了一個我似乎無法解決的問題。我想用我在我的en.yml文件中定義的自定義格式格式化日期:當在軌道中使用帶有%p的I18n.l時,AM/PM不會大寫
en:
hello: "Hello world"
time:
formats:
history_table: "%m/%d/%Y %I:%M:%S %p %Z"
這是正在使用的「L」助手叫:
l version.created_at, :format => :history_table
對於一些原因是以小寫形式顯示AM/PM,而不是以大寫形式顯示,這應該與%p一樣。
我在控制檯發揮各地了一下,好像它的定位功能和strftime之間的行爲差異:
ruby-1.9.2-p180 :043 > I18n.l user.updated_at, :format => "%m/%d/%Y %I:%M:%S %p %Z"
=> "03/23/2011 01:52:16 am UTC"
ruby-1.9.2-p180 :044 > user.updated_at.strftime("%m/%d/%Y %I:%M:%S %p %Z")
=> "03/23/2011 01:52:16 AM UTC"
難道我做錯了什麼?這是一個錯誤?任何指導都非常感謝,因爲我的前額因撞到牆上而感到疼痛。
編輯: 這已解決(ish)。 查看默認的activesupport本地化,%p和%p之間沒有任何區別。 https://github.com/rails/rails/blob/master/activesupport/lib/active_support/locale/en.yml
我過騎着定位在我的本地en.yml文件中使用大寫字母。我真的很想看到Rails支持這兩個選項。