2012-01-06
YAMLの参照まわりのtranslation missingの解決
Railsで翻訳のエラーに出くわしました。
translation missing: ja.activerecord.errors.models.user.attributes.email.taken
再現
環境
- Basic 64-bit Amazon Linux AMI 2011.02.1 Beta
- Ruby1.9.2-p180
- Rails 3.0.11
- config/locale/ja.yml (2011年春頃にi18n_generatorで入手したもの)
rails c Loading development environment (Rails 3.0.11) ruby-1.9.2-p180 :001 > I18n.t('activerecord.errors.messages.taken') => "translation missing: ja.activerecord.errors.messages.taken"
原因
config/locale/ja.yml
errors: format: "%{attribute} %{message}" messages: &errors_messages inclusion: "は一覧にありません。" exclusion: "は予約されています。" activerecord: errors: messages: taken: "はすでに存在します。" record_invalid: "バリデーションに失敗しました。 %{errors}" <<: *errors_messages
一部省略していますが、おそらく参照のあたりがうまく解析できておらず、"taken"が認識されていないようでした。
解決法1
Ruby1.9.2-p180からRuby1.9.2-p290に上げたら解決しました。詳しくはわかりませんが、YAMLの解析が改善されているものと思われます。
Ruby1.9.2-p290
$ rails c Loading development environment (Rails 3.0.11) 1.9.2-p290 :001 > I18n.t('activerecord.errors.messages.taken') => "はすでに存在します。"
RVM
RVMでバージョンを上げる場合
rvm upgrade ruby-1.9.2-p180 ruby-1.9.2-p290
解決法2
svenfuchs/rails-i18n ? GitHub にある最新のja.ymlを使っても解決できます。
以下のコミットでYAMLの構造が変更されていました。
関連記事
トラックバック - http://d.hatena.ne.jp/deeeki/20120106/yaml_translation_missing
リンク元
- 30 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cts=1331172327696&ved=0CDYQFjAC&url=http://d.hatena.ne.jp/deeeki/200812&ei=WxNYT4-zEu_nmAWXobCtDw&usg=AFQjCNEMZeQGpLUUR6zn1FoGnT9AvAzzpQ&sig2=3jW3PSd-IkhiPAIY_gnJsg
- 25 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cts=1331060741156&ved=0CCMQFjAA&url=http://d.hatena.ne.jp/deeeki/&ei=AGBWT_epMaXwmAWK1a33CQ&usg=AFQjCNEmx4AMJAQ2QU8M42PGnK1kUIGlvw&sig2=MPuhYnUCouD92-nJs_LtPw
- 25 http://www.google.com/search
- 22 http://www.google.co.jp/url?sa=t&rct=j&q=translation missing: ja.activerecord.errors.messages.record_invalid&source=web&cd=2&ved=0CDMQFjAB&url=http://d.hatena.ne.jp/deeeki/20120106/yaml_translation_missing&ctbs=lr:lang_1ja&ei=ElsOT8fnH
- 20 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cts=1331126269568&ved=0CC8QFjAB&url=http://d.hatena.ne.jp/deeeki/200905&ei=-V9XT-W9E8XOmAWco4nPDw&usg=AFQjCNFpfGHBtL8wJQrSd_dlsfSCnDBGDg&sig2=FjBoOShn189iA2Y_rJvzqQ
- 17 http://deeeki.com/
- 12 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cts=1331112467742&ved=0CEIQFjAD&url=http://d.hatena.ne.jp/deeeki/20120106/yaml_translation_missing&ei=0ylXT4atN6_JmAW-0r3QDw&usg=AFQjCNF85GwWMA4b6JgwXrRpL8zaNxJ3dg&sig2=BsRMc5EnM
- 10 http://htn.to/B5cjKh
- 9 http://bit.ly/AvpYKJ
- 8 https://www.google.co.jp/




