【Laravel11】日本語化設定

Laravel

Laravel11のプロジェクトの出力を日本語にさせる設定方法の解説です。

一応、公式ドキュメントにしっかり解説されていますし、

解説記事も多数ありますが、自分用のメモとして記事化しました。

Localization - Laravel 11.x - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We???ve already laid the foundation ??? free...

前提条件

  • PHP8.2以降インストール済
  • Composerインストール済

これからやること

  • Laravel11プロジェクト新規作成
  • ルーティング
  • ビュー編集
  • ビルトインサーバ起動
  • ブラウザで動作確認
  • 日本語化設定
  • ブラウザで動作確認

Laravel11プロジェクト新規作成

プロジェクト「app-ja」を新規作成します。

composer create-project laravel/laravel:^11 app-ja

プロジェクトフォルダに入ります。

cd app-ja

ルーティング

動作確認のためのサンプルアプリを作成します。

「routes/web.php」を編集します。

<?php

use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Validator;

Route::get('/', function () {
    $data = [
        'name' => 123,
        'email' => 'hoge',
    ];
    $validator = Validator::make(
        data: $data,
        rules: [
            'name' => 'required|string|max:255',
            'email' => 'required|email:rfc',
        ],
    );
    return view('welcome', [
        'valid' => $validator->valid(),
        'data' => $data,
        'messages' => $validator->fails()
            ? $validator->errors()->messages()
            : [],
    ]);
});

ビュー編集

「resources/views/welcome.blade.php」を編集します。

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <title>Laravel</title>
    </head>
    <body>
        <div>
            <p>バリデーション結果:{{ $valid ? '合格' : '不合格' }}</p>
            <p>データ:
                <ul>
                @foreach ($data as $key => $value)
                    <li>{{ $key }}: {{ $value }}</li>
                @endforeach
                </ul>
            </p>
            <p>
                メッセージ:
                <ul>
                @foreach ($messages as $key => $message)
                    <li>{{ $key }}:
                        <ul>
                            @foreach ($message as $m)
                                <li>{{ $m }}</li>
                            @endforeach
                        </ul>
                    </li>
                @endforeach
                </ul>
            </p>
        </div>
    </body>
</html>

ビルトインサーバ起動

WEBサービスを起動します。

php artisan serve

ブラウザで確認

WEBブラウザで次のURLへアクセスします。

http://localhost:8000/

バリデーションのエラーメッセージが英語で表示されました。

日本語化設定

言語定義フォルダを作成します。

php artisan lang:publish

Laravel用日本語化パッケージ「Breezejp」をインストールします。

GitHub - askdkc/breezejp: Laravel Starter Kit (Livewire+Breeze+Laravel UI+Jetstream)を一瞬で日本語化し、言語切替機能も提供するパッケージです / Laravelの各種バリデーションメッセージも日本語化するのでStarter Kit無しでも便利✨
Laravel Starter Kit (Livewire+Breeze+Laravel UI+Jetstream)を一瞬で日本語化し、言語切替機能も提供するパッケージです / Laravelの各種バリデーションメッセージも日本語化するので...

※名前にBreezeが付いていますが、

※Breezeをインストールしていなくても問題ありません。

※また、Jetstreamの日本語化も対応しています。

composer require askdkc/breezejp --dev

※インストーラーなので開発環境だけインストールすればOKです。

日本語翻訳ファイルをインストールします。

php artisan breezejp

「lang/ja/」フォルダに翻訳ファイルがコピーされ、

「.env」の言語設定、タイムゾーン設定が変更されました。

ブラウザで動作確認

先程のURLを再読み込みします。

バリデーションのエラーメッセージが日本語化されました。

  • 0
  • 0
  • 0
  • 0

コメント

タイトルとURLをコピーしました