LoginSignup
37
31

More than 3 years have passed since last update.

translation missing: ja.activerecord〜のエラー対応

Posted at

エラー状況

RSpecにてモデルのテストを実行していたとき、下記エラーが発生。

translation missing: ja.activerecord.errors.models.post.attributes.user.required

調べた内容

①誤字脱字の確認
②作業ファイルの指定漏れ
③ググる
④エラー文の解析

①、②は問題なし。そもそも①と②が該当する場合のエラー文では無いよね!?
③を一通り試したが、該当する情報は出てこず。

ということは④から導き出すしか無ので解析開始!

仮説

translation missingというエラー文を翻訳すると[欠訳]となる。

この[欠訳]というキーワードから立てた仮説は、翻訳がかけているということ。
となると、日本語が対応していないとも仮説できる。

さらに深掘りすると、[deviseを日本語訳したファイルがない]というエラーだった。

解決方法

仮設検証結果は、おおよそ的中しているようなので解決方法を記述。

config>application.rb
class Application < Rails::Application
    ~省略~
    #以下で日本語化の設定をする
    config.i18n.default_locale = :ja 
  end

次にdeviseの日本語化

「config/locales」フォルダに、「devise.ja.yml」および「ja.yml」という名前のファイルを新規作成します。

下記のサイトに記述内容が掲載されているので、それぞれ中身を丸ごとコピーして貼り付け、保存しましょう。

devise.ja.yml▼
https://github.com/tigrish/devise-i18n/blob/master/rails/locales/ja.yml

ja.yml▼
https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

以上で解決です!
ただ、日本語化したのでテストの際のエラー文言も日本語で書く必要があるので注意。

37
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
31