2010-07-19 4 views
1

Zend Framework, MVC, 엔터프라이즈 웹 사이트 프로젝트에서 작업하고 있습니다. 문맥에 따라 각 단어를 번역 할 수있는 능력을 갖춘 친숙한 번역 시스템을 개발하고 싶습니다 (때로는 동일한 단어가 다른 번역을 가짐).Magento와 유사한 인라인 변환 시스템을 구축하는 방법

젠드 프레임 워크는 i18n 및 현지화를 위해 Zend_Translate를 사용합니다. 우리는 Magento 's (ZF를 사용하는) 인라인 번역 시스템을 보았습니다. 사용자는 translate pages directly을 사용할 수 있습니다.

우리는이 인라인 변환 시스템이 어떻게 작동하는지 알고 싶기 때문에 개선 된 유사한 시스템을 구축 할 수 있습니다.

  1. 번역본은 데이터베이스 또는 CSV 파일에 저장됩니까?

  2. 사용자가 다른 페이지에서 다르게 번역 할 때 시스템에서 같은 단어에 대한 번역을 가져 오는 것을 어떻게 알 수 있습니까?

  3. 인라인 변환을 지원하는 페이지는 어떻게 작성해야합니까?

  4. 시스템에서 정적 텍스트와 동적 (데이터베이스 기반) 텍스트를 어떻게 처리합니까?

  5. 인라인 변환은 사이트를 매우 느리게 만들 것 같습니다. Magento는이 문제를 어떻게 해결합니까?

설명해야 할 점이 더 있으시면 작성해주십시오. 감사합니다

+1

, 아무것도 없다. –

답변

3
여기에 시작 (미래에이 아마 더 이상의 논리 질문)에서 시작

: CSV 파일에 (프로그래머에 의해 제공)

  1. 젠토 저장 기본 번역하지만, 인라인 번역은 데이터베이스에 저장됩니다.

  2. Magento의 번역은 단어가 아닌 전체 문자열에서 작동합니다. 번역을위한 전체 문맥을 제공함으로써 관용구 번역이 가능합니다. 모든 문장이 모든 단어가 아닌 번역되어야한다는 것은 단점입니다.

  3. Magento의 답변은 모든 지역화 할 수있는 문자열을 localizer 호출에서 래핑하는 것입니다. 자주 변환되지 않습니다 젠토에 (제품 설명에서와 같이)

    print $this->__("Please translate this string");

  4. 동적 텍스트 : 마 젠토 템플릿은 일반적으로이 같은 (이중 밑줄 기능은 "현재 로케일로 변환"기능에 매핑)를 보면 이렇게하려면,하지만,이 같은 번역자에 대한 권리 문자열을 전달만큼 간단합니다

    print $this->__($someString);

  5. 그것은 번역하거나 사이트를 깰 것 같지도 (귀하의 DB 쿼리에 보면 대부분을 위해 그럼에도 불구하고 이것은 합법적 인 질문입니다. Magento는 도움이되는 몇 가지 일을합니다. 첫째, CSV 파일의 직렬화 된 버전을 캐시에 저장하므로 CSV 읽기가 더 효율적입니다. 둘째, Magento는 페이지 캐싱을 제공하여 페이지의 작은 비트에 대한 블록 수준 캐싱뿐 아니라 전체 페이지의 출력을 저장할 수 있습니다 (동일하게 렌더링한다고 가정).이것들 사이에서 당신은 가장 좋은 부분에 있습니다.

희망 하시겠습니까?

감사합니다, 조 모든 것이 굵은 글씨로 기록

+0

대단히 감사합니다. – Yosef