LoginSignup
20
14

More than 3 years have passed since last update.

Laravel 日本語化

Last updated at Posted at 2019-03-15

背景

Laravelの日本語化(localization)について、記事がいっぱいあったのですが、
なぜか、凄く基本のメインページの”Register”を日本語化する記事がなくて困ったので、記事にしておきます。

動作確認環境

  • PHP 7.1
  • Laravel 5.7

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

  • PHP 7.2
  • Laravel 6.0 でも動確済み(※)

※updateの際のTIPSを末尾に記載しておきます。

設定

Laravel全体の環境変数を日本語に変える

config/app.php ファイル内の変数値を変更

config/app.php
'locale' => 'ja',

エラーメッセージの変更

この説明の記事はいっぱいある。
resources/lang/enの各ファイルを
resources/lang/jaフォルダを作って、そこにコピーし、翻訳していきましょう。

※更にGitHubとかに翻訳されたファイルを公開してくれている優しい方々がいるので、探すと効率的に作業ができます。

laravel_dire_1.jpg

なぜだ??

regi.jpg
ここまできて、右上に鎮座し、一番目立って、気になる"Register"を直したいのにできない。
色々調べてやっと分かったので、こちらに記載しておきます。

Registerの日本語化

resources/langにja.jsonファイルをjson-baseで作ればいいのでした。
laravel_dire_2.jpg

ファイルの中身はこんな感じです。

ja.json
{
    "Register":"登録",
    "Login":"ログイン"
}

Laravelトラップ

Laravelの5.7で

php artisan make:auth

をして、認証周りを使うと思いますが、このとき、作られるnavbarとなる
views/layouts/app.blade.phpファイルはきちんとDouble Underscore (__) Helper Functionを使って記載してくれていますが、

views/layouts/app.blade.php
@if (Route::has('register'))
                                <li class="nav-item">
                                    <a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
                                </li>
                            @endif

views/welcome.blade.phpページは、なんと

views/welcome.blade.php
@if (Route::has('register'))
    <a href="{{ route('register') }}">Register</a>
@endif

となっていますので、気を付けてください。
ここは、設定では、変わらないので、__()に書き換えてからください。

views/welcome.blade.php
@if (Route::has('register'))
    <a href="{{ route('register') }}">{{ __('Register') }}</a>
@endif

laravel 6.0へのUpdateの際のTips

日本語対応しているとLang::getFromJson()関数を使っている(はず)。
これが、バージョンアップの際に、影響を受ける(※1)ので、プログラムコード自体の変更が必要になります(※2)。

※1 Laravel 6.x アップグレードガイド
※2 上記で記載したプログラムコードにおいては変更はない。

詳しくは、
https://qiita.com/shikigamix/items/438104f62f29b9876faa
を参照してください。
私も参考にさせて頂きました(ありがとうございます)。

20
14
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
14