2016-10-25 7 views
0

私のウェブサイトは3つの言語[英語、ペルシア語、アラビア語]を持っています。例えばLaravel 5.2で多言語対応のカスタム検証メッセージを設定する方法は?

Request

/** 
* Determine if the user is authorized to make this request. 
* 
* @return bool 
*/ 
public function authorize() 
{ 
    return true; 
} 

/** 
* Get the validation rules that apply to the request. 
* 
* @return array 
*/ 
public function rules() 
{ 
    return [ 
     'mobile' => 'required|max:11|min:11', 
     'register_id' => 'required|max:7|min:7' 
    ]; 
} 

私はしたいが、ユーザが言語を選択した後、エラーメッセージが選択した言語で表示されます。

どうすればよいですか?

+1

ローカリゼーションのドキュメントを読んだことがありますか? https://laravel.com/docs/5.2/localization –

+0

@craig_hありがとう、スタックオーバーフローで答えを挿入してください、私はしたいと思います... – mySun

+0

@craig_hありがとう、私は2分後に受け入れることができます:-) Laravelで言語を変更する方法は? – mySun

答えて

1

あなたは、あなたがローカライズに建て使用することができ、あなたのlaravelアプリで異なる言語を使用したい場合:

https://laravel.com/docs/5.2/localization

EDIT:あなたの目的のために

を、私はそれに近づくだろうこのような。

まず、resources/langにあなたの言語のフォルダを作成し、たとえば、アラビア語のメッセージのためにあなたがmessages.phpresource/lang/ar

を置くだろう、私はあなたがユーザー言語を保存しているかわからないので、私はそれがだと仮定しますセッションにはlangとして保存されます。

今、あなたは、ユーザー選択した言語をチェックして、ロケールを設定するミドルウェアを作成することができます。今すぐapp\Kernal.php

あなたappがそれぞれの前にロケールを自動的に設定する必要があります。

public function handle($request, Closure $next) 
{ 
    // set language from session 
    \App::setLocale(session('lang')); 
    return $next($request); 
} 

今では世界的なミドルウェアとしてのレジスタセッションの 'lang'値に基づいてリクエストします。ユーザーがロケールセットを持っていない場合、あなたのアプリが何をするかを知るように、fallback_localeが設定されていることを確認してください。

関連する問題