2012-05-23 4 views
0

안녕하세요 두 가지 질문이 있습니다.CakePHP 다국어

먼저 내 웹 사이트에 두 개의 언어가 있고 사용자가 플래그를 클릭하여 언어를 변경하려고합니다. 문제는 모든 데이터가 데이터베이스에 작성되었으므로 확장자가 .po 인 언어 파일을 구현하기 위해 사용하고 싶지 않다는 것입니다. CakePHP의 프레임 워크가 없으면 예를 들어 GET 변수를 전달할 것입니다. ? lang = en 그리고 적절한 기록을 읽을 수 있습니다. CakePHP에서 같은 논리를 사용하면이 변수를 컨트롤러 내부의 모든 함수에 포함시켜야합니다. 링크는/product/en/2와 같습니다. (하지만 기본 언어에서 일어난 일은 내가 너무 포함시켜야합니다 ...) 그래서 내 주요 질문은 세션과 같은 다른 솔루션을 사용하여 이것을 처리 할 수 ​​있는지 여부입니다. 그렇다면 사용자가 다른 언어를 클릭 할 때 세션 변수를 어떻게 변경할 수 있습니까? ??

내 메인 메뉴와 비슷한 문제가 있는데, default.ctp 파일의 헤더 (동적 또한)에 내 메뉴를 포함시키고 싶습니다. 어떻게하면 될까요? 기본 파일의 주 컨트롤러는 무엇입니까? ? ? (데이터베이스에서 값을 읽는 함수를 구현하기 위해).

큰 메시지와 영어에 대해 유감스럽게 생각하지만 CakePHP와 MVC 논리에 익숙하지 않으므로 일반 PHP로 작성하는 방식과 조금 혼란 스럽습니다.

감사합니다.

답변

0

언어 설정에 params라는 이름의 케이크를 사용하고 라우터는/eng /에/lang : eng를 다시 작성합니다.

AppController :: beforeFilter()에서이 설정과 세션을 확인, 설정 및 변경할 수 있습니다. 이것은 다른 모든 컨트롤러가 상속하는 메인 컨트롤러입니다.

꽤 잘 완성 된 공식 문서를 읽는 것이 일반적으로 매우 유용합니다. http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html#localization-in-cakephp을 참조하여 여기에 정확히 무엇을 적어 놓았는지 설명합니다.