2012-12-07 2 views
1

나는 웹을 가지고 있으며 현지화를 추가하고 싶습니다. URL은 URL/찾아보기 (등)의 I/URL/EN/찾아보기/URL/CS와 같은 URL을 만들려고 노력하고Laravel에 언어가 포함 된 URL 라우팅

그래서

Route::controller('browse'); 
Route::controller('search'); 
Route::controller('support'); 
Route::controller('filter'); 

처럼

현재 내 routes.php 보인다/(모든 컨트롤러 등) 검색/URL/드/찾아

그리고 경로 전에 언어가없는 경우, 그것은 추가하고 내가 만들려고

또는 (/ 찾아와 역 호환) 리디렉션 그렇게 찾는다. 필터가있는 단순한 솔루션, 불행히도. 도움 주셔서 감사합니다!

답변

2

config의 기본 응용 프로그램 언어 및 지원 언어 배열을 사용해보십시오.

지원되는 언어로 언어를 입력하면 해당 세그먼트로 시작하는 모든 경로가 현재 언어를 설정하며 루트 URL로 간주됩니다.

요구 사항과의 한 가지 다른 점은 리디렉션 대신 기본 언어가 URL에있는 언어없이 허용된다는 것입니다.

편집 : 리디렉션에 도움이되는 필터.

Route::filter('pattern: *', array('name' => 'langredirect', function() 
{ 
    $uri = Request::server('request_uri'); 
    $segments = explode('/', $uri); 
    if (! array_get(Config::get('application.languages'), $segments[1])) 
    { 
     return Redirect::to(URL::base() . '/' . Config::get('application.language') . $uri); 
    } 
})); 
+0

오, 내가 내 출처 나 문서에서도 이와 같은 것을 찾지 못했습니다. 그러나 최신 버전의 github에서 나는 그것을 발견했다. 감사! btw : 리디렉션 할 수있는 쉬운 posiblility? (laravel 자체 편집하지 않고) – Jindra

+0

이유는 en이 기본값 인 경우입니다 : url/en과 url은 동일한 내용으로 이어지고 검색 엔진 등의 URL은 고유하게 나타납니다. – Jindra

+0

리디렉션 필터를 사용하여 답변을 편집했습니다. – TLGreg