2014-09-25 58 views
2

無論何時我使用trans()函數從validation.php文件返回特定翻譯,它都可以正常工作。我的應用程序中有兩種語言,翻譯會返回給他們。Laravel - 驗證本地化不起作用

但是,無論何時使用Laravel驗證程序,它只會以默認語言環境返回消息。有什麼我需要在驗證器中指定?我如何使它適用於兩種語言?

回答

0

您需要將第三個參數作爲您的翻譯。假設您已經定義的字段,規則和驗證像下面的代碼:

$data = Input::only('title'); 
$rules['title'] = 'required|min:20|max:80', 
$validator = Validator::make($data, $rules, 
      Lang::get('forms.validation.entry')); 

現在,您需要定義您的翻譯。讓我們假設你需要翻譯fr郎所以你需要共同創建lang/fr/forms.php文件,並把下面的內容到它:

<?php 

return 

array (
    'validation' => array (
    'entry' => array (
     'title.required' => 'Your translation for title required', 
     'title.min' => 'Your translation for title min', 
     'title.max' => 'Your translation for title max', 
    ) 
) 
); 

當然你也可以用更簡單的陣列創建的文件,但它只是例子 - 而不是forms.validation.entry它可能是例如只是formsvalidation

0

問題來自我的本地化實施。我已將App::setLocale(Session::get('lang'));添加到filters.php文件中的App::before()方法中,並且它現在全部可用。

+0

我想你應該接受這個答案! – 2017-03-07 12:37:14