2014-11-02 3 views
0

내 Symfony2 웹 사이트를 번역 중입니다. 레이아웃을 제외하면 잘 작동하는 것 같습니다 ... 내 템플릿은 번역 된 메뉴가 포함 된 layout.html.twig를 확장합니다. 프랑스어로되어 있으면 모든 것이 제대로 작동합니다 (기본 로케일). 그러나 영어로 전환하면 메뉴가 프랑스어로 유지되고 나머지 페이지 (템플릿에 포함되어 있음)가 영어로 번역됩니다. 누군가가 무슨 일이 일어나고 있는지 생각하고 있습니까?Symfony2 => 나뭇 가지 레이아웃이 번역되지 않습니다

템플릿 (services.html.twig)

{% extends "GslsAppBundle::layout.html.twig" %} 

레이아웃 (layout.html.twig)

<div id="menu"> 
     <a href="{{ path('gsls_app_homepage') }}" class="accueil">{{ "menu.accueil"|trans|raw }}</a> | 
     <a href="{{ path('gsls_app_services') }}" class="services">{{ "menu.services"|trans|raw }}</a> | 
     <a href="#" class="reservation">{{ "menu.reservation"|trans }}</a> | 
     <a href="#" class="contact">{{ "menu.contact"|trans }}</a> 
    </div> 

messages.fr.yml

menu: 
    accueil: Accueil 
    services: Services 
    reservation: Réservation 
    contact: Contactez-nous 

messages.en. yml

menu: 
    accueil: Home 
    services: Services 
    reservation: "Book online" 
    contact: "Contact us" 

고마워요!

+0

가 어떻게 사용자가 로케일 정의합니까? 템플릿에'{{dump (app.request.locale)}}'을 사용해 어떤 로케일이 있는지 확인하십시오. – SirDerpington

+0

이미 그것을했고 심지어 레이아웃에서 "en"을 덤프했습니다 ...하지만 프랑스어로 번역합니다 :/내 루트에서 내 로캘을 정의합니다 –

+0

'messages.en.yml' 파일을 만든 경우 Symfony가 발견하기 위해서는 캐시를 지워야합니다. –

답변

0

번역본 중 하나를 사용할 수는 있지만 다른 번역본은 사용할 수 없으며 그 이유를 알 수 없습니다. 번역에 문제가 있으면 읽으십시오.

첫째, 표준 체크리스트 :

  • you enabled and configured translator 있는지를 확인합니다.
  • translation is in proper place을 확인하고 proper naming convenction (도메인 (기본적으로 메시지) .lang_code.file_format)을 따르십시오.
  • php app/console cache:clear 명령을 사용하여 캐시 지우기
  • Controller에서 $this->getRequest()->setLocale('en');을 수동으로 호출 해보십시오. $this->get('translator')->trans('Some message');을 컨트롤러에서 직접 사용해 볼 수도 있습니다.
  • 그래도 작동하지 않으면 번역 된 파일에 BOM이 없는지 확인하십시오. 그게 내 사건 이었어.

조심스럽게 번역 된 파일에서을보십시오. yml 파일을 번역 한 번역자는 UTF8을 사용했는데 괜찮습니다. 그러나 편집자는 파일의 시작 부분에서 leaved BOM을 사용했습니다. 이는 파일의 첫 번째 섹션에 보이지 않는 문자가 거의 없기 때문에 PHP's UTF8 BOM bug으로 인해 위험 할 수 있습니다.

Btw, debugging your translations도 매우 유용 할 수 있습니다.

Btw2,이 답변을 보내 미안 두 번,하지만 난 언급 할 수 및 링크 아직 원래의 질문에 :

관련 문제