2011-01-24 9 views
-1

그래서 .htaccess, 내 컨트롤러가 있습니다. 나는 현지화를 추가 했으므로 이제 포르투갈어 (기본), 영어 및 이탈리아어를 사용합니다.
appplication/languages ​​디렉토리에서 _lang 파일을 사용하고 있는데, session-> userdata ('lang')을 사용하고 있으며 모든 것이 잘 작동합니다. 내 컨트롤러의 이름은 포르투갈어 단어의 최상위 메뉴 다음에 붙습니다. 내가 무엇을 찾고 :
내 URL을 다시 작성하려면, 세션 -> userdata ('lang')에 따라 컨트롤러의 이름을 변경합니다.
이것도 가능합니까? 방법?CodeIgniter Url 다시 쓰기 (언어에 따라 다름)

if ($this->session->userdata('lang') == 'english') { 
    $route['novidades/([a-z]+)'] = 'news/$1'; 
} 

을하지만 난 응용 프로그램을 열 때 난 그냥 빈 화면을 얻을 :

는 루트 파일에서 InFog 제안 그래서 내가, 시도하고 당신에게

감사드립니다.
그리고 나는 경우 절없이 그것을 시도했습니다, 그리고 난에 이름을 번역

http://localhost/myapp/novidades

URL이 같은

답변

1

이 문제는 CodeIgniter Routes를 사용하여 해결할 수 있습니다. 당신은이 파일을 편집 할 수있는 '시스템/애플리케이션/설정/routes.php을 :

$route['news/([a-z]+)'] = 'noticias/$1'; 

이 방법은 같은 URL'/ 뉴스/실행 - 바보가 'noticias/실행 - 바보'로 remaped됩니다 '. 이제 하나의 컨트롤러 만 가질 수 있습니다.)

행운을 빌어 요.

+0

귀하의 코멘트 후에 나의 질문을 편집했습니다. 너 체크 좀 해줄 래? –

+0

나는 잘못된 방향으로 가고 있었다. 나는 codeigniter가 main uri를 지역화 된 것으로 대체하기를 원했고, 나는해야 할 일은 hrefs 언어 의존성을 작성했다. Solved, thanks everyone –

+0

안녕하세요! 'if'는 필요하지 않습니다. 경로를 추가하면 같은 페이지에 두 개의 주소가 생깁니다. 대신 (: any)를 사용해보십시오 ([a-z] +). –

1

무시 CI_Router을 유지에 갈 때 아무것도, 반응이 없습니다 컨트롤러를 변경하기위한 fetch_class() 메소드. 메소드를 변경하려면 fetch_method()를 재정의하십시오.

+0

나는 오버라이드가 어떻게 이루어질 수 있는지 조사해야합니다. 나중에 몇 가지 피드백을 남겨 둘 것입니다. Thanx –