Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
13
Help us understand the problem. What are the problem?

Laravel 日本語化

背景

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
を参照してください。
私も参考にさせて頂きました(ありがとうございます)。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
13
Help us understand the problem. What are the problem?