未経験からエンジニア転職をするための最強ロードマップロードマップ

【必見】Laravel10を脳死で日本語に対応させる方法

目次

はじめに

Laravel ではLaravel Breezeなどで簡単にログイン機能を導入することができますが、それら機能のデフォルト言語が英語のため、自分で日本語化をする必要が出てきます。

そんなとき簡単に日本語化できる方法があるので、今回はその方法を詳しく解説していきますので、最後まで読んで実装していってくださいね!

前提条件

今回Laravelを日本語化するにあたってLaravel Breezeがインストール済みの方を対象としています。

Laravel Breezeをインストールしていない方は下記から簡単に導入してください。

FADOTECH
【Laravel10】Laravel Breezeで超簡単にログイン機能を実装する方法 | FADOTECH はじめに LaravelにはLaravel Breezeという機能が備わっており、「ユーザー登録機能」や「ログイン機能」、「パスワードリセット機能」、「メール認証機能」、「パスワード...

Laravelの日本語化について

LaravelはLaravel Breezeなどを日本語化するために下記2つの方法を提供しています。

1つ目の方法は、langディレクトリ内にja.jsonなどのJSON形式のファイルを作成して、そのJSONファイル内に翻訳内容を記述していく方法です。

2つ目の方法は、langディレクトリ内に各種言語ファイルを設置する方法です。
例えば、日本語化をしたい場合はlangディレクトリ内にjaディレクトリを作成して、その中にmessage.phpなどの翻訳用PHPファイルを用意するやり方です。

どちらか一方の方法のみを採用することや、どちらとも採用することもできるので好きな感じで実装するのがいいですね!

それでは2つの方法について順番に説明していきますが、まずはどちらにも共通設定などから行っていきましょう。

Laravelの設定ファイル変更

まずはLaravelのデフォルト設定を変えるためにconfig/app.phpの下記の通り変更してください。

// 'UTC'から'Asia/Tokyo'に変更
'timezone' => 'Asia/Tokyo',

// 'en'から'ja'に変更
'locale' => 'ja',

// 'en_US'から'ja_JP'に変更
'faker_locale' => 'ja_JP',

ついでに日本時間に対応させるためにタイムゾーンも変更しておきました。

ちなみに、'fallback_locale' => 'en',の部分はそのままでOKです。
この設定は、もしもlocaleで指定した言語の設定が無かった場合に設定する言語のことですので、enのままでOKです!

langディレクトリの作成

Laravelはデフォルトでlangディレクトリを用意していないので、まずはどちらの方法を採用する場合でも下記のコマンドを実行してlangディレクトリを作成してください。

# Laravel sailで環境構築をしている人向けコマンド
$ ./vendor/bin/sail php artisan lang:publish

# Laravel sail以外で環境構築をしている人向けコマンド
$ php artisan lang:publish

コマンドの実行に成功するとlangディレクトリとlangディレクトリ内にenディレクトリが作成されており、その中にauth.phppagination.phppasswords.phpvalidation.phpの4つのファイルが作成されます。

これで日本語化する準備は完璧です。

ja.jsonの作成

まずは1つ目の方法であるja.json内に日本語の設定を記述する方法から解説していきます。

さっそくlangディレクトリ内にja.jsonファイルを作成してください。
コマンドで作成する場合はプロジェクトフォルダ下で下記のコマンドを実行してください。

$ touch lang/ja.json

JSONファイルの作成が完了したら、lang/ja.jsonを下記の通り編集してみましょう!

{
    "Email": "メールアドレス",
    "Password": "パスワード",
    "Remember me": "ログイン情報を保存する",
    "Forgot your password?": "パスワードを忘れた方はこちら",
    "Log in": "ログイン"
}

これでlocalhost/loginにアクセスすると、下記画像のように日本語化されていることが確認できます。

これだけで日本語化できちゃうの?って感じですよね。

ちなみに、ja.json"Email": "メールアドレス""Forgot your password?": "パスワードを忘れた方はこちら"と記述して、なぜ日本語化できたのかというと、ログイン画面のBladeファイルはresources/views/auth/login.blade.phpであり、その中で"__('Email')"{{ __('Forgot your password?') }}と記述されているので、それらの英文に合った翻訳をja.jsonに記述することで元ファイルを変更することなく日本語化することができます。

ただし、このように1ファイルずつ確かめていくのはとても困難なので、2つ目の方法がとても役に立ちます。

各種言語ファイルを設置する

次は各種言語ファイルを設置して翻訳する方法を解説していきます。

下記GitHubで日本語の翻訳ファイルを公開していただいているので、ありがたくこちらを使用させていただきます!
使用する際はぜひスターも押しておきましょう!

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

使い方はGitHubのREADME.mdにも書いてありますが、下記の手順で導入することが可能です。

# Laravel sailで環境構築をしている人向けコマンド
$ ./vendor/bin/sail composer require askdkc/breezejp --dev
$ ./vendor/bin/sail php artisan breezejp

# Laravel sail以外で環境構築をしている人向けコマンド
$ composer require askdkc/breezejp --dev
$ php artisan breezejp

2つ目のコマンドを実行すると、下記のようにGitHubのリポジトリにスターをするか聞かれるので、スターを送る場合は「yes」を入力し、送らない場合は「no」を入力してキーボードの「Enter」を押してください。

Laravel Breeze用に日本語翻訳ファイルを準備します
config/app.phpのlocaleをjaにします

 GitHubリポジトリにスターの御協力をお願いします🙏 (yes/no) [yes]:
 > yes

下記のメッセージが出力されれば日本語化は完了です。

日本語ファイルのインストールが完了しました!

動作確認

それでは、実際に日本語化されているかの動作確認をしていきましょう。

langディレクトリ内に新たにjaディレクトリが作成されており、その中にauth.phppagination.phppasswords.phpvalidation.phpの4つのファイルが作成されているはずです。

さらにlangディレクトリ内ja.jsonも作成されており、中身が記述されています。

これらが確認できたら、ログイン画面や新規登録画面などにアクセスして日本語化がされているかを確認しましょう!

めちゃいい感じに日本語化されていますね!

もし翻訳内容をカスタマイズしたい場合はauth.phppagination.phppasswords.phpvalidation.phpja.jsonの該当する箇所をカスタマイズすればOKです!

例えば、ja.json"Name": "名前""Name": "お名前"とするだけで、登録画面の「名前」が「お名前」に変換されます。

もしcomposer require askdkc/breezejp –devでエラーが起こった場合

もしcomposer require askdkc/breezejp --devのコマンドでエラーが起こった際には手動で導入することも可能です。

langディレクトリ内にjaディレクトリを作成して、その中にauth.phppagination.phppasswords.phpvalidation.phpの4つのファイルを作成してください。

そして、それらのファイルの中身を下記からコピーして、各ファイルに貼り付けてください。

GitHub
breezejp/stubs/lang/ja at main · askdkc/breezejp Laravel Breeze(+Laravel UIとJetstream)を一瞬で日本語化し、言語切替機能も提供するパッケージです / Laravelの各種バリデーションメッセージも日本語化するのでBreeze無...

また、langディレクトリ内にja.jsonファイルを作成し、下記から内容をコピーしてja.jsonファイルにペーストしてください。

GitHub
breezejp/stubs/lang at main · askdkc/breezejp Laravel Breeze(+Laravel UIとJetstream)を一瞬で日本語化し、言語切替機能も提供するパッケージです / Laravelの各種バリデーションメッセージも日本語化するのでBreeze無...

もちろん先ほど説明した設定ファイルであるconfig/app.phpの変更はしておいてくださいね!

最後に

Laravelは数ステップでログイン機能を実装できて、数ステップで日本語化までできるなんてとても便利ですよね!

ぜひLaravelを使い倒しちゃってくださいね!

無料プログラミング学習コミュニティー

なお、ファドが所属しているDiscordの無料プログラミングコミュニティー「TOMONI CODE」では、プログラミングを学習している方から、現役エンジニア、フリーランスエンジニアの方がワイワイ交流しています。

未経験の方の転職支援やフリーランスになりたい方への案件紹介支援などもしておりますので、ぜひ参加してみてください!

Discord
Discordサーバー「TOMONI CODE」に参加しよう! プログラミングを学習する人のための勉強部屋的なコミュニティー | 9人のメンバー

コメント

    この記事が気に入ったら
    フォローしてね!

    よかったらシェアしてね!
    • URLをコピーしました!

    コメント

    コメントする

    目次