我已经实现了一个新的枝条扩展,我有一些必须翻译的文本。
不幸的是,当我使用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.years
,entity.months
,entity.days
定义到我的翻译文件夹中。
答案 0 :(得分:1)
Inject将translator
服务加入您的扩展程序并使用它。例如:
class MyExtension extends \Twig_Extension
{
private $translator;
public function __construct(Translator $translator)
{
$this->translator = $translator;
}
// ...
public function myMethod()
{
return $this->translator->trans('my_string');
}
}