Laravel 다국어 사이트 Routing하기

Laravel을 이용하여, 서브 도메인을 이용하지 않고, 저렴하게(?) 다국어 사이트를 구현하는 것은 간단하다. 디테일한 설명 대신, 흐름에 관한 메모만 남기겠다. 흐름을 알았다면, https://laravel.com/docs/5.4/localization을 보며 하나씩 따라가면 될 듯하다.

routes/web.php

아래 web.php 파일에서 / <- 기본 Direction이다. Laravel을 설치하면 기본적으로 config/app.php에 영어로 명시가 되어 있다. ‘locale’ => ‘en’,
/kr
<- 내가 준 한국 Direction이다.

주소는 현재 http://localhost:8000http://localhost:8000/kr이 되겠다. 둘 다 모두 home페이지로 Routing한다.

1
2
3
4
5
6
7
8
9
Route::get(‘/’function () {
return view(‘home’);
});
Route::get(‘/kr’,function(){
    App::setlocale(‘kr’);
return view(‘home’);
});
cs

 

resources/home.blade.php

먼저 번역할 내용을 필요로 한다. 예를 들어 Hello, world를 한다고 가정한다. 이때, 아래와 같은 코드는

{{ __('home.hello') }}

resources/lang/en 혹은 kr에 있는 home.php를 불러온다. (언어 마다 같은 이름의 파일이 존재해야, 번역이 된다.)

resources/lang/kr/home.php에는 아래와 같이 세팅이 되어야 한다. 색깔을 위와 비교하며 보기 바란다.

<?php return [ 'hello' => '안녕, 세상' ];?>

resources/lang/en/home.php에는 아래와 같이 세팅이 되어야 한다.

<?php return [ 'hello' => 'hello, world' ];?>

모든 세팅이 끝났다. http://localhost:8000http://localhost:8000/kr로 결과를 확인하면 된다.

 

위의 방법 말고도 여러가지 방법으로 Localization을 할 수 있다. 다만, 흐름을 정리하고자 간단하게, 기술했다. 더 많은 정보는 공식 메뉴얼을 https://laravel.com/docs/5.4/localization 참조하기 바란다.

이상.

참고

 

댓글 남기기