質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Q&A

解決済

1回答

3347閲覧

【PHP laravel】フォーム入力バリデーションの英語表示→日本語表示

privia

総合スコア5

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

0グッド

0クリップ

投稿2020/02/08 01:16

編集2020/02/09 12:10

前提・実現したいこと

PHP laravel5.5でタスク共有のスケジュールサイトを作成しています。
フォーム入力のバリデーションのエラー表示言語を英語→日本語にしたいです。

発生している問題・エラーメッセージ

エラーは発生していないのですが、バリデーションを日本語化する内容を検索し実行しましたが英語表示のままで変わりません。

該当のソースコード

resources/lang以下にenフォルダーをコピーしjaフォルダ名にして日本語化を公開しているgithubからファイルを書き換えました。
ソースコード

<?php return [ /* |-------------------------------------------------------------------------- | Validation Language Lines |-------------------------------------------------------------------------- | | The following language lines contain the default error messages used by | the validator class. Some of these rules have multiple versions such | as the size rules. Feel free to tweak each of these messages here. | */ 'accepted' => ':attributeを承認してください。', 'active_url' => ':attributeには有効なURLを指定してください。', 'after' => ':attributeには:date以降の日付を指定してください。', 'after_or_equal' => ':attributeには:dateかそれ以降の日付を指定してください。', 'alpha' => ':attributeには英字のみからなる文字列を指定してください。', 'alpha_dash' => ':attributeには英数字・ハイフン・アンダースコアのみからなる文字列を指定してください。', 'alpha_num' => ':attributeには英数字のみからなる文字列を指定してください。', 'array' => ':attributeには配列を指定してください。', 'before' => ':attributeには:date以前の日付を指定してください。', 'before_or_equal' => ':attributeには:dateかそれ以前の日付を指定してください。', 'between' => [ 'numeric' => ':attributeには:min〜:maxまでの数値を指定してください。', 'file' => ':attributeには:min〜:max KBのファイルを指定してください。', 'string' => ':attributeには:min〜:max文字の文字列を指定してください。', 'array' => ':attributeには:min〜:max個の要素を持つ配列を指定してください。', ], 'boolean' => ':attributeには真偽値を指定してください。', 'confirmed' => ':attributeが確認用の値と一致しません。', 'date' => ':attributeには正しい形式の日付を指定してください。', 'date_format' => '":format"という形式の日付を指定してください。', 'different' => ':attributeには:otherとは異なる値を指定してください。', 'digits' => ':attributeには:digits桁の数値を指定してください。', 'digits_between' => ':attributeには:min〜:max桁の数値を指定してください。', 'dimensions' => ':attributeの画像サイズが不正です。', 'distinct' => '指定された:attributeは既に存在しています。', 'email' => ':attributeには正しい形式のメールアドレスを指定してください。', 'exists' => '指定された:attributeは存在しません。', 'file' => ':attributeにはファイルを指定してください。', 'filled' => ':attributeには空でない値を指定してください。', 'image' => ':attributeには画像ファイルを指定してください。', 'in' => ':attributeには:valuesのうちいずれかの値を指定してください。', 'in_array' => ':attributeが:otherに含まれていません。', 'integer' => ':attributeには整数を指定してください。', 'ip' => ':attributeには正しい形式のIPアドレスを指定してください。', 'ipv4' => ':attributeには正しい形式のIPv4アドレスを指定してください。', 'ipv6' => ':attributeには正しい形式のIPv6アドレスを指定してください。', 'json' => ':attributeには正しい形式のJSON文字列を指定してください。', 'max' => [ 'numeric' => ':attributeには:max以下の数値を指定してください。', 'file' => ':attributeには:max KB以下のファイルを指定してください。', 'string' => ':attributeには:max文字以下の文字列を指定してください。', 'array' => ':attributeには:max個以下の要素を持つ配列を指定してください。', ], 'mimes' => ':attributeには:valuesのうちいずれかの形式のファイルを指定してください。', 'mimetypes' => ':attributeには:valuesのうちいずれかの形式のファイルを指定してください。', 'min' => [ 'numeric' => ':attributeには:min以上の数値を指定してください。', 'file' => ':attributeには:min KB以上のファイルを指定してください。', 'string' => ':attributeには:min文字以上の文字列を指定してください。', 'array' => ':attributeには:min個以上の要素を持つ配列を指定してください。', ], 'not_in' => ':attributeには:valuesのうちいずれとも異なる値を指定してください。', 'numeric' => ':attributeには数値を指定してください。', 'present' => ':attributeには現在時刻を指定してください。', 'regex' => '正しい形式の:attributeを指定してください。', 'required' => ':attributeは必須です。', 'required_if' => ':otherが:valueの時:attributeは必須です。', 'required_unless' => ':otherが:values以外の時:attributeは必須です。', 'required_with' => ':valuesのうちいずれかが指定された時:attributeは必須です。', 'required_with_all' => ':valuesのうちすべてが指定された時:attributeは必須です。', 'required_without' => ':valuesのうちいずれかがが指定されなかった時:attributeは必須です。', 'required_without_all' => ':valuesのうちすべてが指定されなかった時:attributeは必須です。', 'same' => ':attributeが:otherと一致しません。', 'size' => [ 'numeric' => ':attributeには:sizeを指定してください。', 'file' => ':attributeには:size KBのファイルを指定してください。', 'string' => ':attributeには:size文字の文字列を指定してください。', 'array' => ':attributeには:size個の要素を持つ配列を指定してください。', ], 'string' => ':attributeには文字列を指定してください。', 'timezone' => ':attributeには正しい形式のタイムゾーンを指定してください。', 'unique' => 'その:attributeはすでに使われています。', 'uploaded' => ':attributeのアップロードに失敗しました。', 'url' => ':attributeには正しい形式のURLを指定してください。', /* |-------------------------------------------------------------------------- | Custom Validation Language Lines |-------------------------------------------------------------------------- | | Here you may specify custom validation messages for attributes using the | convention "attribute.rule" to name the lines. This makes it quick to | specify a specific custom language line for a given attribute rule. | */ 'custom' => [ 'attribute-name' => [ 'rule-name' => 'custom-message', ], ], /* |-------------------------------------------------------------------------- | Custom Validation Attributes |-------------------------------------------------------------------------- | | The following language lines are used to swap attribute place-holders | with something more reader friendly such as E-Mail Address instead | of "email". This simply helps us make messages a little cleaner. | */ 'attributes' => [ 'email' => 'メールアドレス', 'password' => 'パスワード', ], ];

また、config/app.phpの内容もen→jaに変更しています。

<?php ~略~ */ 'locale' => 'ja', /* |-------------------------------------------------------------------------- | Application Fallback Locale |-------------------------------------------------------------------------- | | The fallback locale determines the locale to use when the current one | is not available. You may change the value to correspond to any of | the language folders that are provided through your application. | */ 'fallback_locale' => 'ja', /* |-------------------------------------------------------------------------- | Encryption Key |-------------------------------------------------------------------------- | | This key is used by the Illuminate encrypter service and should be set | to a random, 32 character string, otherwise these encrypted strings | will not be safe. Please do this before deploying an application! | */

app/Http/Controllers/Auth/RegisterController.php(抜粋)

protected function validator(array $data) { return Validator::make($data, [ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', ]);

app/Http/Controllers/TasksController.php(抜粋)

public function store(Request $request) { $this->validate($request, [ 'title' =>'required|max:20', 'start_date' => 'required', 'start_time' => 'required', 'end_date' =>'required', 'end_time' =>'required', 'place' => 'required|max:20', 'content' => 'required|max:191', ]); $request->user()->tasks()->create([ 'title' => $request->title, 'start_date' =>$request->start_date, 'start_time' =>$request->start_time, 'end_date' =>$request->end_date, 'end_time' =>$request->end_time, 'place' =>$request->place, 'content'=>$request->content, ]); return redirect('/'); ~略~ public function update(Request $request, $id) { $this->validate($request, [ 'title' =>'required|max:20', 'start_date' => 'required', 'start_time' => 'required', 'end_date' =>'required', 'end_time' =>'required', 'place' => 'required|max:20', 'content' => 'required|max:191', ]); $task = Task::find($id); if (\Auth::id() !== $task->user_id) { return redirect('/'); } $task->title = $request->title; $task->start_date = $request->start_date; $task->start_time = $request->start_time; $task->end_date = $request->end_date; $task->end_time = $request->end_time; $task->place = $request->place; $task->content = $request->content; $task->save(); return redirect('/'); }

試したこと

他の簡単なタスクリストを表示させるサイトを作っていたプロジェクトでは上記を変更した場合、日本語化はできました。

今回のスケジュールサイトではフルカレンダーのライブラリを使用していますが、他は関係ありそうな所がみつかりませんでした。

下記githubソースコードです。
https://github.com/yuji1291/connect.git

もしよろしければ、問題解決になりそうなアドバイスありましたらお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/02/08 02:33

バリデーションのコードもご提示ください
m.ts10806

2020/02/08 21:00

コメント欄ではマークダウン使えませんし、デフォルト非表示なので目につきにくいです。 質問編集して質問に追記してください
guest

回答1

0

ベストアンサー

上がっているGitのソース見てみましたが、質問に書いてあるconfigの設定やlangディレクトリ以下に該当のjaディレクトリがなかったですがそこが反映されてないとかじゃないんですかね?
あとファイル名がvalidation.php以外になっているとか

個人的には翻訳版のバリデーションエラーメッセージは使い勝手よくないので、FormRequestを実装してそこに独自のバリデーションエラーメッセージを書くやり方のほうがおおいです。
参考:バリデーション 5.5 Laravel

投稿2020/02/08 04:46

編集2020/02/08 05:55
sola-msr

総合スコア876

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

privia

2020/02/08 21:01

回答遅くなり申し訳ありません。jaディレクトリがないのはgithubにpushしていなかった為です。申し訳ありません、ですが上記は実装してあって表示が変わらないことは確認してます。 FormRequestですか、、、試してみます。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問