Отключить кеш переводчика - PullRequest
5 голосов
/ 23 ноября 2011

Я пытаюсь отключить кеш переводчика следующим образом:

приложение / Config / config.yml

    services:
        translator.default:
            class:  %translator.class%
            arguments: [ @service_container, @translator.selector, {}, { cache_dir: null, debug: %kernel.debug% }, @?session ]

Кэшируемый код в cache / dev / appDevDebugProjectContainer.php должен быть:


    protected function getTranslator_DefaultService()
    {
        $this->services['translator.default'] = $instance = new \Symfony\Bundle\FrameworkBundle\Translation\Translator($this, new \Symfony\Component\Translation\MessageSelector(), array('translation.loader.php' => 'php', 'translation.loader.yml' => 'yml', 'translation.loader.xliff' => 'xliff'), array('cache_dir' => NULL, 'debug' => true), $this->get('session'));

        ... resources ...

        return $instance;
    }

Но я получил следующий код:


    protected function getTranslator_DefaultService()
    {
        return $this->services['translator.default'] = new \Symfony\Bundle\FrameworkBundle\Translation\Translator($this, new \Symfony\Component\Translation\MessageSelector(), array('translation.loader.db' => 'db', 'translation.loader.php' => 'php', 'translation.loader.yml' => 'yml', 'translation.loader.xliff' => 'xliff'), array('cache_dir' => NULL, 'debug' => true), $this->get('session'));
    }

Так что ресурсы переводчика пусты.

1 Ответ

0 голосов
/ 07 апреля 2013

Один из способов сделать это:

Редактировать symfony/src/Symfony/Bundle/FrameworkBundle/Translation/Translator.php и добавить метод:

public function setOption($option, $value)
{
    $this->options[$option] = $value;
}

В вашем AppKernel.php переопределить метод:

public function boot()
{
    parent::boot();
    $this->container->get('translator')->setOption('cache_dir', null);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...