Laravel 다국어 사이트 Routing하기

Laravel 중 서브 도메인을 이용하지 않고, 저렴하게(?) 다국어 사이트를 구현하는 내용입니다. 개인적으로 참고할 목적으로 만든 글이라 디테일한 설명 대신 제 작업 흐름만 기록해두었습니다. 부족한 내용은 https://laravel.com/docs/5.4/localization을 참고하시면서 진행하시면 됩니다.


routes/web.php

‘web.php’ 파일을 아래와 같이 수정합니다. ▼

Route::get('/', function () {
return view('home');
});
Route::get('/kr',function(){
    App::setlocale('kr');
return view('home');
});
  •  / <- 기본 Direction입니다. Laravel을 설치하면 기본적으로 config/app.php에 영어로 명시가 되어 있습니다. ‘locale’ => ‘en’
  • /kr <- 제가 입력한 한국 Direction입니다.

이와 같이 설정했을 때의 주소는 http://localhost:8000http://localhost:8000/kr이 됩니다. 둘 다 모두 home 페이지로 Routing합니다.


resources/home.blade.php

이제 번역 작업에 필요한 내용을 준비합니다. 예를 들어 ‘Hello, world’를 ‘안녕, 세상’으로 번역한다고 가정하면, 텍스트를 직접 입력하지 않고 아래와 같은 코드로 텍스트를 불러와야 합니다.

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

* 코드 뜻 : resources/lang/en 혹은 kr에 있는 home.php를 불러옵니다. (언어 마다 같은 이름의 파일이 존재해야 번역이 됩니다.)

 

1) ‘resources/lang/en’와 ‘resources/lang/kr’ 경로에 각각 ‘home.php’이름을 만듭니다. ▼

 

2) ‘home.php’ 파일 안에 아래와 같이 입력합니다.

resources/lang/kr/home.php ▼

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

resources/lang/en/home.php ▼

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

 

3) 해당 번역 텍스트가 사용될 곳에 아래 코드를 삽입합니다.

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

* http://localhost:8000와 http://localhost:8000/kr로 가셔서 결과를 확인해보시면 됩니다.

 

위의 방법 말고도 여러가지 방법으로 Localization을 할 수 있습니다. 다만, 기본적인 흐름만 정리해두고 나중에 참조할 요량으로 간단하게 기술하였습니다. 더 많은 정보는 공식 메뉴얼을 https://laravel.com/docs/5.4/localization 참조하시기 바랍니다.


이상입니다.

참고 동영상 ▼

댓글 남기기