Laravel Breeze 日本語化パッケージ:Breezejp
これは何? TL;DR
Laravelを下記2コマンドだけで自動で日本語化できちゃうパッケージです👍
composer require askdkc/breezejp --dev
php artisan breezejp
また、下記1コマンドだけで言語切替機能も追加できます👍
php artisan breezejp --langswitch
便利だと思ったらサポートしてね
テーブルオブコンテンツ
- はじめに
- 使い方
- 日本語のカスタマイズ
- テスト方法
- メールのテスト方法
- Laravel Langと何が違うの?
- おまけ
- 言語切り替えサンプルアプリ
- 言語切替機能のインストール
- 変更履歴
- 貢献について
- セキュリティや脆弱性について
- 貢献者
- ライセンス
- パッケージ作りに興味がある人は
はじめに
このパッケージはLaravel Breezeを日本語化するパッケージとして誕生しましたが、現在ではBreeze、Jetstream、Laravel UIに対応しています😁 また、Laravelが持つ各種バリデーションメッセージを日本語化するので、Breeze等をインストールしていない環境でも実は便利に使えます😏
基本的な機能を確認するにはLaravel Breezeをインストールした後にこのパッケージをインストールしてください(以降の使い方の解説がその前提で書かれているため)
動作としてはLaravelのlang
ディレクトリ配下に日本語化に必要な翻訳ファイルを出力し、config内の言語設定も自動で日本語に変えています🇯🇵
翻訳について:
翻訳内容を修正したい場合には、このREADMEの日本語のカスタマイズをご確認願います🙇♂️
使い方
まずはLaravel Breezeのインストール
composer require laravel/breeze --dev
php artisan breeze:install blade --dark
(もしダークモードが不要な人は👇のように末尾の --darkオプション無しで実行してね)
php artisan breeze:install blade
php artisan migrate
そしてこのBreezejpパッケージのインストール
composerを使ってインストールしてください:
composer require askdkc/breezejp --dev
下記のコマンドで必要な言語ファイルの出力が実行されます:
php artisan breezejp
出力内容:
Laravel Breeze用に日本語翻訳ファイルを準備します
config/app.phpのlocaleをjaにします
GitHubリポジトリにスターの御協力をお願いします🙏 (yes/no) [yes]:
(ブラウザが開いてこのGitHubリポが開きます。スター頂けると励みになります)
Thank you! / ありがとう💓
日本語ファイルのインストールが完了しました!
Laravelの言語設定やタイムゾーン設定が自動で行われます
Breezejpはphp artisan breezejp
コマンド実行時にLaravelの設定ファイルconfig/app.php
のlocaleを自動でenからjaに変更します👍
ついでにTimezoneの設定も日本向けに直します🕛
具体的にはインストール時に自動でこうなりますので、特に何もしないでもOK👀✨💓
---config/app.php:インストール前---
'timezone' => 'UTC',
'locale' => 'en',
'faker_locale' => 'en_US',
--------------------------------
↓ `php artisan breezejp` の実行後
---config/app.php:インストール後---
'timezone' => 'Asia/Tokyo',
'locale' => 'ja',
'faker_locale' => 'ja_JP',
--------------------------------
動作確認
LaravelにアクセスするとBreezeの各メニューやバリデーションメッセージが日本語化されています
php artsan serve
http://localhost:8000/ にアクセス
- ユーザ登録画面
- ログイン画面
- 各種警告メッセージも日本語化されてます
- Breezeから送信されるメールアドレス確認通知メールの日本語化や
- パスワードリセット通知のメールの日本語化も対応
- breeze v1.15から追加されたProfile画面の日本語化も対応
- Breezejp v1.64からページネーションの日本語化にも対応しました
パッケージの更新
Laravelで新規のバリデーションルールが追加された際に、情報が追えていれば、このパッケージも更新します
新たな翻訳ファイルを適用したい場合には以下のようにします
composer update
php artisan breezejp
注意: 次のセクションの「日本語のカスタマイズ」をしている時は、Breezejpの新規テンプレートで言語ファイルが上書きされますので、この上書きインストールは実施せずに個別修正で対応願います
日本語のカスタマイズ
言語ファイルは下記ディレクトリに出力されていますので、こちらのファイルの中身を修正することで自由にカスタマイズ可能です
.
└─ lang
├── ja.json ← Breezeの各画面の日本語ファイル / メール通知の翻訳もこちら
└─ ja
├── auth.php ← 認証画面の警告メッセージの日本語ファイル
├── pagination.php ← ページ送りの日本語ファイル
├── passwords.php ← 認証画面のパスワード関係の日本語ファイル
└── validation.php ← 各種バリデーションの日本語ファイル
テスト方法
composer test
composer analyse
メールのテスト方法
Laravel Breeze(Laravel UI、そしてJetstream)はユーザ登録されたメールアドレスを確認するメールやパスワードリセットをユーザ自身で出来るパスワードリセットメールを送信します
mailpitを使うやり方
mailpitを使えば上記のメールの日本語化が問題なく出来ているかをお手軽に可能です
(MAIL_MAILER=log
という方法もありますが、日本語はlogファイル内で文字化けてしまい辛い🫠)
メモ: 2023/2/1にLaravelの
.env
のサンプルがmailhogからmailpitに変更されました
mailpitは旧来のmailhogの機能強化版ですが、使い方は一緒です
- Laravelは標準の
.env
ファイルにmailpitを使用するサンプルが書かれているので、こいつをちょっといじります
MAIL_MAILER=smtp
MAIL_HOST=localhost //ここをlocalhostに変えてね
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
- macOSの場合はHomebrewをお使いだと思うので、brewでmailtapを入れます(まだ入れてないなら)
brew tap axllent/apps
brew install mailpit
メモ:Macじゃない人はこちら
- mailpitを起動します
mailpit
メモ:(初回はネットワーク接続を許可する?とポップアップが出るので許可してください)
- メール送信テスト
Breezeのlog in
> パスワード忘れた?
リンクから登録に使用したメールアドレスを入力しパスワードリセットリンクを送信します
- mailpit確認画面にアクセスします
ブラウザを開いてhttp://localhost:8025にアクセスします
便利💓
mailhogを使うやり方
mailpitに置き換わるまではLaravelではmailhogを使ったメールテストのやり方が一般的でした
(mailpitはこのmailhogが元になっているので使い方が完全に一緒です)
.env
ファイルを下記のようにちょっといじります
MAIL_MAILER=smtp
MAIL_HOST=localhost //ここをlocalhostに変えてね
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
- macOSの場合はHomebrewをお使いだと思うので、brewでmailhogを入れます(まだ入れてないなら)
brew install mailhog
メモ:Macじゃない人はこちら
- mailhogを起動します
mailhog
メモ:(初回はネットワーク接続を許可する?とポップアップが出るので許可してください)
- mailhog確認画面にアクセスします
ブラウザを開いてhttp://localhost:8025にアクセスします
あら、便利💓
mailtrapを使うやり方
古いバージョンのLaravelではMailtrapが.env
にサンプルで書かれていたので、Mailtrapを使う方法も書いておきます
- まずはサインアップ
Mailtrapにアクセスしてサインアップします(GitHubアカウント連携とか楽で良いです)
- メールボックスの作成
Sandboxにある
Setup Inbox
をクリックします
- 右上にある
Add Project
をクリックします
- Project Nameを適当に入力(Laravelとか)して
Add
をクリックします
- Add Inboxをクリックしてインボックスを作成します
- 作成したインボックスをクリックします
- Integrationsをクリックして
Laravel 7+
を選択します
- Laravelの
.env
用の認証情報が表示されます (*下記の情報はサンプルで既に破棄済みです)
.env
ファイルの下記をMailtrapの認証情報に合わせて変更します
MAIL_MAILER=smtp //mailtrapを貼り付け
MAIL_HOST=smtp.mailtrap.io //mailtrapを貼り付け
MAIL_PORT=2525 //mailtrapを貼り付け
MAIL_USERNAME=生成されたUSERNAME //mailtrapを貼り付け
MAIL_PASSWORD=生成されたPASSWORD //mailtrapを貼り付け
MAIL_ENCRYPTION=tls //mailtrapを貼り付け
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
- メールを送るとMailtrapのインボックス内に表示されます
あらあら、便利💓
Laravel Langと何が違うの?
確かに🦀 https://laravel-lang.comってのが世の中にありましたね。。。
(作る前に存在を知っておけば良かったぜ🤦♂️)
このBreezejpパッケージのメリットとしては、今のところ次の3点です:
breezejp
コマンド一発で言語設定含めて日本語化完了(手間が段違い)- この日本語READMEの分かりやすさ(そうであって欲しい)
- Breezeが送るメールに余計なカンマが含まれたりする👇部分が修正されてる(ときめかないカンマ全部消した💅)
あとはLaravel Langと動きも殆ど一緒(単に言語ファイルをlangに作ってくれる)なので、出力されたファイルを必要に応じて自由にカスタマイズしてご利用願います💓
おまけ
ついでにJetstreamの日本語化もできちゃいます🤫
言語の切り替えサンプルアプリ
せっかく日本語に対応したので、例えば元の英語と日本語を切り替えられる方が便利よね?となるかと思います😁
そのためのサンプルアプリ:Language Switcher Sample (言語切り替えサンプル)を作成しましたので、ご参考にしてください💓
言語の切り替え機能のインストール
サンプルアプリなんて面倒だよ、さっさと言語切り替え使いたいよ!という人のために、言語切り替え機能をインストールする方法をご紹介します🤗
php artisan breezejp --langswitch
後は /language/{locale}
にアクセスするだけで言語が切り替わるので、そこを叩くリクエストを送ってご利用ください
Laravelアプリの起動
php artisan serve
- 日本語に切り替える例
http://127.0.0.1:8000/language/ja
- 英語に切り替える例
http://127.0.0.1:8000/language/en
これでLaravel Breezeの各種メニューの言語が切り替わるのが確認できると思います🤯
簡単でしょ?😁
変更履歴
最近の変更履歴についてはCHANGELOGを参照してください
貢献について
このパッケージに貢献したい人はCONTRIBUTINGを参考にしてください
セキュリティや脆弱性について
セキュリティポリシーを見て、必要な情報を送ってくれると助かります
貢献者
ライセンス
The MIT License (MIT). Please see License File for more information.
パッケージ作りに興味がある人は
こちらにパッケージの作り方を書いたので参考にしてみてね