每当我使用trans()
函数从validation.php
文件返回特定的翻译时,它就能完美地运行。我的应用程序中有两种语言,两种语言都会返回。
但是,每当我使用Laravel验证器时,它只返回默认语言环境中的消息。我需要在验证器中指定一些内容吗?如何使它适用于这两种语言?
答案 0 :(得分:0)
您需要将翻译作为第3个参数传递。我们假设您已经定义了您的字段,规则和验证器,如下面的代码所示:
$data = Input::only('title');
$rules['title'] = 'required|min:20|max:80',
$validator = Validator::make($data, $rules,
Lang::get('forms.validation.entry'));
现在您需要定义翻译。我们假设您需要fr
lang的翻译,因此您需要共同创建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
。
答案 1 :(得分:0)
问题源于我的本地化实施。我已将App::setLocale(Session::get('lang'));
添加到App::before()
文件中的filters.php
方法,现在一切正常。
答案 2 :(得分:0)
在resources / lang / en文件夹中laravel具有validation.php。创建新语言时,可以将该文件复制到新创建的语言文件夹中,然后将其编辑为该语言。
例如,您想创建fr语言
。
/resources/lang/fr/validation.php and translate it to this language