Ryoの日記

備忘ログ

rails-i18n 翻訳されない事件

rails i18nを使用していて、

rails sで再起動かけてもダメ、

インデントを穴が開くほど確認してもダメ、、

パスが通ってないか確認しても合ってるはずなのにダメ、、、

ハゲる!!ってなったので誰かの手助けになればと思い、書きます。

今回の状況

application.rb

module TaskDo
  class Application < Rails::Application
    config.i18n.default_locale = :ja   #アプリのデフォルトを日本語に指定
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s]   #locales以下にパスが通るように指定
    
  end
end

localesにactiverecord(model用)とview(view&controller用)という名前のファイルを作成

→それぞれにja.ymlを作成

f:id:Ryomimi:20210905202018p:plain

そしてview用のja.ymlに翻訳を書き込んでちゃんと表示されるか確認してみることに。

config/local/view/ja.yml

ja:
  defaults:
    login: 'ログイン'
    register: '登録'

対象のview

        <div class="actions">
          <%= f.submit "登録",class: 'btn btn-primary' %>
        </div>

結果

...表示されない💩

gemの問題か...?→rails sで再起動かけてもダメ、

じゃあviewでミスってるかja.ymlのよくあるインデントミスかな、

→view側は特に記述ミスはなさそう、、

→インデントを穴が開くほど確認してもダメ(これだけしか記述してないので確認するとこないやん、、)

パスの通し方を確認しても合ってるはずなのにダメ、、、         

そしてググりにググって探し当てたのが「他のja.yml」が空だと翻訳されないという質問箱の内容。。

そんなパターンあるんか?と思いつつ、

local/activerecord/ja.ymlに

ja:

これだけ記述すると、、表示された!

まじか!!この3文字で俺の朝の30分.....orz

最後までご覧いただき有り難うございました。笑

この記事がもし誰かのエラーの手助けになれば、、、