3
我想用Symfony翻譯我的網站。我在我的配置中激活了翻譯器。Symfony2:默認語言環境不適用於翻譯
# app/config/config.yml
imports:
- { resource: parameters.yml }
- { resource: security.yml }
framework:
#esi: ~
translator: { fallback: "%locale%" }
secret: "%secret%"
router:
resource: "%kernel.root_dir%/config/routing.yml"
strict_requirements: ~
form: ~
csrf_protection: ~
validation: { enable_annotations: true }
templating:
engines: ['twig']
#assets_version: SomeVersionScheme
default_locale: %locale%
trusted_hosts: ~
trusted_proxies: ~
session:
# handler_id set to null will use default session handler from php.ini
handler_id: ~
fragments: ~
http_method_override: true
# app/config/parameters.yml
# This file is auto-generated during the composer install
parameters:
...
locale: fr
secret: MySecretToken
我的翻譯文件位於應用程序/配置/資源/ messages.en.yml和應用程序/配置/資源/ messages.fr.yml。
但我這樣做是在我的控制器時:
$translator = $this->get('translator');
var_dump($translator->trans('hello'));
exit();
它仍然顯示「你好」,而不是「卓悅」。我用\ Locale :: getDefault()檢查了我的PHP語言環境,它是「en」,我的Symfony語言環境是「fr」(通過翻譯器對象上的getLocale()獲得)。
它的工作原理是在我的動作開始時手動設置區域設置,但我有很多操作,我想爲整個網站設置默認區域設置。我認爲config.yml可以爲我做到這一點,但似乎並非如此......您是否看到我的問題來自哪裏?謝謝 !
好吧,它適用於「en」,但不適用於「fr」!爲什麼? oO – maxime
將您的語言環境變量添加到'routing.yml'中 –
我清除了緩存,並且它工作正常!非常感謝,我覺得自己像一個新手,但沒關係,因爲它的工作原理! – maxime