Laravel에서 다중 언어 앱을 구축하기 위해 현지화를 사용하는 방법
리소스/lang/en 및 리소스/lang/es와 같은 디렉토리를 작성하고 Messages.php 언어 파일을 정의합니다. 2. config/app.php에서 기본 언어 로케일 및 대체 언어 fallback_locale을 설정합니다. 3. app :: setlocale ()을 사용하여 언어를 동적으로 전환하고 미들웨어를 결합하여 세션 또는 요청 헤더에 따라 자동으로 설정하십시오. 4. 다국어 URL을 구현하기 위해 {locale} 접두사를 라우팅 패킷에 추가하고 템플릿에서 현지화 된 링크를 생성합니다. 5. __ () 함수 또는 @lang 지시문을 사용하여 컨트롤러 및 뷰에서 번역을 호출하여 복수 양식을 지원합니다. 6. 선택적으로 Artisan 명령 또는 타사 패키지를 사용하여 번역을 관리합니다. 7. 생산 환경에서는 캐시 구성을 통해 성능을 향상시킬 수 있습니다. 언어 파일을 합리적으로 정리하고, 사용자 언어 환경 설정을 조기 탐지하고, 스위칭 메커니즘을 제공하고, 미들웨어와 라우팅 패킷을 결합하면 명확한 다국어 응용 프로그램 경험을 구축 할 수 있습니다.
Laravel의 내장 현지화 기능을 사용할 때 Laravel에 다중 언어 앱을 구축하는 것이 간단합니다. 적절한 현지화 설정을 사용하면 사용자 기본 설정 또는 시스템 설정에 따라 여러 언어로 컨텐츠를 제공 할 수 있습니다. Laravel에서 현지화를 효과적으로 사용하여 다국어 응용 프로그램을 구축하는 방법은 다음과 같습니다.
1. 언어 파일을 설정하십시오
Laravel은 resources/lang
디렉토리에 언어 문자열을 저장합니다. 각 언어에는 자체 하위 디렉토리 (예 : en
, es
, fr
)가 있습니다. 이 폴더를 만들고 언어 파일을 PHP 배열로 정의하여 시작하십시오.
예를 들어:
/자원 /랭 /en messages.php /es messages.php
/resources/lang/en/messages.php
:
<? php 반품 [ '환영'=> '응용 프로그램에 오신 것을 환영합니다', '프로필'=> '사용자 프로필', ];
/resources/lang/es/messages.php
:
<? php 반품 [ '환영'=> 'bienvenido a nuestra amplicación', '프로필'=> 'Perfil de Usuario', ];
이제 __()
도우미 또는 @lang
블레이드 지침을 사용 하여이 문자열에 액세스 할 수 있습니다.
echo __ ( 'messages.welcome'); // 출력 : 응용 프로그램에 오신 것을 환영합니다
블레이드에서 :
<h1> @lang ( 'messages.welcome') </h1>
2. 기본 및 지원되는 언어를 구성하십시오
config/app.php
에서 기본 로케일을 설정하십시오.
'locale'=> 'en', 'fallback_locale'=> 'en',
resources/lang
에서 더 많은 언어 디렉토리를 추가하여 추가 언어를 지원할 수 있습니다.
동적 스위칭을 허용하려면 사용자가 선호하는 언어를 저장하거나 감지해야합니다. 일반적인 접근법은 다음과 같습니다.
- URL 세그먼트 (예 :
/es/dashboard
) - 세션 기반 선호도
- 사용자 프로필 설정
- 브라우저 허용 언어 헤더
3. 언어를 동적으로 스위치
런타임시 앱 언어를 변경하려면 App::setLocale()
메소드를 사용하십시오.
예를 들어, 미들웨어 또는 컨트롤러에서 :
Illuminate \ support \ Facades \ App을 사용하십시오. route :: get ( '/language/{locale}', function ($ locale) { if (in_array ($ locale, [ 'en', 'es', 'fr'])) { app ()-> setlocale ($ locale); 세션 ()-> put ( 'locale', $ locale); } return redirect ()-> back (); });
모든 요청에서 로케일을 설정하기 위해 미들웨어를 만들 수도 있습니다.
// app/http/middleware/setlocale.php 클래스 setLocale { 공개 기능 핸들 ($ request, $ next) { $ locale = 세션 ( 'locale') ?? $ request-> getPreferredLanguage ([ 'en', 'es', 'fr']); app ()-> setlocale ($ locale); return $ 다음 ($ 요청); } }
web
에서 app/Http/Kernel.php
에 미들웨어를 등록하십시오.
4. 언어 별 경로 및 URL을 사용하십시오
URL에 언어를 포함시키기 위해 로케일 접두사가있는 그룹 경로 :
route :: group ([ 'prefix'=> '{locale}', 'middleware'=> 'setlocale'], function () { route :: get ( '/dashboard', [dashboardcontroller :: class, 'index']); route :: get ( '/profile', [profilecontroller :: class, 'show']); });
블레이드 템플릿에서 현지화 된 URL을 생성합니다.
<a href = "{route ( 'dashboard', [ 'locale'=> 'es']}}"> ir al panel </a>
컨트롤러의 {locale}
매개 변수를 처리하거나 기본 컨트롤러를 사용하여 관리하십시오.
5. 뷰 및 컨트롤러의 번역을 처리하십시오
코드의 어느 곳에서나 __()
함수를 사용하십시오.
// 컨트롤러에서 return view ( '대시 보드', [ 'title'=> __ ( 'messages.profile') ]); // 유효성 검사 메시지에서 $ validated = $ request-> validate ([[[ '이메일'=> '필수 | 이메일' ], [ 'email.required'=> __ ( 'validation.email_required') ]);
복수화를 위해 Laravel은 언어 파일을 통해이를 지원합니다.
// resources/lang/en/messages.php 'comment'=> '{0} 댓글 없음 | {1} 한 주석 | [2,*] : count 댓글', // 용법 echo trans_choice ( 'message.comments', $ count);
6. Artisan을 사용하여 번역을 관리하십시오 (선택 사항)
Laravel에는 내장 번역 관리자가 포함되어 있지 않지만 laravel-lang/lang
또는 astrotomic/laravel-translatable
과 같은 패키지를 만들 수 있습니다.
간단한 앱의 경우 언어 파일을 수동으로 관리하는 것으로 충분합니다.
7. 생산의 캐시 번역
제작시 언어 파일을 캐시하여 더 나은 성능을 제공 할 수 있습니다.
PHP Artisan 구성 : 캐시
참고 : 번역 파일은 기본적으로 캐시되지 않지만 필요한 경우 패키지를 사용하거나 사용자 정의 솔루션을 작성할 수 있습니다.
Laravel의 현지화 시스템을 사용하면 여러 언어를 쉽게 지원할 수 있습니다. 언어 파일을 명확하게 구성하고, 사용자 언어를 조기에 감지하고, 언어를 전환하는 방법을 제공하는 데 중점을 둡니다. 미들웨어 및 경로 그룹화를 사용하면 깨끗하고 현지화 된 사용자 경험을 구축 할 수 있습니다.
기본적으로 복잡하지 않습니다. 일관된 파일 구조와 스마트 로케일 스위칭.
위 내용은 Laravel에서 다중 언어 앱을 구축하기 위해 현지화를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT
더 현명한 결정을 위한 AI 기반 투자 연구

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravelusesmonologtomessagesviathelogfacade, witlefaultLogsStoredInstorage/logss/laRavel.log.configureChannelSinconfig/logging.phptocontroloutput; thedefaultStackChannelAggatesmultipleAndlerLerslikesingle, whitesLog

installlaravelsanctumviacomposerandpublishitsfiles, thenrunmigrations.2.addehasapitokenstraittotheusermodel.3

installpestviacomposerandinitializeitinlaraveltoseTestesting.2.createfeateRetesteStests/featureTovalIdateUser-facingintercations-httprequestsanddatabasechangesingpest 's syntax의 简洁 구문.

ToimplementApiAuthenticationwithlaravelsanctum, youneedtosetuptoken 기반 Authenticaticationathathallowsspas, mobileApps 및 third-partyservicestosecureLycessyourapi.sanctumprovidesalightweightighiSibescan

toimplementfull-textsearchinlaravel, firstAddafull-textIndexintheMiGrationusing $ table-> fullText ([ 'title', 'content']); whenUsewherefullText ([ 'title', 'content'], $ query) Inqueriesforeforficientsection;

AcountryCanaccessAllPostsTroughsUssUshoussUsinghasmanythrough.forexample, withcountries, 사용자 및 포스트 스테이블 링크는 thecountryModelDefinesAhasmanythroughroughlationSphipostviAuser, enableficientindirectDatarectrievalacrosstwoone-to-manyelatio

Laravel Resource Controller는 RESTFul 라우팅을 통해 CRUD 작업을 신속하게 처리하고 Artisan Command를 사용하여 컨트롤러 및 리소스 경로를 생성하며 단일 코드 라인에서 모든 표준 경로를 생성 할 수 있으며, 이는 작업 제한을 지원하고 미들웨어 및 이름 지정을 추가하며, 라우팅 모델 바인딩을 자동으로 파라미터를 파라미터로 향상시키고 개발 구조를 정리할 수 있습니다.

Redirect () 헬퍼 함수를 사용하여 Redirect ()-> Route ( 'home')와 같은 Laravel 컨트롤러에서 리디렉션을 실현하여 지정된 경로로 점프하고 지정된 URL로 리디렉션 ( '/dashboard'), reidirect ()-> read ()를 이전 페이지로 반환하고 sectain ()를 유지하고 ()를 유지하고 ()를 사용하여 세션 메시지를 전달합니다. 유지 관리 가능성을 향상시키기 위해 명명 된 경로를 사용하는 것이 좋습니다.
