無論何時我使用trans()
函數從validation.php
文件返回特定翻譯,它都可以正常工作。我的應用程序中有兩種語言,翻譯會返回給他們。Laravel - 驗證本地化不起作用
但是,無論何時使用Laravel驗證程序,它只會以默認語言環境返回消息。有什麼我需要在驗證器中指定?我如何使它適用於兩種語言?
無論何時我使用trans()
函數從validation.php
文件返回特定翻譯,它都可以正常工作。我的應用程序中有兩種語言,翻譯會返回給他們。Laravel - 驗證本地化不起作用
但是,無論何時使用Laravel驗證程序,它只會以默認語言環境返回消息。有什麼我需要在驗證器中指定?我如何使它適用於兩種語言?
您需要將第三個參數作爲您的翻譯。假設您已經定義的字段,規則和驗證像下面的代碼:
$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
它可能是例如只是forms
或validation
。
問題來自我的本地化實施。我已將App::setLocale(Session::get('lang'));
添加到filters.php
文件中的App::before()
方法中,並且它現在全部可用。
我想你應該接受這個答案! – 2017-03-07 12:37:14