목차
1. 언어 파일을 설정하십시오
2. 기본 및 지원되는 언어를 구성하십시오
3. 언어를 동적으로 스위치
4. 언어 별 경로 및 URL을 사용하십시오
5. 뷰 ​​및 컨트롤러의 번역을 처리하십시오
6. Artisan을 사용하여 번역을 관리하십시오 (선택 사항)
7. 생산의 캐시 번역
PHP 프레임워크 Laravel Laravel에서 다중 언어 앱을 구축하기 위해 현지화를 사용하는 방법

Laravel에서 다중 언어 앱을 구축하기 위해 현지화를 사용하는 방법

Sep 02, 2025 am 04:54 AM

리소스/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에 다중 언어 앱을 구축하는 것이 간단합니다. 적절한 현지화 설정을 사용하면 사용자 기본 설정 또는 시스템 설정에 따라 여러 언어로 컨텐츠를 제공 할 수 있습니다. Laravel에서 현지화를 효과적으로 사용하여 다국어 응용 프로그램을 구축하는 방법은 다음과 같습니다.


1. 언어 파일을 설정하십시오

Laravel은 resources/lang 디렉토리에 언어 문자열을 저장합니다. 각 언어에는 자체 하위 디렉토리 (예 : en , es , fr )가 있습니다. 이 폴더를 만들고 언어 파일을 PHP 배열로 정의하여 시작하십시오.

예를 들어:

 /자원
    /랭
        /en
            messages.php
        /es
            messages.php

/resources/lang/en/messages.php :

 <? php

반품 [
    &#39;환영&#39;=> &#39;응용 프로그램에 오신 것을 환영합니다&#39;,
    &#39;프로필&#39;=> &#39;사용자 프로필&#39;,
];

/resources/lang/es/messages.php :

 <? php

반품 [
    &#39;환영&#39;=> &#39;bienvenido a nuestra amplicación&#39;,
    &#39;프로필&#39;=> &#39;Perfil de Usuario&#39;,
];

이제 __() 도우미 또는 @lang 블레이드 지침을 사용 하여이 문자열에 액세스 할 수 있습니다.

 echo __ ( &#39;messages.welcome&#39;); // 출력 : 응용 프로그램에 오신 것을 환영합니다

블레이드에서 :

 <h1> @lang ( &#39;messages.welcome&#39;) </h1>

2. 기본 및 지원되는 언어를 구성하십시오

config/app.php 에서 기본 로케일을 설정하십시오.

 &#39;locale&#39;=> &#39;en&#39;,
&#39;fallback_locale&#39;=> &#39;en&#39;,

resources/lang 에서 더 많은 언어 디렉토리를 추가하여 추가 언어를 지원할 수 있습니다.

동적 스위칭을 허용하려면 사용자가 선호하는 언어를 저장하거나 감지해야합니다. 일반적인 접근법은 다음과 같습니다.

  • URL 세그먼트 (예 : /es/dashboard )
  • 세션 기반 선호도
  • 사용자 프로필 설정
  • 브라우저 허용 언어 헤더

3. 언어를 동적으로 스위치

런타임시 앱 언어를 변경하려면 App::setLocale() 메소드를 사용하십시오.

예를 들어, 미들웨어 또는 컨트롤러에서 :

 Illuminate \ support \ Facades \ App을 사용하십시오.

route :: get ( &#39;/language/{locale}&#39;, function ($ locale) {
    if (in_array ($ locale, [ &#39;en&#39;, &#39;es&#39;, &#39;fr&#39;])) {
        app ()-> setlocale ($ locale);
        세션 ()-> put ( &#39;locale&#39;, $ locale);
    }

    return redirect ()-> back ();
});

모든 요청에서 로케일을 설정하기 위해 미들웨어를 만들 수도 있습니다.

 // app/http/middleware/setlocale.php

클래스 setLocale
{
    공개 기능 핸들 ($ request, $ next)
    {
        $ locale = 세션 ( &#39;locale&#39;) ?? $ request-> getPreferredLanguage ([ &#39;en&#39;, &#39;es&#39;, &#39;fr&#39;]);

        app ()-> setlocale ($ locale);

        return $ 다음 ($ 요청);
    }
}

web 에서 app/Http/Kernel.php 에 미들웨어를 등록하십시오.


4. 언어 별 경로 및 URL을 사용하십시오

URL에 언어를 포함시키기 위해 로케일 접두사가있는 그룹 경로 :

 route :: group ([ &#39;prefix&#39;=> &#39;{locale}&#39;, &#39;middleware&#39;=> &#39;setlocale&#39;], function () {
    route :: get ( &#39;/dashboard&#39;, [dashboardcontroller :: class, &#39;index&#39;]);
    route :: get ( &#39;/profile&#39;, [profilecontroller :: class, &#39;show&#39;]);
});

블레이드 템플릿에서 현지화 된 URL을 생성합니다.

 <a href = "{route ( &#39;dashboard&#39;, [ &#39;locale&#39;=> &#39;es&#39;]}}"> ir al panel </a>

컨트롤러의 {locale} 매개 변수를 처리하거나 기본 컨트롤러를 사용하여 관리하십시오.


5. 뷰 ​​및 컨트롤러의 번역을 처리하십시오

코드의 어느 곳에서나 __() 함수를 사용하십시오.

 // 컨트롤러에서
return view ( &#39;대시 보드&#39;, [
    &#39;title&#39;=> __ ( &#39;messages.profile&#39;)
]);

// 유효성 검사 메시지에서
$ validated = $ request-> validate ([[[
    &#39;이메일&#39;=> &#39;필수 | 이메일&#39;
], [
    &#39;email.required&#39;=> __ ( &#39;validation.email_required&#39;)
]);

복수화를 위해 Laravel은 언어 파일을 통해이를 지원합니다.

 // resources/lang/en/messages.php
&#39;comment&#39;=> &#39;{0} 댓글 없음 | {1} 한 주석 | [2,*] : count 댓글&#39;,

// 용법
echo trans_choice ( &#39;message.comments&#39;, $ count);

6. Artisan을 사용하여 번역을 관리하십시오 (선택 사항)

Laravel에는 내장 번역 관리자가 포함되어 있지 않지만 laravel-lang/lang 또는 astrotomic/laravel-translatable 과 같은 패키지를 만들 수 있습니다.

간단한 앱의 경우 언어 파일을 수동으로 관리하는 것으로 충분합니다.


7. 생산의 캐시 번역

제작시 언어 파일을 캐시하여 더 나은 성능을 제공 할 수 있습니다.

 PHP Artisan 구성 : 캐시

참고 : 번역 파일은 기본적으로 캐시되지 않지만 필요한 경우 패키지를 사용하거나 사용자 정의 솔루션을 작성할 수 있습니다.


Laravel의 현지화 시스템을 사용하면 여러 언어를 쉽게 지원할 수 있습니다. 언어 파일을 명확하게 구성하고, 사용자 언어를 조기에 감지하고, 언어를 전환하는 방법을 제공하는 데 중점을 둡니다. 미들웨어 및 경로 그룹화를 사용하면 깨끗하고 현지화 된 사용자 경험을 구축 할 수 있습니다.

기본적으로 복잡하지 않습니다. 일관된 파일 구조와 스마트 로케일 스위칭.

위 내용은 Laravel에서 다중 언어 앱을 구축하기 위해 현지화를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

뜨거운 주제

Laravel의 파일에 메시지를 로그인하는 방법은 무엇입니까? Laravel의 파일에 메시지를 로그인하는 방법은 무엇입니까? Sep 21, 2025 am 06:04 AM

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

Laravel에서 API를 인증하는 방법 Laravel에서 API를 인증하는 방법 Sep 18, 2025 am 12:26 AM

installlaravelsanctumviacomposerandpublishitsfiles, thenrunmigrations.2.addehasapitokenstraittotheusermodel.3

해충과 함께 Laravel에서 기능 테스트를 작성하는 방법? 해충과 함께 Laravel에서 기능 테스트를 작성하는 방법? Sep 16, 2025 am 06:12 AM

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

Laravel Sanctum으로 API 인증을 구현하는 방법은 무엇입니까? Laravel Sanctum으로 API 인증을 구현하는 방법은 무엇입니까? Sep 19, 2025 am 04:08 AM

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

Laravel에서 전체 텍스트 검색을 만드는 방법은 무엇입니까? Laravel에서 전체 텍스트 검색을 만드는 방법은 무엇입니까? Sep 16, 2025 am 03:42 AM

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

Laravel에서 Hasmanythrough 관계를 사용하는 방법은 무엇입니까? Laravel에서 Hasmanythrough 관계를 사용하는 방법은 무엇입니까? Sep 17, 2025 am 06:38 AM

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

Laravel에서 Route Resource Controllers를 사용하는 방법은 무엇입니까? Laravel에서 Route Resource Controllers를 사용하는 방법은 무엇입니까? Sep 24, 2025 am 05:05 AM

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

Laravel 컨트롤러에서 사용자를 리디렉션하는 방법은 무엇입니까? Laravel 컨트롤러에서 사용자를 리디렉션하는 방법은 무엇입니까? Sep 21, 2025 am 05:26 AM

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

See all articles