2013-08-08 7 views
0

kohana에서 라우팅과 관련된 문제가 거의 없습니다. 3.2. 여러 언어를 지원하는 간단한 블로그를 만들고 싶습니다.하위 도메인이있는 kohana3.2 라우팅 - 다국어

  • pl.yourwebsite.com/kontakt
  • 위의 컨트롤러의
  • en.yourwebsite.com/contact
  • xx.yourwebsite.com/sometranslation :

    는이 같은 링크를 만들려면

연락처와 경로에 대한 간단한 컨트롤러를 설정했지만 경로에 관해서는 정적 경로를 설정해야합니다. 이는 상당히 나쁜 해결책입니다. PL 랭에 대한

: 예를 들어

Route::set('kontakt', 'kontakt(/<action>(/<id>(/<id2>(/<id3>))))') 
    ->defaults(array(
     'controller' => 'contact', 
     'action'  => 'index', 
    )); 

그것은 내가 domain.com/contactdomain.com/kontakt를 사용할 때 작동하지만, 내가 20 + 컨트롤러와 3 langugage있을 때; 그건 60 + 노선 == 나쁜 해결책이 될 것입니다.

감사합니다.

답변

1

적어도 한 페이지의 번역을 그룹화 할 수 있지만이 경우에도 페이지 당 하나 이상의 경로가 있어야합니다.

이 예제는 URL의 <page_name> 부분 일치하는 정규식을 사용

Route::set('kontakt', '<page_name>(/<action>(/<id>(/<id2>(/<id3>))))', 
      array('page_name' => '(contact|kontakt|contatto)')) 
    ->defaults(array(
     'controller' => 'contact', 
     'action'  => 'index', 
    )); 

은 또한 그것은 일치하는 경로를 발견한다면, Route을 설정할 때 콜백 함수를 지정할 수 있다는 생각을은을 반환 할 수 있습니다 컨트롤러 및 호출해야 할 작업. 이렇게하면 자신 만의 코드를 실행하고 호출 할 컨트롤러/액션을 결정할 수 있습니다. 설명서의 Lambda/Callback route logic 섹션을 참조하십시오.