Laravel多语言验证

时间:2015-12-13 09:12:49

标签: laravel laravel-5.1

我尝试使用其他语言并显示错误消息的验证。我使用以下内容在fa目录上创建lang文件夹:

/lang/fa/validation.php:

/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/

'attributes' => [
    'customer_unique_id'        => 'شناسه یونیک',
    'captcha-image'             => 'کد امنیتی',
],

/lang/en/validation.php:

/*
|--------------------------------------------------------------------------
| Custom Validation Attributes
|--------------------------------------------------------------------------
|
| The following language lines are used to swap attribute place-holders
| with something more reader friendly such as E-Mail Address instead
| of "email". This simply helps us make messages a little cleaner.
|
*/

'attributes' => [
    'customer_unique_id'        => 'Unique ID',
    'captcha-image'             => 'Captcha code',
],

app.php文件中的配置语言:

'locale' => 'fa',
'fallback_locale' => 'fa',

但我的laravel只显示en语言。

简单使用:

Route::post('auth', [
    'as' => 'auth', function () {
        $rules = [
            'username' => 'required',
            'password' => 'required',
            'captcha-image' => 'required|captcha',
        ];
        $validator = Validator::make(Request::all(), $rules);
        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)
                ->withInput();
        }
    }
]);

完整fa / validation.php:

<?php
return [
    'accepted'             => 'The :attribute must be accepted.',
    'active_url'           => 'The :attribute is not a valid URL.',
    'after'                => 'The :attribute must be a date after :date.',
    'alpha'                => 'The :attribute may only contain letters.',
    'alpha_dash'           => 'The :attribute may only contain letters, numbers, and dashes.',
    'alpha_num'            => 'The :attribute may only contain letters and numbers.',
    'array'                => 'The :attribute must be an array.',
    'before'               => 'The :attribute must be a date before :date.',
    'between'              => [
        'numeric' => 'The :attribute must be between :min and :max.',
        'file'    => 'The :attribute must be between :min and :max kilobytes.',
        'string'  => 'The :attribute must be between :min and :max characters.',
        'array'   => 'The :attribute must have between :min and :max items.',
    ],
    'boolean'              => 'The :attribute field must be true or false.',
    'confirmed'            => 'The :attribute confirmation does not match.',
    'date'                 => 'The :attribute is not a valid date.',
    'date_format'          => 'The :attribute does not match the format :format.',
    'different'            => 'The :attribute and :other must be different.',
    'digits'               => 'The :attribute must be :digits digits.',
    'digits_between'       => 'The :attribute must be between :min and :max digits.',
    'email'                => 'The :attribute must be a valid email address.',
    'exists'               => 'The selected :attribute is invalid.',
    'filled'               => 'The :attribute field is required.',
    'image'                => 'The :attribute must be an image.',
    'in'                   => 'The selected :attribute is invalid.',
    'integer'              => 'The :attribute must be an integer.',
    'ip'                   => 'The :attribute must be a valid IP address.',
    'json'                 => 'The :attribute must be a valid JSON string.',
    'max'                  => [
        'numeric' => 'The :attribute may not be greater than :max.',
        'file'    => 'The :attribute may not be greater than :max kilobytes.',
        'string'  => 'The :attribute may not be greater than :max characters.',
        'array'   => 'The :attribute may not have more than :max items.',
    ],
    'mimes'                => 'The :attribute must be a file of type: :values.',
    'min'                  => [
        'numeric' => 'The :attribute must be at least :min.',
        'file'    => 'The :attribute must be at least :min kilobytes.',
        'string'  => 'The :attribute must be at least :min characters.',
        'array'   => 'The :attribute must have at least :min items.',
    ],
    'not_in'               => 'The selected :attribute is invalid.',
    'numeric'              => 'The :attribute must be a number.',
    'regex'                => 'The :attribute format is invalid.',
    'required'             => 'The :attribute field is required.',
    'required_if'          => 'The :attribute field is required when :other is :value.',
    'required_unless'      => 'The :attribute field is required unless :other is in :values.',
    'required_with'        => 'The :attribute field is required when :values is present.',
    'required_with_all'    => 'The :attribute field is required when :values is present.',
    'required_without'     => 'The :attribute field is required when :values is not present.',
    'required_without_all' => 'The :attribute field is required when none of :values are present.',
    'same'                 => 'The :attribute and :other must match.',
    'size'                 => [
        'numeric' => 'The :attribute must be :size.',
        'file'    => 'The :attribute must be :size kilobytes.',
        'string'  => 'The :attribute must be :size characters.',
        'array'   => 'The :attribute must contain :size items.',
    ],
    'string'               => 'The :attribute must be a string.',
    'timezone'             => 'The :attribute must be a valid zone.',
    'unique'               => 'The :attribute has already been taken.',
    'url'                  => 'The :attribute format is invalid.',

    'custom' => [
        'attribute-name' => [
            'rule-name' => 'custom-message',
        ],
    ],

    'attributes' => [
        'customer_unique_id'        => '<span style="color:#ffff00"><b>شناسه معرفی کننده</b></span>',
        'customer_web_url'          => '<span style="color:#ffff00"><b>آدرس سایت معرفی کننده</b></span>',
        'captcha-image'             => '<span style="color:#ffff00"><b>کد امنیتی</b></span>',
    ],

];

完整en / validation.php:

return [
        'accepted'             => 'The :attribute must be accepted.',
        'active_url'           => 'The :attribute is not a valid URL.',
        'after'                => 'The :attribute must be a date after :date.',
        'alpha'                => 'The :attribute may only contain letters.',
        'alpha_dash'           => 'The :attribute may only contain letters, numbers, and dashes.',
        'alpha_num'            => 'The :attribute may only contain letters and numbers.',
        'array'                => 'The :attribute must be an array.',
        'before'               => 'The :attribute must be a date before :date.',
        'between'              => [
            'numeric' => 'The :attribute must be between :min and :max.',
            'file'    => 'The :attribute must be between :min and :max kilobytes.',
            'string'  => 'The :attribute must be between :min and :max characters.',
            'array'   => 'The :attribute must have between :min and :max items.',
        ],
        'boolean'              => 'The :attribute field must be true or false.',
        'confirmed'            => 'The :attribute confirmation does not match.',
        'date'                 => 'The :attribute is not a valid date.',
        'date_format'          => 'The :attribute does not match the format :format.',
        'different'            => 'The :attribute and :other must be different.',
        'digits'               => 'The :attribute must be :digits digits.',
        'digits_between'       => 'The :attribute must be between :min and :max digits.',
        'email'                => 'The :attribute must be a valid email address.',
        'exists'               => 'The selected :attribute is invalid.',
        'filled'               => 'The :attribute field is required.',
        'image'                => 'The :attribute must be an image.',
        'in'                   => 'The selected :attribute is invalid.',
        'integer'              => 'The :attribute must be an integer.',
        'ip'                   => 'The :attribute must be a valid IP address.',
        'json'                 => 'The :attribute must be a valid JSON string.',
        'max'                  => [
            'numeric' => 'The :attribute may not be greater than :max.',
            'file'    => 'The :attribute may not be greater than :max kilobytes.',
            'string'  => 'The :attribute may not be greater than :max characters.',
            'array'   => 'The :attribute may not have more than :max items.',
        ],
        'mimes'                => 'The :attribute must be a file of type: :values.',
        'min'                  => [
            'numeric' => 'The :attribute must be at least :min.',
            'file'    => 'The :attribute must be at least :min kilobytes.',
            'string'  => 'The :attribute must be at least :min characters.',
            'array'   => 'The :attribute must have at least :min items.',
        ],
        'not_in'               => 'The selected :attribute is invalid.',
        'numeric'              => 'The :attribute must be a number.',
        'regex'                => 'The :attribute format is invalid.',
        'required'             => 'The :attribute field is required.',
        'required_if'          => 'The :attribute field is required when :other is :value.',
        'required_unless'      => 'The :attribute field is required unless :other is in :values.',
        'required_with'        => 'The :attribute field is required when :values is present.',
        'required_with_all'    => 'The :attribute field is required when :values is present.',
        'required_without'     => 'The :attribute field is required when :values is not present.',
        'required_without_all' => 'The :attribute field is required when none of :values are present.',
        'same'                 => 'The :attribute and :other must match.',
        'size'                 => [
            'numeric' => 'The :attribute must be :size.',
            'file'    => 'The :attribute must be :size kilobytes.',
            'string'  => 'The :attribute must be :size characters.',
            'array'   => 'The :attribute must contain :size items.',
        ],
        'string'               => 'The :attribute must be a string.',
        'timezone'             => 'The :attribute must be a valid zone.',
        'unique'               => 'The :attribute has already been taken.',
        'url'                  => 'The :attribute format is invalid.',


        'custom' => [
            'attribute-name' => [
                'rule-name' => 'custom-message',
            ],
        ],


        'attributes' => [
            'customer_unique_id'        => '<span style="color:#ffff00"><b>Unique ID</b></span>',
            'captcha-image'             => '<span style="color:#ffff00"><b>Captcha code</b></span>',

        ],
    ];

1 个答案:

答案 0 :(得分:0)

如果您不使用英语验证 将en / validation.php翻译成perisan。
如果您有多语言,请在app.php中添加此代码

'alt_langs' => array ('en', 'fr','fa','ar'),

当然你翻译了fa / validation

的这一部分
 'required'             => 'The :attribute field is required.',