2016-01-24 68 views
1

我將項目從2.5.x升級到2.8.1,突然樹枝不再使用正確的翻譯。symfony樹枝翻譯更新後無法正常工作

在樹枝模板我有這樣的事情: {% trans %}something.abc{% endtrans %}

我config.yml看起來是這樣的:

... 
framework: 
    translator:  ~ 
... 
templating: 
    engines: ['twig'] 
default_locale: en_US 

在控制器的行動:

$request->setLocale('nl_BE'); 

的頁面總是顯示en_US翻譯,從來沒有別的。

有什麼改變嗎?

+1

這是因爲'TranslatorListener'(https://github.com/symfony/symfony/blob/v2.8.2/src/Symfony/Component/HttpKernel/EventListener/TranslatorListener.php)在動作之前設置了區域設置在你的控制器中調用。使用'$ this-> get('translator') - > setLocale('nl_BE');'代替。 – Fracsi

+0

@Fracsi天才,工作!你可以把它作爲答案,然後我們可以解決這個問題? btw做了一些改變,或者我在2.5中做了這個錯誤? – yeager

+0

2.5沒有'TranslatorListener'。答案已添加。 – Fracsi

回答

3

這是因爲TranslatorListener(它是在2.6中添加的)在控制器中調用操作之前設置區域設置。如果要更改控制器中的區域設置,請改爲使用$this->get('translator')->setLocale('nl_BE');