1. app\Http\Middleware\SetLocale.php 미들웨어 생성
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\App;
class SetLocale
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
protected $languages = ['en','ko','ja','zh'];
public function handle($request, Closure $next)
{
$locale = $request->segment(1);
if (session()->has('locale')) {
App::setLocale(session()->get('locale'));
} else {
App::setLocale($locale);
session()->put('locale', $request->lang);
}
return $next($request);
}
}
2. app\Http\Kernel에 미들웨어 등록
protected $routeMiddleware = [
...
'locale' => \App\Http\Middleware\SetLocale::class,
];
3. routes\web.php에 다국어 처리 routes 연결
Route::group(['prefix' => '/{locale}', 'middleware' => 'locale'], function ($locale) {
Route::get('/globalpage', [GlobalController::class, 'globalPage']);
});
반응형
'개발 > Laravel' 카테고리의 다른 글
Laravel + Nginx PHP 파일 접근시 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream 에러 (0) | 2021.10.29 |
---|---|
Laravel 8.0 이상 fortify 회원가입 완료 페이지 연결 (0) | 2021.08.23 |
Laravel Query Builder Logical Grouping (0) | 2021.04.19 |
Laravel 8 사용자 라이브러리 추가 (0) | 2021.04.02 |
Laravel Socialite와 SocialiteProvider를 활용한 다중인증 소셜로그인 및 동적 URL 처리 (0) | 2021.03.09 |