사용자 디렉토리가 있습니다 (예 : /www/phpstuff
). 내 include_path
에 있습니다. 이 phpstuff
디렉토리 안에는 i18n
폴더가 있습니다. 여기에는 서버 쪽 수준 .mo
파일이 포함됩니다.Gettext 및 Zend_Translate가있는 응용 프로그램 전체 로켈?
Zend_Translate
당신이 정말
Zend_Translate('gettext', 'i18n/', 'en');
는, 어떤 종류의 그것은이 스크립트가 호출되는 디렉토리에서 읽으려고
이 할 수없는 생성자의 두 번째 매개 변수에 디렉토리를 지정할 수 있습니다 트릭 나는 /www/phpstuff/i18n
를 명시 적으로 지정할 필요가 없어도 사용할 수 있습니까? 필자가 사용하고있는이 프레임 워크가 여러 플랫폼에 걸쳐 사용될 것이며 include_path에서 절대 경로보다 디렉토리를 지정하는 것이 더 쉬울 것입니다.
필자가 생각해 볼 수있는 유일한 해결책은 수동으로 포함 경로를 읽고, 구분 기호로 분리하고, 디렉토리 중 하나에 'gettext'라는 이름이 있는지 확인한 다음 발견 된 첫 번째 디렉토리의 절대 경로를 가져 와서 설정하는 것입니다.
그래, 그래도 응용 프로그램마다 다릅니다. 여러 어플리케이션에 동일한 .mo 파일을 사용하고 싶다면 하나의 파일을 업데이트 할 수 있으며 모든 파일을 반영 할 수 있습니까? –
i18n 폴더를 응용 프로그램의 어딘가에 놓고 경로를 지정하십시오. 질문은 i18n 폴더를 어디에 두는 것이 아니라 응용 프로그램과 관련된 어딘가에 경로를 정의하는 것입니다. – Basher
나는 당신이 말하는 것을 얻지 만, Zend_Translate만을 사용하고, 여러 서버에 걸쳐 이러한 것을 구현하려고하지 않는다면, 나는 부모 애플리케이션에 i18n을 넣을 수 없다. 부모 디렉토리에 내 모든 응용 프로그램의 가끔 일관성없는 구조로 ... 그 선택의 여지가 있지만 절대 경로 상수를 정의하고 그것을 사용하는 것 같아요. –