얼마 전, URL에서/{_locale}을 통해 "올바른 방법"을 사용하여 작업중인 Symfony 2.1 웹 사이트를 번역하기 시작했습니다. 이제 대부분의 경로에서 번역이 잘 수행되었지만 일부 (/ login,/register ...)는 {_locale} 부분이 없으므로이 언어의 기본 언어 (이 경우 fr) url.Symfony2 번역 : locale이 무시됩니다.
디버그 패널을 통해 나는 로캘이 실제로 URL 탐색을 통해 변경되지 않았다는 것을 깨달았습니다 (this과는 달리).
그래서 나는 there을 방문하여 호출 된 경로의 기능으로 세션 로케일을 변경하기 위해 리스너를 설정하는 정보와 링크를 발견했습니다. 모든 기본 로켈 선언 (config.yml과 리스너 자체에서 모두)은 "fr"입니다.
언어를 전환 할 때 디버그 패널에서 세션 로케일이 변경되었음을 실제로 볼 수 있습니다. 그러나 번역이 어떻게 든 부러졌습니다. 모든 번역 비트는 기본 언어가 프랑스어이고 세션 로캘이 "fr"임에도 불구하고 영어로 이루어집니다.
어디에서 왔을 까? 어떻게 해결할 수 있습니까?
미리 감사드립니다.
더 많은 기술 정보 :
routing.yml :
AuraeLCUserBundle:
resource: "@AuraeLCUserBundle/Resources/config/routing.yml"
prefix: /{_locale}/
defaults: { _locale: fr }
requirements:
_locale: en|fr
나뭇 가지 예 : 여기
<p>{{ 'layout.greeting.welcome'|trans({}, 'AuraeLCUserBundle') }}</p>
I 여기서 교리 번역을 사용하지 않고 있습니다. 대부분의 번역은 나뭇 가지를 통해 이루어집니다. 기본값 (symfony 2.1, 세션 : {default_locale : 'fr_FR'}이 default_locale : % locale %로 바뀜)을 모두 확인했습니다. 모두 정확합니다. /register 또는/login과 같은 페이지에서 로켈이 고려되었음을 알았습니다. 내가 이해할 수없는 것은 fr이 로케일과 url 모두에있을 때 영어가 사용되는 이유입니다. –