如何在Laravel 5.2中为多语言设置自定义验证消息?

时间:2016-10-25 22:42:25

标签: laravel laravel-5.2

我的网站有三种语言['英语','波斯语',#39;阿拉伯语']。

例如:

Request

/**
 * Determine if the user is authorized to make this request.
 *
 * @return bool
 */
public function authorize()
{
    return true;
}

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        'mobile' => 'required|max:11|min:11',
        'register_id' => 'required|max:7|min:7'
    ];
}

我想在用户选择语言后,将以所选语言显示错误消息。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果您想在laravel应用中使用其他语言,则可以使用内置本地化:

https://laravel.com/docs/5.2/localization

修改

出于您的目的,我会像这样接近它。

首先,在resources/lang中创建您的语言文件夹,例如,为您添加messages.php resource/lang/ar的阿拉伯语消息

我不确定您是如何存储用户语言的,所以我假设它以lang的形式存储在会话中。

现在,您可以创建中间件来检查用户选择的语言并设置区域设置:

public function handle($request, Closure $next)
{
    // set language from session
    \App::setLocale(session('lang'));
    return $next($request);
}

现在将其注册为:app\Kernal.php

中的全局中间件

现在,您的app应根据会话中的“lang”值自动在每个请求之前设置区域设置。确保您设置了fallback_locale,以便您的应用知道如果您的用户没有设置区域设置该怎么做。