gpt4 book ai didi

php - 如何在 symfony2 翻译中使用配置值?

转载 作者:可可西里 更新时间:2023-11-01 12:37:37 26 4
gpt4 key购买 nike

是否可以在 symfony 2 的翻译文件中使用 config.yml 中的全局变量?如果是,能否提供一些示例或有用的链接?

最佳答案

要将一个(或所有)twig 全局变量注入(inject)到您的翻译中,您需要覆盖翻译服务。查看this answer如果你想要一个详细的解释。这是我所做的:

覆盖 translator.class 参数(例如,在您的 parameters.yml 中):

translator.class:  Acme\YourBundle\Translation\Translator

创建新的 Translator 服务:

use Symfony\Bundle\FrameworkBundle\Translation\Translator as BaseTranslator;

class Translator extends BaseTranslator
{

}

最后覆盖transtransChoice:

/**
* {@inheritdoc}
*/
public function trans($id, array $parameters = array(), $domain = null, $locale = null)
{
return parent::trans(
$id,
array_merge($this->container->get('twig')->getGlobals(), $parameters),
$domain,
$locale
);
}

/**
* {@inheritdoc}
*/
public function transChoice($id, $number, array $parameters = array(), $domain = null, $locale = null)
{
return parent::transChoice(
$id,
$number,
array_merge($this->container->get('twig')->getGlobals(), $parameters),
$domain,
$locale
);
}

在此示例中,我注入(inject)了所有 Twig 全局变量。你只能像这样注入(inject)一个:

array_merge(['%your_global%' => $this->container->get('twig')->getGlobals()['your_global']], $parameters)

关于php - 如何在 symfony2 翻译中使用配置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17742382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com