Maison  >  Article  >  cadre php  >  laravel modifie l'invite de vérification en chinois

laravel modifie l'invite de vérification en chinois

WBOY
WBOYoriginal
2023-05-29 10:20:081047parcourir

Laravel est un framework d'application Web PHP open source. Il présente les caractéristiques d'un code concis, facile à comprendre et à apprendre, et plein d'innovation, il est donc bien accueilli par de plus en plus de développeurs. Parmi eux, la validation est une partie très importante du framework Laravel, qui aide les développeurs à vérifier et à protéger les données des formulaires soumis par les utilisateurs. Cependant, les invites de vérification par défaut de Laravel sont toutes en anglais, ce qui n'est pas pratique pour une utilisation sur les sites chinois. Nous verrons ensuite comment modifier les invites de vérification du framework Laravel en chinois.

0. Introduction

Avant de commencer le travail de modification formelle, nous devons clarifier plusieurs concepts.

Tout d'abord, le validateur par défaut du framework Laravel est IlluminateValidationValidator.

Deuxièmement, le composant validateur du framework Symfony est utilisé par défaut dans le framework Laravel.

Troisièmement, le framework Laravel lui-même fournit une variété de méthodes pour modifier les informations d'invite de vérification, telles que la modification du tableau de messages dans le validateur, l'utilisation de packs de langue, etc.

1. Modifiez le tableau de messages dans le validateur

Dans le framework Laravel, il existe un tableau de messages dans la classe Validator, qui stocke toutes les informations d'invite de vérification lors de l'utilisation de la classe Validator. Validator , nous pouvons modifier les informations d'invite de vérification en modifiant le tableau. Voici un exemple de code :

$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', '该邮箱已被注册,请使用其他邮箱。'
);

Dans le code ci-dessus, nous utilisons la méthode Validator::make pour créer un validateur et définir trois règles de validation : le nom est requis et la longueur ne dépasse pas 255 caractères. ; l'adresse e-mail est requise, doit être une adresse e-mail légale et unique dans la table des utilisateurs ; le mot de passe est requis, confirmez le mot de passe et ne doit pas comporter moins de 6 caractères. Ensuite, nous avons ajouté un nouveau message d'invite en appelant la méthode $validator->messages()->add, spécifiant que lorsque la règle de validation unique du champ email échoue, elle doit demander "L'adresse e-mail a été enregistrée, veuillez utiliser d'autres adresses e-mail." De cette façon, nous pouvons modifier de manière flexible les informations de l'invite de vérification.

Il convient de noter que les informations d'invite modifiées à l'aide de cette méthode ne prendront effet que lorsque le validateur actuel sera créé. Si elles doivent prendre effet pour tous les validateurs, elles doivent être modifiées dans chaque validateur. Ajoutez-le à nouveau.

2. Utiliser le pack de langue

En plus de modifier directement le tableau des messages dans Validator, Laravel fournit également une autre méthode pratique pour modifier les informations de l'invite de vérification, c'est-à-dire en utilisant la langue Sac. Le framework Laravel fournit par défaut plusieurs packages linguistiques, notamment l'anglais, l'espagnol, le français, l'allemand, le japonais, le chinois, etc. Nous pouvons trouver les informations d'invite de vérification correspondantes dans le module linguistique et les modifier.

L'utilisation des packs de langue dans Laravel est très simple. Il vous suffit de créer le dossier du pack de langue correspondant dans le répertoire resources/lang pour commencer à modifier les informations de l'invite de vérification. Par exemple, si nous devons modifier les informations d'invite de vérification en chinois, nous devons créer le dossier zh-CN dans le répertoire resources/lang, créer le fichier validation.php dans ce dossier, puis écrire les informations d'invite de vérification modifiées. allez dans ce fichier. L'exemple de code est le suivant :

<?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 不一致。',
];

Dans le code ci-dessus, nous définissons des informations d'invite pour plusieurs règles de vérification telles que obligatoire et max. Ces informations seront utilisées dans le framework Laravel pour vérifier les données du formulaire soumises par l'utilisateur et avertir en cas d'échec de la vérification. Cette méthode est plus adaptée pour modifier les informations d’invite de vérification à l’échelle du site, sans les ajouter à chaque objet Validator.

3. Traduction du composant de vérification Symfony

En plus des deux méthodes ci-dessus, le composant de vérification Symfony fournit également une fonction de traduction intégrée. intégrez-le dans le framework Laravel Les informations d'invite de vérification sont traduites en chinois.

Pour utiliser la fonction de traduction du composant de vérification Symfony, nous devons d'abord installer le composant symfony/traduction, comme suit :

composer require symfony/translation

Ensuite, nous devons configurer le traducteur dans le framework Laravel, Ajoutez le code suivant dans la méthode de démarrage de la classe 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;
    }
}

Dans le code ci-dessus, nous utilisons la fonction de traduction fournie par le composant de vérification Symfony dans AppServiceProvider. Parmi eux, nous avons défini la langue du traducteur sur le chinois et chargé le fichier de traduction validators.zh.xlf fourni avec le composant de vérification Symfony. Dans la méthode getTranslatorMessages, nous définissons les messages d'invite de vérification qui doivent être traduits. De cette manière, lorsque le framework Laravel valide les données du formulaire, le composant de traduction Symfony traduira automatiquement les informations d'invite de validation anglaise en chinois.

Il est à noter que cette méthode est plus gênante et nécessite l'installation de nouveaux composants et la modification de la classe ServiceProvider du framework Laravel.

4. Résumé

Les méthodes ci-dessus permettent de modifier les informations d'invite de vérification du framework Laravel, notamment la modification directe du tableau de messages dans Validator, l'utilisation de modules linguistiques et la traduction de la vérification Symfony. composants, etc. Différentes méthodes conviennent à différents scénarios et vous pouvez choisir en fonction de vos propres besoins.

Dans le développement réel, nous utilisons généralement une combinaison des méthodes ci-dessus, telles que l'ajout d'informations d'invite de vérification personnalisées dans le validateur, et leur remplacement et leur ajustement dans le pack de langue, afin d'assurer la précision qu'il fournit contrôle centralisé et peut faciliter la gestion et la maintenance de l’ensemble du site.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn