askdkc/breezejp

Laravel Breeze(とLaravel UIとJetstream)を標準の各種バリデーションや言語設定、タイムスタンプも含めて一瞬で日本語化対応&言語切替機能も追加 / This package provides Japanese translation for Laravel Breeze, Laravel UI and Jetstream package with language switching feature. It also privides Japanese validation messages

Fund package maintenance!
askdkc
Ko Fi

v1.8.2 2024-04-17 22:40 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel 11にも対応済みです(2024-01-26)

これは何? TL;DR

Laravelを下記2コマンドだけで自動で日本語化できちゃうパッケージです👍

composer require askdkc/breezejp --dev

php artisan breezejp

198011737-c40cedc8-9f5d-4517-8407-93b2844bbeb2.gif


また、下記1コマンドだけで言語切替機能も追加できます👍

php artisan breezejp --langswitch

251661460-d52738c5-c6ae-4f92-87ef-0046f8cff4f7.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTUxNTg2MDAsIm5iZiI6MTcxNTE1ODMwMCwicGF0aCI6Ii83ODk0MjY1LzI1MTY2MTQ2MC1kNTI3MzhjNS1jNmFlLTRmOTItODdlZi0wMDQ2ZjhjZmY0ZjcuZ2lmP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDUwOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA1MDhUMDg1MTQwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MTk2OTg5NzU1NGM3ZGNjMjhhNDJkNmNlZTI0ZWI2YzVjM2NiYTExMWRiNzgxN2FjMjNmZmQzOGUzZjJhMDE4NyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.3JKiVTQJNcuuMvDZhDVxs_5iK-yQXO4D_cvUO0MQ2eo

便利だと思ったらサポートしてね

ko-fi

テーブルオブコンテンツ

はじめに

このパッケージは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の各メニューやバリデーションメッセージが日本語化されています

Laravelを起動して

php artsan serve

http://localhost:8000/ にアクセス

  • ユーザ登録画面

image

  • ログイン画面

image

  • 各種警告メッセージも日本語化されてます

image

  • Breezeから送信されるメールアドレス確認通知メールの日本語化や

image

  • パスワードリセット通知のメールの日本語化も対応

image

  • breeze v1.15から追加されたProfile画面の日本語化も対応

image


  • Breezejp v1.64からページネーションの日本語化にも対応しました

pagination

パッケージの更新

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="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
  • macOSの場合はHomebrewをお使いだと思うので、brewでmailpitを入れます(まだ入れてないなら)
brew tap axllent/apps
brew install mailpit

メモ:Macじゃない人はこちら


  • mailpitを起動します
mailpit

メモ:(初回はネットワーク接続を許可する?とポップアップが出るので許可してください)


  • メール送信テスト

Breezeのlog in > パスワード忘れた?リンクから登録に使用したメールアドレスを入力しパスワードリセットリンクを送信します

image

  • mailpit確認画面にアクセスします

ブラウザを開いてhttp://localhost:8025にアクセスします

image

便利💓

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="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
  • macOSの場合はHomebrewをお使いだと思うので、brewでmailhogを入れます(まだ入れてないなら)
brew install mailhog

メモ:Macじゃない人はこちら


  • mailhogを起動します
mailhog

メモ:(初回はネットワーク接続を許可する?とポップアップが出るので許可してください)


  • mailhog確認画面にアクセスします

ブラウザを開いてhttp://localhost:8025にアクセスします

image

あら、便利💓

mailtrapを使うやり方

古いバージョンのLaravelではMailtrapが.envにサンプルで書かれていたので、Mailtrapを使う方法も書いておきます

  • まずはサインアップ

Mailtrapにアクセスしてサインアップします(GitHubアカウント連携とか楽で良いです) image

  • メールボックスの作成 SandboxにあるSetup Inboxをクリックします

image

  • 右上にあるAdd Projectをクリックします

image

  • Project Nameを適当に入力(Laravelとか)してAddをクリックします

image

  • Add Inboxをクリックしてインボックスを作成します

image

image

  • 作成したインボックスをクリックします

image

  • IntegrationsをクリックしてLaravel 7+を選択します

image

  • Laravelの.env用の認証情報が表示されます (*下記の情報はサンプルで既に破棄済みです)

image

.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="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
  • メールを送るとMailtrapのインボックス内に表示されます

image

あらあら、便利💓

Laravel Langと何が違うの?

確かに🦀 https://laravel-lang.comってのが世の中にありましたね。。。
(作る前に存在を知っておけば良かったぜ🤦‍♂️)

このBreezejpパッケージのメリットとしては、今のところ次の3点です:

  • breezejpコマンド一発で言語設定含めて日本語化完了(手間が段違い)
  • この日本語READMEの分かりやすさ(そうであって欲しい)
  • Breezeが送るメールに余計なカンマが含まれたりする👇部分が修正されてる(ときめかないカンマ全部消した💅)

image

あとはLaravel Langと動きも殆ど一緒(単に言語ファイルをlangに作ってくれる)なので、出力されたファイルを必要に応じて自由にカスタマイズしてご利用願います💓

おまけ

ついでにJetstreamの日本語化もできちゃいます🤫

jetstream

言語の切り替えサンプルアプリ

せっかく日本語に対応したので、例えば元の英語と日本語を切り替えられる方が便利よね?となるかと思います😁

そのためのサンプルアプリ:Language Switcher Sample (言語切り替えサンプル)を作成しましたので、ご参考にしてください💓

251501263-d807d110-971e-44c0-a284-9e1b57c73894

言語の切り替え機能のインストール

サンプルアプリなんて面倒だよ、さっさと言語切り替え使いたいよ!という人のために、言語切り替え機能をインストールする方法をご紹介します🤗

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.

パッケージ作りに興味がある人は

こちらにパッケージの作り方を書いたので参考にしてみてね