0

だから私はI18nインドネシアローカライズを使用しています。

config/localesにid.ymlがあります。

created_at(datetime)の値をコード(文字列)に保存し、保存する前にロケールに月を変換したい。

self.code = account.created_at.strftime("%d%B%Y").to_s

Railsコンソールで翻訳が機能することを確認しようとしています。

だから私は試しました:

irb(main):003:0> account = Account.last.created_at
   ←[1m←[36mAccount Load (35.0ms)←[0m  ←[1mSELECT "public"."accounts".* FROM "pub
lic"."accounts" ORDER BY "public"."accounts"."id" DESC LIMIT 1←[0m
=> Sat, 16 Mar 2013 10:07:37 UTC +00:00
irb(main):004:0> account.strftime("%d%B%Y").to_s
=> "16March2013"
irb(main):007:0> I18n.default_locale
=> :id
irb(main):008:0> I18n.t account.strftime("%d%B%Y").to_s
=> "translation missing: id.16March2013"
irb(main):006:0> I18n.l account.strftime("%d%B%Y").to_s
#<Class:0x6fc52c8>: Object must be a Date, DateTime or Time object. "16March2013
" given.

月の値をローカライズするにはどうすればよいですか?

ご協力いただきありがとうございます!

4

1 に答える 1

4

レールガイドによると、日付はメソッド( )ではなく、#translateメソッド()でローカライズする必要があります。I18n.t#localizeI18n.l

また、たとえば月の名前などの一般的な翻訳を含むrails-i18ngemを使用することをお勧めします。

それでも解決策を見つけることができない場合はお知らせください。

于 2013-03-19T18:26:30.857 に答える