>  기사  >  PHP 프레임워크  >  laravel 중국어 수정 확인 프롬프트

laravel 중국어 수정 확인 프롬프트

WBOY
WBOY원래의
2023-05-29 10:20:081047검색

Laravel은 코드가 간결하고 이해하기 쉽고 혁신이 풍부하다는 특징을 지닌 오픈 소스 PHP 웹 애플리케이션 프레임워크로 점점 더 많은 개발자들의 환영을 받고 있습니다. 그중에서도 유효성 검사는 Laravel 프레임워크의 매우 중요한 부분으로 개발자가 사용자가 제출한 양식 데이터를 확인하고 보호하는 데 도움이 됩니다. 다만, 라라벨의 기본 확인 프롬프트 정보는 모두 영어로 되어 있어 중국어 사이트에서 사용하기 불편합니다. 다음으로, 라라벨 프레임워크의 확인 프롬프트 정보를 중국어로 수정하는 방법에 대해 알아보겠습니다.

0. 소개

정식 수정 작업을 시작하기 전에 몇 가지 개념을 명확히 해야 합니다.

먼저 Laravel 프레임워크의 기본 유효성 검사기는 IlluminateValidationValidator입니다.

둘째, Laravel 프레임워크에서는 Symfony 프레임워크의 유효성 검사기 구성 요소가 기본적으로 사용됩니다.

셋째, Laravel 프레임워크 자체에서는 유효성 검사기의 메시지 배열 수정, 언어 팩 사용 등 확인 메시지 정보를 수정하는 다양한 방법을 제공합니다.

1. 유효성 검사기에서 메시지 배열 수정

Laravel 프레임워크에는 모든 확인 프롬프트 정보를 저장하는 메시지 배열이 있습니다. 유효성 검사기를 사용할 때 배열을 수정하여 수정할 수 있습니다. 신속한 정보. 다음은 샘플 코드입니다.

$validator = Validator::make($request->all(), [
    'name' => 'required|max:255',
    'email' => 'required|email|unique:users,email',
    'password' => 'required|confirmed|min:6',
]);

$validator->messages()->add(
    'email.unique', '该邮箱已被注册,请使用其他邮箱。'
);

위 코드에서는 Validator::make 메소드를 사용하여 유효성 검사기를 만들고 세 가지 유효성 검사 규칙을 설정합니다. 이름은 필수이고 길이는 255자를 초과해서는 안 됩니다. 합법적인 이메일 주소여야 하며 사용자 테이블에서 고유해야 합니다. 비밀번호가 필요하고 비밀번호를 확인해야 하며 길이는 6자 이상이어야 합니다. 그런 다음 $validator->messages()->add 메소드를 호출하여 이메일 필드의 고유한 유효성 검사 규칙이 실패할 경우 "이메일 주소가 등록되었습니다. 다른 이메일 주소를 사용하세요." 이러한 방식으로 확인 프롬프트 정보를 유연하게 수정할 수 있습니다.

이 방법을 사용하여 수정된 프롬프트 정보는 현재 유효성 검사기가 생성될 때만 적용된다는 점에 유의하세요. 모든 유효성 검사기에 적용하려면 각 유효성 검사기에 추가해야 합니다.

2. 언어 팩 사용

Validator에서 메시지 배열을 직접 수정하는 것 외에도 Laravel은 확인 프롬프트 정보를 수정하는 또 다른 편리한 방법, 즉 언어 팩을 사용하는 방법도 제공합니다. Laravel 프레임워크는 기본적으로 영어, 스페인어, 프랑스어, 독일어, 일본어, 중국어 등을 포함한 여러 언어 패키지를 제공합니다. 언어팩에서 해당 확인 프롬프트 정보를 찾아 수정할 수 있습니다.

Laravel에서 언어 팩을 사용하는 것은 매우 간단합니다. 확인 프롬프트 정보 수정을 시작하려면 resources/lang 디렉토리에 해당 언어 팩 폴더를 생성하기만 하면 됩니다. 예를 들어 확인 프롬프트 정보를 중국어로 변경해야 하는 경우 resources/lang 디렉터리에 zh-CN 폴더를 생성하고 이 폴더에 유효성 검사.php 파일을 생성한 다음 수정된 확인 프롬프트 정보를 작성해야 합니다. 이 파일로 이동하세요. 샘플 코드는 다음과 같습니다.

<?php
// resources/lang/zh-CN/validation.php

return [
    'required' => ' :attribute 为必填项。',
    'max' => [
        'numeric' => ' :attribute 不能大于 :max。',
        'file' => ' :attribute 不能大于 :max kb。',
        'string' => ' :attribute 不能超过 :max 个字符。',
        'array' => ' :attribute 不能超过 :max 个项。',
    ],
    'email' => ' :attribute 必须为合法的邮箱地址。',
    'unique' => ' :attribute 已存在,请使用其他 :attribute。',
    'confirmed' => '两次输入的 :attribute 不一致。',
];

위 코드에서는 필수, 최대값 등 여러 검증 규칙에 대한 프롬프트 정보를 정의합니다. 이 정보는 Laravel 프레임워크에서 사용자가 제출한 양식 데이터를 확인하고 확인이 실패할 때 메시지를 표시하는 데 사용됩니다. 이 방법은 각 유효성 검사기 개체에 추가하지 않고 사이트 전체에서 확인 프롬프트 정보를 수정하는 데 더 적합합니다.

3. Symfony 검증 컴포넌트 번역

위의 두 가지 방법 외에도 Symfony 검증 컴포넌트는 내장된 번역 기능을 사용하여 Laravel 프레임워크의 검증 프롬프트 정보를 중국어로 번역할 수 있습니다.

Symfony 검증 컴포넌트의 번역 기능을 사용하려면 먼저 다음과 같이 Symfony/translation 컴포넌트를 설치해야 합니다.

composer require symfony/translation

그런 다음 Laravel 프레임워크에서 번역기를 설정하고 부팅에 다음 코드를 추가해야 합니다. AppServiceProvider 클래스의 메서드:

use IlluminateSupportFacadesLang;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        $this->app->singleton('translator', function($app){
            $loader = new SymfonyComponentTranslationLoaderArrayLoader;
            $translator = new SymfonyComponentTranslationTranslator('zh');
            $translator->addLoader('array', $loader);
            $translator->addResource('array', require __DIR__ . '/../vendor/symfony/validator/Resources/translations/validators.zh.xlf', 'zh');
            $loader->load($this->getTranslatorMessages());

            return new IlluminateTranslationTranslator($translator);
        });
    }

    public function getTranslatorMessages()
    {
        $messages = [
            'required' => ':attribute 为必填项。',
            'max' => [
                'numeric' => ':attribute 不能大于 :max。',
            ],
            'email' => ':attribute 必须为合法的邮箱地址。',
            'unique' => ':attribute 已存在,请使用其他 :attribute。',
            'confirmed' => '两次输入的 :attribute 不一致。',
        ];

        return $messages;
    }
}

위 코드에서는 AppServiceProvider의 Symfony 검증 구성 요소에서 제공하는 번역 기능을 사용합니다. 그 중 번역기의 언어를 중국어로 설정하고 Symfony 검증 컴포넌트와 함께 제공되는 번역 파일 validators.zh.xlf를 로드했습니다. getTranslatorMessages 메소드에서는 번역해야 하는 확인 프롬프트 메시지를 정의합니다. 이러한 방식으로 Laravel 프레임워크가 양식 데이터의 유효성을 검사할 때 Symfony 번역 구성 요소는 자동으로 영어 유효성 검사 프롬프트 정보를 중국어로 번역합니다.

이 방법은 더 까다롭고 새 구성 요소를 설치하고 Laravel 프레임워크의 ServiceProvider 클래스를 수정해야 한다는 점에 유의해야 합니다.

4. 요약

위는 Validator에서 메시지 배열을 직접 수정하고, 언어팩을 사용하고, Symfony 검증 컴포넌트를 번역하는 등 Laravel 프레임워크 검증 프롬프트 정보를 수정하는 방법입니다. 다양한 방법은 다양한 시나리오에 적합하며 필요에 따라 선택할 수 있습니다.

실제 개발에서는 대개 Validator에서 맞춤형 검증 프롬프트 정보를 추가하고, 언어 패키지에서 이를 재정의하고 조정하는 등 위의 방법을 조합하여 사용하는데, 이는 세련된 제어를 보장할 수 있을 뿐만 아니라 편리하게 관리 및 유지 관리할 수 있습니다. 전체 사이트.

위 내용은 laravel 중국어 수정 확인 프롬프트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:laravel 쿼리 최대다음 기사:laravel 쿼리 최대