여러 언어로 번역 할 필요가있는 CakePHP를 사용하여 웹 사이트를 만들고 있지만 로그인 한 사용자의 유형에 따라 언어마다 여러 구를 사용해야합니다. 이렇게하면 동일한 기능을 사용할 수 있지만 더 정식 또는 더 친숙한 언어로 복제하지 않아도됩니다.cakephp에서 언어마다 여러 구.
- 유형 1 : 매우 간단한 예를 들어
"고객", "구매", "쇼핑 카트"
- 유형 2 : "클라이언트", 을 "바구니" "구매"
- 유형 3 : '사용자', '주문', '인보이스'
이러한 유형은 각각 여러 언어로 제공됩니다.
CakePHP에서 표준화 된 로컬 리 제이션 (내가 선택한 이유 중 하나!)/Locale/[lang]/LC_MESSAGES/디렉토리에 적절한 default.po 파일이 있으며 모두 잘 작동합니다. (ger가 일하기 위하여 deu 일 필요가 있던이 위치에주의 한 사용자에게 고맙다;)).
어플을 너무 많이 사용하기 전에 구문을 추가하여 예를 들어 설정할 수 있습니다. 언어는 프랑스어로 표현하고 유형 2로 표현합니다. 프레임 워크 외부에서이 작업을 수행했다면 언어 및 구문 키를 기반으로 올바른 문자열을 찾을 수있는 행렬 검색을 할 수 있지만 CakePHP의 현지화 작업을 수행하는 방법은 확실하지 않습니다.
현재 표준 __ ([문자열]) 규칙을 사용하고 있지만 개발주기의 초기 단계이므로 필요한 경우 변경하는 것이 간단합니다.
내가 ([문구] [문자열]) __d 사용을 고려했지만 플러그인으로 내 응용 프로그램을 작성하지 않고이를 설정하는 방법을 볼 수 없습니다 그리고 내가/로케일/
에 다시 같은 문제에있어SO 또는 cakePHP 커뮤니티 사이트에 대한 내 검색 결과를 찾을 수 없었으므로 제안 사항에 대해 감사하게 생각합니다.
cakePHP에서 이것을 수행하는 표준 방법이 있습니까? 그렇지 않다면 이것을 구현하는 좋은 "우수 사례"방법은 무엇입니까?
편집 - 여기 아래의 대답 다음은이 구현 방법은 다음과 같습니다
가/응용 프로그램/로케일/[랭]에서/LC_MESSAGES는/내가 phrase1로의 새로운 말씨와 새와 .po 파일을 만들었습니다. 포, phrase2.po 등나는 또한 구문 파일이 포 파일의 이름과 일치하는 말씨 설정된 언어 설정 :
Configure::write('Config.language', 'deu');
Configure::write('App.langDomain', 'phrase1');
을 모든 문자열로 포장했다 :
__d(Configure::read('App.langDomain', 'string')
그리고 그냥 작동합니다. 이 같은
내가 왜 이것이 투표에 실패했는지에 대한 피드백을 보내 주시면 감사하겠습니다. 질문이 명확하고 복제본을 찾을 수 없다고 생각합니다. 미리 감사드립니다. – Yssybyl