2010-07-20 4 views
2

Codeigniter에서 새로운 사이트 프로젝트를 시작합니다. 이 사이트는 영어가 기본 언어가되는 다국어 지원이 필요합니다. codeigniter의 언어 클래스가 어떻게 작동하는지 알고 있고 이미 사용하고 있습니다.Codeigniter의 다국어 사이트

제가 우려하는 점은 선택한 언어로 URL을 표시해야한다는 것입니다. 내가 예와 함께 자신을 설명 할 것이다 :

영어 언어를 선택하면,이 URL이

: 자동차 컨트롤러가 www.domain.com/cars/list_carslist_cars을 적절한보기를 호출하는 방법입니다.

스페인어 언어 언어를 선택하면, 나는 URL이 www.domain.com/coches/mostrar_coches이를 달성하기 위해 가장 좋은 방법은

로 표시 하시겠습니까? 내가 생각할 수있는 유일한 방법은 같은과 routes.php 을 변경하는 것입니다 :

$route['cars/list_cars'] = 'coches/mostrar_coches';

이 달성의 더 나은/쉬운 방법이 있습니까?

감사합니다.

답변

0

현지화 된 URL 세그먼트에 routes.php를 사용하여 제안한 바를 수행했습니다. 나를 위해 잘 작동하지만 모든 페이지에 대해 경로 파일에 새 항목이 필요합니다.

+0

각 페이지에 대해 routes.php에 항목이 있으면 나를 퇴색시킵니다.하지만이 방법을 사용하는 것이 유일한 방법이라고 생각합니다. Codeigniter는 이름 페이지를 번역하고자하는 것을 알아야하며이 경우 정규 표현식을 사용할 수 없습니다. – yinyang78

0

컨트롤러 이름과 메소드 이름을 번역하는 것은 두통이 기다리고 있습니다. 당신의 SEO에 이득은 진짜로 가치가 있지 않는다 그래야 당신이 좋은 내용이다는 것을 확인하기 위하여 아주 최소이다.

+0

나는 당신의 대답에 놀랐습니다. 나는 SEO 전문가는 아니지만, URL에 키워드가 있다는 것이 고려해야 할 가장 중요한 포인트 중 하나라는 것을 여러 번 읽었습니다. 그래서 URL을 "번역"하고 싶습니다. – yinyang78

+0

SEO 혜택은 적절한 상황에서 상당한 것입니다. 생각을해야합니다. – stef

+0

약간의 SEO 충돌이있을 수 있도록 모든 URL을 수동으로 번역하려는 경우 내 콘텐츠가 각 언어에 적합한 지 확인하고 싶습니다. –

2

나는 concebe.com을 CodeIgniter와 Url로 번역했습니다. 내 솔루션은 모든 요청을 번역에 따라 다른 기능을 호출하는 하나의 컨트롤러로 리디렉션하는 것이 었습니다. 아래 참조 :

function dinamic($js,$page,$item=NULL,$id=NULL) 
{ 

    switch ($page) 
    { 
     case $this->lang->line('products'): 
      $page='products'; 
     break; 
     case $this->lang->line('about_us'): 
      $page='about_us'; 
     break; 
     ... 
    } 

    //switch page 
    switch ($page) 
    { 
     case 'contact_us': 
      $this->template->render($js,$this->_contact_us($js)); 
      return; 
     break; 
    } 

을이 영리한 해결책이 아니다 힘들어하기 때문에, 너무 도움이되지 않는다, 그러나 나는 또한 JS 호출을 구별해야하고,이 유일한 방법이었다, 나는이 도움이 누군가 희망 .

제약 조건 : 스위치 언어를 사용하면 페이지가 손실 될 수 있습니다.

관련 문제