2

每当我使用该trans()函数从文件中返回特定翻译时validation.php,它都能完美运行。我的应用程序中有两种语言,并且两种语言的翻译都会返回。

但是,每当我使用 Laravel 验证器时,它只会返回默认语言环境中的消息。我需要在验证器中指定什么吗?如何使它适用于两种语言?

4

3 回答 3

2

您需要将翻译作为第三个参数传递。假设您已经定义了字段、规则和验证器,如下面的代码:

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

现在您需要定义您的翻译。假设您需要frlang 的翻译,因此您需要共同创建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例如 justformsvalidation.

于 2014-09-25T15:47:55.023 回答
0

问题源于我的本地化实施。我已经添加App::setLocale(Session::get('lang'));到文件中的App::before()方法中,filters.php现在一切正常。

于 2014-09-25T19:05:29.643 回答
0

在资源/lang/en 文件夹 laravel 中有validation.php。当您创建新语言时,您可以将此文件复制到新创建的语言文件夹,然后将其编辑为此语言。

例如你想创建 fr 语言

.

/resources/lang/fr/validation.php and translate it to this language
于 2018-07-07T06:49:31.400 回答