2010-06-08 7 views
5

저는 현재 젠드 프레임 워크에서 개발할 다소 큰 프로젝트의 계획 단계에 있습니다. 내가 직면하고있는 문제 중 하나는 고객이 콘텐츠뿐 아니라 인터페이스도 번역하고 싶어한다는 것입니다. 저는 현재 gettext와 poedit을 사용하여 제 언어 파일을 관리하고 있습니다. 그러나 고객을위한 옵션은 아닙니다. 사이트에 대한 FTP 액세스가 없기 때문입니다.Zend_Translate 용 Mysql 어댑터

따라서 고객의 인터페이스 번역본을 관리하기위한 프론트 엔드 인터페이스가있는 MySQL 백엔드를 생각하고 있습니다. 그러나 Zend_Translate 용 mysql 어댑터는 아직 없습니다.

이제는 아무도 Zend_Translate 용 어댑터 스크립트를 사용하지 않으므로 mysql 테이블과 작동 할 수 있습니까? 또는이 문제에 대해 mysql 및 가능한 다른 솔루션을 사용하는 것에 대한 인수?

답변

7

당신은 다른 방법에이 문제를 해결할 수 :

은 당신의 자신을 만들 수 Zend_Translate_Adapter을 확장합니다. 모든 새 어댑터는 소스에서 번역을 가져 오는 작업 만 담당합니다. 즉, 데이터베이스에서 번역을 가져 오는 것만 필요합니다. 다른 어댑터를보고 어떻게 구현되는지보십시오.

는 데이터베이스에서 데이터를 가져 오기하고

사용 Zend_Translate_Adapter_Csv 또는의 INI을 Zend_Translate_Adapter_Array을 전달합니다. 번역에 대한 글을 많이 읽으므로이 솔루션은 데이터베이스에 대한 쿼리 수를 줄입니다. 클라이언트가 새 언어를 추가하거나 기존 언어를 변경하면 데이터베이스가 아닌 파일에 간단히 작성하십시오.

데이터베이스 어댑터를 사용하기로 결정한 경우 번역본에 "태그"를 달아 홈 페이지의 번역 만 가져올 수 있도록 연락처 페이지의 연락처 번역 만 가져올 수 있습니다 페이지 ...

HTH!

3

기본 젠드 (Zend) 어댑터는 캐싱을 잘 처리하므로 실제로 데이터베이스가 필요하지 않으면 젠드 어댑터를 사용합니다.

대신 번역 데이터를 데이터베이스에 저장하면 번역 파일 (예 : po 템플릿)을 직접 조작 할 수 있습니다. 새로운 번역 문자열을 추가 (파일에 추가)하기 만하면됩니다.

Zend_Translate의 option to log untranslated messages (데이터베이스를 포함한 파일 또는 로그 어댑터에), 을 사용하고 로그를 처리하거나 저장된 문자열을 번역하는 리스너를 만들 수도 있습니다.

0
+0

건배! 지금까지 나 자신과 비슷한 것을 썼다. – Peter

+0

나쁜 예입니다. 그는 다음과 같이 편집합니다. o 프레임 워크 파일, doh. – markus

+0

네이티브 db 번역 도우미를 제공하지 않는 프레임 워크를 생각해보십시오. 부끄러움에 대한 존경은 클로이 센스 브렌트 (cloetensbrencht)의 권리가 아닙니다. – nerkn