티스토리 뷰
Laravel 5 는 기본적으로 다국어화 기능이 있습니다. 하지만 이 기능의 경우 app::setLocale() 을 이용하여 언어를변경해 주거나 사용자 언어를 직접 지정해주셔야 하는대요.
여기서는 Session 에 Locale 이 지정되지 않았을 경우 사용자의 언어를 감지하여 Locale 을 지정하는 Middleware 를 만들어 보겠습니다.
우선 Middleware 를 만들어보겠습니다. App/Http/Middleware 로 이동하여 Localization.php 파일을 만들고 아래의 코드를 입력해주도록 합니다.
<?php namespace App\Http\Middleware; use Closure, Session, Auth; class Localization { /** * 언어 목록 * * @array $languages */ protected $languages = ['en','ko','ja','zh']; public function handle($request, Closure $next) { if(!Session::has('locale')) { Session::put('locale', $request->getPreferredLanguage($this->languages)); } app()->setLocale(Session::get('locale')); if(!Session::has('statut')) { Session::put('statut', Auth::check() ? Auth::user()->role->slug : 'visitor'); } return $next($request); } }
이제 위에서 만든 파일을 Middleware 에 등록시켜 주도록 합니다. 등록 방법은 App/Http/Kernel.php 에서 $middleware 에 아래와 같이 추가해주시면 됩니다.
protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, /* Customize MiddleWare */ \App\Http\Middleware\Localization::class, ];
테스트 방법은 페이지로 이동하는 Controller 에서 echo Session::get('locale'); 을 이용하여 현재 Locale 이 지정하지 않더라도 자동으로 지정되는지 확인해보시면 됩니다. 만약 자동 지정을 변경하고 싶으시다면 App::setLocale($edition); 을 통해서 현재 Locale 값을 변경하실수 있습니다.
즐거운 개발 되시기 바랍니다.
'Frameworks > Laravel' 카테고리의 다른 글
Laravel 5 새로운 어플리케이션 키 생성하기 (0) | 2015.11.08 |
---|---|
Laravel 5 라우트 ( Route ) HTTPS 보안 방식으로만 라우트 ( Route ) 하기 (0) | 2015.11.05 |
Laravel 5 크로스 도메인 ( CrossDomain ) POST 처리시 TokenMismatchException 해결하기 (0) | 2015.03.22 |
Ubuntu 에 PHP framework Laravel 설치하기 (0) | 2015.03.08 |
Ubuntu 에 Laravel 설치하기 (0) | 2015.03.02 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- SNS
- html
- php
- 튜토리얼북
- Database
- 에러
- mac
- 웹 개발
- Tutorialbook
- 개발
- it
- 설치
- 웹
- cocos2d-x
- 인터넷
- 게임 개발
- 서버 개발
- 서버
- JavaScript
- Laravel
- ubuntu
- 웹 개발자
- 게임
- 개발자
- 데이터베이스
- 웹 서버
- 맥
- Nodejs
- Developer
- 우분투
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함