Laravel은 여러 언어를 지원하는 미들웨어를 포함하여 다양한 편리한 기능과 도구를 제공하는 널리 사용되는 PHP 프레임워크입니다. 이 기사에서는 미들웨어를 사용하여 Laravel의 다중 언어 지원을 구현하는 방법을 자세히 설명하고 몇 가지 구체적인 코드 예제를 제공합니다.
먼저, Laravel의 언어 팩이 여러 언어를 지원할 수 있도록 구성해야 합니다. Laravel에서 언어 패키지는 일반적으로 resources/lang 디렉토리에 배치되며, 각 언어에는 해당 하위 디렉토리가 있습니다. 예를 들어 영어와 프랑스어를 지원하려면 resources/lang 디렉터리에 en과 fr이라는 두 개의 하위 디렉터리를 만들어야 합니다.
그런 다음 각 하위 디렉터리에 번역하려는 모든 문자열이 포함된 message.php 파일을 만들어야 합니다. 예를 들어 en 디렉토리에 message.php 파일을 다음과 같이 생성합니다.
return [ 'welcome' => 'Welcome to my website!', 'about' => 'About us', 'contact' => 'Contact us', ];
다음으로, fr 디렉토리에 message.php 파일을 다음과 같이 생성합니다.
return [ 'welcome' => 'Bienvenue sur mon site web!', 'about' => 'À propos de nous', 'contact' => 'Contactez-nous', ];
이렇게 언어 패키지를 구성했습니다. 다음으로, 다중 언어 지원을 구현하기 위한 미들웨어를 작성해야 합니다.
Laravel에서는 미들웨어를 사용하여 요청을 처리할 수 있습니다. 따라서 사용자의 언어 설정을 확인하고 해당 설정에 따라 적절한 언어 팩을 로드하는 미들웨어를 만들 수 있습니다. 다음은 간단한 미들웨어 예입니다.
<?php namespace AppHttpMiddleware; use Closure; use IlluminateHttpRequest; class SetLanguage { public function handle(Request $request, Closure $next) { // 检查请求中是否设置了语言参数 $language = $request->input('lang', 'en'); // 检查语言包是否存在 if (!in_array($language, ['en', 'fr'])) { abort(400, 'Invalid language'); } // 设置当前语言 app()->setLocale($language); // 继续处理请求 return $next($request); } }
이 미들웨어는 요청의 lang 매개변수를 읽고 해당 값에 따라 현재 언어를 설정합니다. 요청에 lang 매개변수가 없으면 기본값은 영어입니다. 요청에 잘못된 언어가 지정되면 HTTP 400 오류가 반환됩니다.
이 미들웨어를 다음과 같이 app/Http/Kernel.php 파일에 등록할 수 있습니다:
protected $middlewareGroups = [ 'web' => [ AppHttpMiddlewareSetLanguage::class, // ... ], // ... ];
이러한 방식으로 각 요청은 이 미들웨어를 거쳐 현재 언어를 설정합니다.
언어 팩과 미들웨어를 구성했으므로 이제 코드에서 다국어 문자열을 사용할 수 있습니다. Laravel은 현재 언어에 따라 해당 문자열을 선택할 수 있는 번역 함수 trans()를 제공합니다. 예를 들어 뷰에서 사용할 수 있습니다:
<h1>{{ trans('messages.welcome') }}</h1>
이 예에서 trans() 함수는 현재 언어를 기반으로 해당 "환영" 문자열을 선택하고, 현재 언어가 영어인 경우 "환영합니다"를 반환합니다. 내 웹사이트!”, 프랑스어에서는 “Bienvenue sur mon site web!”이 반환됩니다.
뷰 외에도 컨트롤러, 양식 유효성 검사기, 이메일 템플릿 등 어디에서나 trans() 함수를 사용할 수 있습니다.
요약
이 글에서는 Laravel의 미들웨어를 사용하여 다국어 지원을 구현하는 방법을 소개하고 몇 가지 구체적인 코드 예제를 제공했습니다. 이 접근 방식을 사용하면 애플리케이션에 다국어 기능을 쉽게 추가할 수 있습니다.
위 내용은 Laravel에서 다국어 지원을 위해 미들웨어를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!