Symfony2 + Twig:将标签翻译成新的枝条扩展

时间:2012-01-03 08:48:00

标签: symfony translation twig

我已经实现了一个新的枝条扩展,我有一些必须翻译的文本。

不幸的是,当我使用code label时,它会显示为示例文本。

我的意思是当twig呈现以下扩展名时,会显示: 5 entity.years ,而不是 5 years ,例如:

class MyExtension extends \Twig_Extension {
public function getFilters()
{
    return array(
        'myextension' => new \Twig_Filter_Method($this, 'myextension'),
    );
}

public function myextension ($myId)
{
        // ....
        // Some operations concerning $myId...
        // ....
    if($myId!=0) { 
        $res = $myId. ' '.'entity.year'; 
    } else { 
        $res = ($months == 0 ? $days.'entity.days' : $months.'entity.months'); 
    } 

    return $res;
}
}

entity.yearsentity.monthsentity.days定义到我的翻译文件夹中。

1 个答案:

答案 0 :(得分:1)

Injecttranslator服务加入您的扩展程序并使用它。例如:

class MyExtension extends \Twig_Extension
{
    private $translator;

    public function __construct(Translator $translator)
    {
        $this->translator = $translator;
    }

    // ...

    public function myMethod()
    {
        return $this->translator->trans('my_string');
    }
}