2014-12-28 3 views
2

Symfony 2 번역 구성 요소를 실험하고 있습니다. 기본 로켈은 el_GR이고 대체 로켈은 en_US입니다. 내 config.yml을 설정했고, 2 개의 번역 파일을 만들었습니다 : messages.el_GR.yml과 messages.en_US.yml 그리고 app/cache를 지 웠습니다. 두 로케일 모두에서 Symfony라는 단어를 번역했습니다. 내가 명령 PHP 응용 프로그램/콘솔 번역을 사용 그래서 : 디버그 ko 페이지 abcNikBundle를 내가 얻을 : Symfony 2 : 기본 로케일로 번역

State | Id  | Message Preview (en_US) | Fallback Message Preview (el_GR) 
     | Symfony | Symfony_US    | Symfony_GR 

그래서 나뭇 가지 템플릿에 내가 쓰기

{{ 'Symfony'|trans({},'messages') }} 

나는 en_US 로케일을 사용하는 경우 그것은 잘 작동, (Symfony_US를 인쇄합니다.) 그러나 기본 로켈 (el_GR)을 사용하면 Symfony_GR 대신 Symfony가 인쇄됩니다. 어떻게 든 끝날 수 있습니까?

+1

캐시 디렉토리를 완전히 삭제하십시오. 또한 번역을 찾을 수없는 경우 디버그 모드로 로그됩니다 - 로그를 검사하여 번역을 찾을 수 없는지 확인하십시오. 또한, 기본값이기 때문에 'messages'를 지정할 필요가 없습니다.'{{ 'Symfony'| trans}}' –

+0

캐시 디렉토리를 삭제 했으므로 작동했습니다! 정말 고마워! – iiirxs

+0

문제가 없습니다! 대답으로 추가하겠습니다. –

답변

3

캐시가 완전히 삭제되었는지 확인하십시오. 영어 번역을 추가하고 대체 페이지를 추가하지 않은 후 캐시를 재설정했을 수 있습니다. 새 번역 자원을 작성

때마다 (또는 번역 리소스를 포함하는 번들 설치) 심포니는 새로운 번역 자원을 발견 할 수 있도록 캐시를 지우십시오를 : 추가 정보를 위해 Symfony documentation를 참조

가끔 cache:clear 명령을 실행하면 실패합니다.이 경우 나는 단지 app/cache 디렉토리의 내용을 수동으로 삭제합니다.

또한 번역을 찾을 수없는 경우 번역 채널 (dev.translation.log)의 디버그 모드로 기록됩니다. 로그를 확인하여 번역을 찾을 수 없는지 확인하십시오. 또한 '메시지'를 지정할 필요가 없으므로 기본값입니다. {{ 'Symfony'|trans }}