symfony - 关闭翻译缓存

标签 symfony caching localization

我正在尝试通过这种方式关闭翻译缓存:

应用程序/配置/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/

相关文章:

performance - 如何检查应用程序是否受 CPU 限制或内存限制?

parsing - 如何使用 NoSQL 实现本地化

php - FOSUserBundle 'Class ' FOS\UserBundle\FOSUserBundle' 在 app/AppKernel.php 中找不到的 Symfony 2.1 配置

php - Symfony 2 + Doctrine 2 + 继承

ruby-on-rails - 尽管 expires_in 24.hours,Rails 缓存值丢失/为零

java - 具有用于数据一致性的同步写入的 ehcache 的开源替代方案

c# - 如何在 Winforms 中制作多语言应用程序?

c - 函数名 "conv"中的 "localeconv()"是什么意思?

php - 如何在管理类中将函数作为参数传递

php - Symfony 2 附加 Javascripts,只是一个请求