2011-08-12 6 views
0

Symfon 1.4/Doctrine으로 영어를 기본 언어로 정의한 다국어 웹 사이트를 구축하고 있습니다. 다른 언어로 된 컨텐트 번역은 점진적으로 추가되며 요청 된 컨텐트의 번역이 요청 된 언어로 제공되지 않는 경우가 종종 있습니다. 이 경우 영어로 요청한 콘텐츠를 표시하고 싶습니다. 글로벌 수준에서 달성 할 수 있습니까? 예 : 모든 콘텐츠에 대해?Symfony/Doctrine : i18n 콘텐츠의 기본 문화로 대체

Grad van Horck이 지적한대로이 기능은 기본적으로 인터페이스 변환에 적합합니다. 내가 필요한 것은 DB에 저장된 콘텐츠 (actAs i18n 동작이있는 모델)의 동일한 기능입니다.

답변

0

기본 방법은 이것을 완벽하게 허용합니다. 모든 텍스트가 기본적으로 영어로되어 있는지 확인하고 필요한 경우 텍스트를 번역하십시오. 따라서 <?php echo __('Hello'); ?>을 수행 한 다음 원하는 경우 번역하십시오. 번역을 찾을 수 없으면 '원래'번역으로 넘어갑니다.

데이터베이스에서 동일한 작업을 수행하려면 i18n 동작 (템플릿/수신기)을 복사하고 자신의 논리 비트를 추가하여 영어로 되돌아 가도록하는 것이 가장 좋습니다.

+0

고마워요.하지만 DB에서 내용을 처리하는 방법을 의미합니다. 내 질문을보다 정확하게 수정했습니다. –

+0

내 업데이트 된 답변보기 :) –

0

그것은 번역이 데이터베이스에 사용할 수없는 경우는 국제화 대체를 변경

sfDoctrineRecord::setDefaultCulture('nl'); // default = 'en' 

(http://trac.symfony-project.org/ticket/5458 참조) sfDoctrineRecord의 기본 문화를 설정할 수 있습니다.

+1

이것은 적절한 방법이 아닙니다. 기본적으로, 지금 보시는 것처럼 settings.yml에 'sf_default_culture'세트가 사용됩니다. 그러나 다소 혼란스러운 것은 표준화 된 문화의 사용입니다. 'en'대 'en_EN'은 결국 같은 문화이지만 symfony 문서에서도 혼합되어 사용됩니다 ... –