私は理解できないように見える問題を抱えています。en.yml ファイルで定義したカスタム形式を使用して日付をフォーマットしようとしています。
en:
hello: "Hello world"
time:
formats:
history_table: "%m/%d/%Y %I:%M:%S %p %Z"
これは、「l」ヘルパーを使用して呼び出されています。
l version.created_at, :format => :history_table
何らかの理由で、%p の場合のように大文字ではなく、AM/PM が小文字で表示されます。
コンソールで少し遊んでみましたが、ローカリゼーション関数と 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"
私は何か間違ったことをしていますか?これはバグですか?壁にぶつけて額が痛いので、どんな指導も大歓迎です。
編集:これは解決されました(っぽい)。デフォルトのアクティブ サポート ローカリゼーションを見ると、%p と %P の間に違いはありません。 https://github.com/rails/rails/blob/master/activesupport/lib/active_support/locale/en.yml
ローカルの en.yml ファイルのローカライズを上書きして、大文字を使用しました。ただし、Rails が両方のオプションをサポートすることを本当に望んでいました。