我正在尝试通过这种方式关闭翻译缓存:
应用程序/配置/config.yml
服务:
翻译器。默认:
类(class):%translator.class%
参数:[ @service_container, @translator.selector, {}, { cache_dir: null, debug: %kernel.debug% }, @?session ]
cache/dev/appDevDebugProjectContainer.php 中的缓存代码应该是:
protected 函数 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'));
... 资源 ...
返回 $instance;
}
但我得到了以下代码:
protected 函数 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'));
}
所以翻译资源是空的。
最佳答案
一种方法是:
编辑 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);
}
关于symfony - 关闭翻译缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8236887/