【Laravel】認証メール・エラーメッセージを日本語化する

こんにちは、ryohei(@ityryohei)です!

本記事では、PHPフレームワークのLaravelで認証メールとエラーメッセージを日本語化する方法をご紹介しています。

Laravelの認証メールやメッセージを日本語化したいんだけど、どうすればいいんだろう?

上記の疑問にお答えします。

本記事はLaravel8.xで検証した内容となります。予めご了承ください。

では、解説していきます。

日本語化の流れ

認証メールとエラーメッセージの日本語化は下記の手順で行います。

  • config/app.phpでlocaleをjaに変更する
  • 日本語の言語ファイルをダウンロード・インストールする
  • 日本語の認証メールの言語ファイル(ja.json)を設置する

各手順について詳しくご紹介していきます。

config/app.phpでlocaleをjaに変更する

congig/app.phpのロケールを変更します。デフォルトではenになっているので、下記のようにja変更します。

'locale' => 'ja',

cdコマンドでLaravelのインストールディレクトリに移動して下記コマンドを実行し、設定を反映します。

php artisan serve

以上でロケールの変更は完了です。

日本語の言語ファイルをダウンロード・インストールする

続いてLaravelが提供している日本語に翻訳された言語ファイルをダウンロードし、プロジェクトにインストールします。

cdコマンドでLaravelのインストールディレクトリに移動し、下記コマンドを実行します。

$ php -r "copy('https://readouble.com/laravel/8.x/ja/install-ja-lang-files.php', 'install-ja-lang.php');"

上記コマンドを実行すると、Laravelのインストールディレクトリにinstall-ja-lang.phpというファイルがダウンロードされます。下記を実行し、言語ファイルをインストールします。

$ php -f install-ja-lang.php

コマンド実行後、下記に言語ファイルがインストールされたことを確認します。

resources/
  └ lang/
      └ ja/
        ├ auth.php
        ├ pagination.php
        ├ passwords.php
        └ validation.php

インストールされた日本語の言語ファイルは、翻訳元の英語の言語ファイルと比較すると一部翻訳されていないメッセージが存在します。必要であれば翻訳されていない不足分のメッセージを日本語の言語ファイルに追記します。不足しているメッセージは環境によって違うようですが、私の環境では下記のメッセージが翻訳されていませんでしたので、追記した内容を記載します。(不足分はGoogle翻訳で日本語化しています。)

resources/ja/auth.php

'password' => '入力されたパスワードが正しくありません。'

resources/ja/validation.php

'declined' => ':attributeは拒否する必要があります。'
'declined_if' => ':otherが:valueの場合、:attributeを拒否する必要があります。'
'enum' => '選択された:attributeは無効です。'
'mac_address' => ':attributeは有効なMACアドレスである必要があります。'

日本語の言語ファイルのインストールが確認できたら、インストールに使用したファイルを削除します。

$ php -r "unlink('install-ja-lang.php');"

以上で日本語の言語ファイルのダウンロード・インストールは完了です。

日本語の認証メールの言語ファイルを設置する

最後に認証メールを日本語化します。認証メールの日本語化には下記で提供されているjsonファイルを使用します。

https://github.com/ShibuyaKosuke/laravel-language-setting/blob/master/src/Resources/lang/ja.json

上記URLで公開されているファイルをダウンロードし、下記に設置します。

resources/
  └ lang/
      └ ja.json //ここにファイルを設置

前項の内容と合わせると下記のようになります。

resources/
  └ lang/
      ├ ja.json
      └ ja/
        ├ auth.php
        ├ pagination.php
        ├ passwords.php
        └ validation.php

日本語の翻訳内容はja.json内で変更することができます。

以上で日本語の認証メールの日本語化は完了です。

日本語化の際に参考にしたドキュメント

エラーメッセージの日本語化は下記ページを参考にしました。

認証メールの日本語化は下記ページを参考にしました。

もし本記事の内容で気になる点などございましたら、上記ドキュメントを参考にしていただければと思います。

最後に

Laravelの日本語化はネット上に公開されている情報ですんなり反映することができました。こういったところが有名なフレームワークの良いところですよね。私もインプットした知識はできる限り発信していく努力を続けていきたいなと思います。

以上、Laravelで認証メール・エラーメッセージを日本語化する方法のご紹介でした!

Adobe Creative Cloudのコンプリートプランを特別価格で手に入れよう!

Adobe Creative Cloud(Adobe CC)はAdobe社が提供するクリエイター向けのサービスです。WEB制作の幅を広げる「Photoshop・Illustrator・XD」Youtuberや動画クリエイターの編集作業に欠かせない「Premiere Pro・After Effects」など全20以上のアプリが提供されており、幅広いプランが用意されています。

コンプリートプランはAdobe CCの全20以上のアプリが使用できるプランです。多くのアプリが使用できるため定価で購入すると年間7万円以上するプランですが、デジタルハリウッドのAdobeマスター講座では「基礎動画教材+Adobe CC コンプリートプラン(12ヵ月)」がセットになって39,980円(税込)で利用できます。定価より安価にAdobe Creative Cloudのライセンスを購入でき、以降のライセンス更新も可能。動画教材で基礎スキルを習得できるので、入門する方にも便利な講座です。詳しくは下記のリンクからチェックしてみてくださいね。

Adobeマスター講座はこちら

おすすめの書籍