Laravel - 翻译身份验证和表单验证

时间:2017-07-27 04:49:42

标签: php laravel

我已经生成了默认的Laravel auth模块,但我希望能够以不同的语言使用它。 在lang下我可以看到auth.phppasswords.php有一些错误消息,我能够创建自己的lang文件夹并翻译它们。但这似乎不完整。我也希望翻译我的观点中的所有内容,但它似乎是硬编码的。例如,在login.blade.php中,电子邮件的标签如下所示:

<label for="email" class="col-md-4 control-label">E-Mail Address</label>

我的问题是,为什么auth模块只部分在翻译文件中,其余部分是硬编码的?我是误解了某些东西,还是解决方案真的要添加&#34;电子邮件&#34;转换文件并更改视图如下:

@lang(&#39; auth.email&#39)

另外一个问题是关于视图中的验证弹出窗口。例如,如果我没有填写任何行并按登录,则弹出窗口显示"Please fill out this field"。这是从哪里来的,我该如何翻译呢?

1 个答案:

答案 0 :(得分:2)

Auth包中的翻译与尝试登录,重置密码等时返回给用户的标准消息有关。

如果您要翻译字段名称,错误消息等,则可以通过在resources/lang/{lang_code}下创建自己的语言文件,或下载社区内共享的语言文件来实现。例如,this repo

至于在模板中使用翻译,您可以使用trans帮助程序。请参阅以下示例,其中lang.login.email将映射到语言文件中的值:

<label for="email" class="col-md-4 control-label">{{ trans('lang.login.email') }}</label>


// resources/lang/en/lang.php
return [
    'login' => [
        'email' => 'Email address',
    ],
];