こんにちは、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で認証メール・エラーメッセージを日本語化する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。