前段時間,我開始翻譯我正在處理的Symfony 2.1網站,在URL中使用/ {_locale}中的「正確方法」。現在,大多數路由的翻譯工作正常,但其中一些(/ login,/ register,...)保持採用默認語言(本例中爲fr),因爲它們中沒有{_locale}部分網址。Symfony2翻譯:語言環境被忽略
通過調試面板,我意識到該區域設置實際上沒有通過網址導航進行更改(不像this讓我相信)。
所以我去了there,在那裏我找到了信息和鏈接來建立一個監聽器,以便改變被調用路徑的會話區域設置。 所有默認的語言環境聲明(config.yml和listener本身)都是「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>
我我沒有在這裏使用Doctrine翻譯,大部分翻譯都是通過枝條完成的。 我檢查了默認值(使用Symfony 2.1,session:{default_locale:'fr_FR'}替換爲default_locale:%locale%),它們都是正確的(fr)。 我也注意到,在諸如/ register或/ login這樣的頁面上,語言環境現在被考慮在內。 我不明白的是,爲什麼在語言環境和網址中都使用了英語。 –