2016-10-25 73 views
0

我的網站有三種語言['英語','波斯語','阿拉伯語']。如何在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

編輯:

你的目的,我想接近它喜歡這個。

首先,在resources/lang創建語言文件夾,例如,你阿拉伯語的消息,你會放置一個messages.phpresource/lang/ar

我不知道你是如何存儲用戶的語言,所以我會以爲這是作爲lang存儲在會話中。

現在你可以創建中間件來檢查用戶選擇的語言,並設置語言環境:

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

現在註冊,作爲全球中間件:app\Kernal.php

現在你app自動應各自之前設置的語言環境請求根據會話中的「lang」值進行。確保你有fallback_locale設置,這樣你的應用就知道如果你的用戶沒有設置語言環境該怎麼做。

相關問題