2011-01-04 10 views
49

に設定されているデフォルトのロケールは、de(ドイツ語)です。Rails:日付をstrftimeに設定するにはどうすればデフォルトロケールを認識できますか?

また、すべてのエラーメッセージがドイツ語で表示されるため、ロケールはサーバーによって取得されます。しかし、私は次のようにstrftimeで印刷日にしようとすると:それは英語(January, 11)に印刷し

some_date.strftime('%B, %y') 

、および(Januar, 11を)ドイツ期待できません。

デフォルトのロケールに従って日付を印刷するにはどうすればよいですか?

答えて

85

はこのように、代わりに生のstrftimeのl(別名localize用)メソッドを使用します。

l(date, format: '%B %d, in the year %Y') 

は、より多くの情報のために役立ちます希望をhereを参照してください。

+0

日付を印刷する方法ローカライズされた形式で? '%B、%y'のようなフォーマット文字列を受け入れますか? – rangalo

+20

私はそれを理解しました:I18n.localize(some_date、:format => '%B、%y'ありがとう – rangalo

+0

あなたはこの宝石がインストールされていることを確認したいと思うでしょう:https://github.com/svenfuchs/rails- i18nそのようにすれば、異なるロケールを持ち、参照したい 'format:short'やその他のものを呼び出すことができます。参考文献の例はこちらをご覧ください:https://github.com/svenfuchs/rails-i18n/blob/master/ rails/locale/en.yml – bcackerman

28

あなたもそれを短くすることができます。

es.ymlプットで
l(some_date, :format => '%d %B %Y') 
8

index.html.erbプットで
es: 
    date: 
    formats: 
     default: "%d/%m/%Y" 

<%= l somemodel.datefield %> 
関連する問題