Я хочу перевести свой сайт с Symfony. Я активировал переводчик в своей конфигурации.
# 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
Мои файлы переводов находятся в app / config / Resources / messages.en.yml и app / config / Resources / messages.fr.yml.
Но когда я делаю это в своем контроллере:
$translator = $this->get('translator'); var_dump($translator->trans('hello')); exit();
Он по-прежнему отображает «привет» вместо «Bonjour». Я проверил свой языковой стандарт PHP с помощью \ Locale :: getDefault (), это «en», а мой язык Symfony – «fr» (полученный getLocale () на объекте транслятора).
Он работает, когда я устанавливаю вручную локаль в начале моего действия, но у меня много действий, и я бы хотел установить локаль по умолчанию для всего веб-сайта. Я думал, что config.yml может сделать это для меня, но кажется, что это не так … Вы видите, откуда моя проблема? Спасибо !
Попробуйте очистить кеш app/cache
в app/cache
. Это очень важно в первый раз.
Также вы должны добавить языковой стандарт в свой маршрутизатор