検索
ホームページPHPフレームワークLaravel中国語のlaravel変更検証プロンプト

Laravel は、オープンソースの PHP Web アプリケーション フレームワークであり、簡潔なコード、理解しやすく学習しやすい、革新性に満ちているという特徴があるため、ますます多くの開発者に歓迎されています。その中でも、検証は Laravel フレームワークの非常に重要な部分であり、開発者がユーザーによって送信されたフォーム データを検証し、保護するのに役立ちます。ただし、Laravel のデフォルトの検証プロンプト情報はすべて英語であり、中国語のサイトで使用するには不便です。次に、Laravel フレームワークの検証プロンプト情報を中国語に変更する方法について説明します。

0. はじめに

正式な変更作業を開始する前に、いくつかの概念を明確にする必要があります。

まず、Laravel フレームワークのデフォルトのバリデーターは IlluminateValidationValidator です。

2 番目に、Symfony フレームワークのバリデーターコンポーネントは、Laravel フレームワークでデフォルトで使用されます。

第三に、Laravel フレームワーク自体は、バリデーターのメッセージ配列の変更、言語パックの使用など、検証プロンプト情報を変更するためのさまざまな方法を提供します。

1. バリデーターのメッセージ配列を変更する

Laravel フレームワークでは、すべての検証プロンプト情報を保存する Validator クラスにメッセージ配列があります。配列を変更して、検証プロンプト情報を変更します。以下はサンプル コードです:

$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 メソッドを使用してバリデータを作成し、3 つの検証ルールを設定します: 名前は必須で、長さは 255 文字を超えてはなりません; 電子メールは必須であり、有効な電子メール アドレスである必要があり、ユーザー テーブル内で一意である必要があります。パスワードは必須で、パスワードの確認が必要で、長さは 6 文字以上である必要があります。次に、 $validator->messages()->add メソッドを呼び出して新しいプロンプト メッセージを追加し、電子メール フィールドに固有の検証ルールが失敗した場合に、「電子メール アドレスが登録されました。よろしくお願いします」というプロンプトを表示するように指定しました。他の電子メール アドレスを使用してください。」 このようにして、検証プロンプト情報を柔軟に変更できます。

このメソッドを使用して変更されたプロンプト情報は、現在のバリデーターが作成されたときにのみ有効になることに注意してください。すべてのバリデーターに対して有効にする必要がある場合は、各バリデーターに追加する必要があります。

2. 言語パックを使用する

Validator でメッセージ配列を直接変更することに加えて、Laravel には、言語パックを使用する、検証プロンプト情報を変更する別の便利な方法も用意されています。 Laravel フレームワークは、英語、スペイン語、フランス語、ドイツ語、日本語、中国語などを含む複数の言語パッケージをデフォルトで提供します。言語パック内で対応する確認プロンプト情報を見つけて変更できます。

Laravel での言語パックの使用は非常に簡単で、resources/lang ディレクトリに対応する言語パック フォルダーを作成するだけで、検証プロンプト情報の変更を開始できます。たとえば、検証プロンプト情報を中国語に変更する必要がある場合は、resources/lang ディレクトリに zh-CN フォルダーを作成し、このフォルダーに validation.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 不一致。',
];

上記のコードでは、required や max などの複数の検証ルールのプロンプト情報を定義します。この情報は、ユーザーが送信したフォームデータを検証し、検証が失敗した場合にプロンプ​​トを表示するために Laravel フレームワークで使用されます。このメソッドは、各 Validator オブジェクトに検証プロンプト情報を追加せずに、サイト全体で検証プロンプト情報を変更する場合により適しています。

3. Symfony 検証コンポーネントの翻訳

上記の 2 つの方法に加えて、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 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
フルスタック開発のためのLaravelに代わるもの:フレームワークの比較フルスタック開発のためのLaravelに代わるもの:フレームワークの比較Apr 30, 2025 am 12:26 AM

laravelの代替品を探している場合、node.jswithexpress.js、django、rubyonrails、asp.netcoreはオプションのオプションです。 1.Node.jswithExpress.jsは、高性能とスケーラビリティを必要とするプロジェクトに適しています。 2.Djangoは、迅速な開発と完全な機能を必要とするプロジェクトに適しています。 3.ルビヨンレールは、迅速なプロトタイピングと柔軟な開発に適しています。 4. ASP.Netcoreは、交通量の多いものやクロスプラットフォーム開発に適していますが、学習曲線は急です。

プロジェクト管理パワーハウス:分散チームを整理して順調に保ちますプロジェクト管理パワーハウス:分散チームを整理して順調に保ちますApr 30, 2025 am 12:20 AM

keychallengesingragingdistributedteamsarecommunicationgaps、timezonedifferences、andtaskmanagement.projectmanagementtoolshelpoverpovercometheChallengesby:1)EnhancingCommunicationSlongPlatformslikeslackandMicrosoftteams、2)

遠くからの管理:分散型チームを効果的に主導し、力を与える遠くからの管理:分散型チームを効果的に主導し、力を与えるApr 30, 2025 am 12:12 AM

リモートチームをリードするための鍵は、テクノロジーを使用し、信頼を築き、パーソナライズされた戦略を開発することです。 1)コミュニケーションツールとタスク管理システムを使用して、明確なタスク割り当てとステータスの更新を確保します。 2)非同期コミュニケーションを介して燃え尽きを避け、生産性を向上させます。 3)明確な目標を承認および設定することにより、チームメンバーをインセンティブします。 4)チームの満足度とコラボレーションに注意を払い、包括的な検査を定期的に実施します。

技術的なトラブル:分散型チームメンバーのツールとリソースへの公平なアクセスを確保する技術的なトラブル:分散型チームメンバーのツールとリソースへの公平なアクセスを確保するApr 29, 2025 am 12:40 AM

分散したチームメンバーがツールやリソースに公正にアクセスできるようにする方法には、次のものが含まれます。1)接続の問題を解決するために、非同期ビデオやテキストの更新などの低帯域幅の代替品を使用します。 2)コアの重複労働時間を設定し、タイムゾーンの違いを管理するための柔軟な労働時間を提供する。 3)翻訳機能と文化的啓発トレーニングを通じて、さまざまな文化的ニーズに適応します。これらの戦略は、包括的で効率的なリモート作業環境の作成に役立ちます。

インスタントメッセージング必須ヘイブ:リモート設定でのリアルタイム通信の促進インスタントメッセージング必須ヘイブ:リモート設定でのリアルタイム通信の促進Apr 29, 2025 am 12:38 AM

forenhancingRemoteCollaboration、anintantmessagingToolMusthave:1)信頼性のforconsistmessagedelivery、2)Anintuitiveuserfaceforeasynavigation、3)real-timeNotificationStayUpdated、4)SeamlessefileSharing forefficientDocumentexchange、5)統合

分散型チームで働いている間に課題に直面したことはありますか?分散型チームで働いている間に課題に直面したことはありますか?Apr 29, 2025 am 12:35 AM

ManagingDistributedTeamSiscommunication.toAddressthis、Usetoolslikeslack、Zoom、andgithub; setClearExpectations; fostertrustandautonomy; emplional asynchronousworkpatterns; and integreatetaskManagementionwithCommunicationPlatfortfortforfoltivedive

新しいLaravelバージョンのセキュリティ改善は何ですか?新しいLaravelバージョンのセキュリティ改善は何ですか?Apr 29, 2025 am 12:17 AM

Laravelの最新バージョンは、以下を含むセキュリティを大幅に改善しました。1。CSRF保護の強化は、より堅牢なトークン検証メカニズムを介して。 2。強化されたクエリ構築方法を通じて、SQL注入保護の改善。 3.ユーザーデータセキュリティを確保するためのセッション暗号化の改善。 4。認証システムの改善、より細かい粒状ユーザー認証と多要素認証(MFA)をサポートします。

タイムゾーンタンゴ:グローバルな労働力におけるスケジューリングの競合をナビゲートするタイムゾーンタンゴ:グローバルな労働力におけるスケジューリングの競合をナビゲートするApr 29, 2025 am 12:13 AM

ConchedulingConflictsinaglobalworkforce、usetechnology、共感、および戦略的計画:1)1)雇用を採用しています

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境