繁体   English   中英

Twig - 在选项中添加翻译

[英]Twig - Adding translation in a choice option

我正在与树枝中的定制形式的问题作斗争。

我的问题是在选项值的选项中添加翻译,例如{{'years'| trans}}。 我可以通过调用翻译器在FormType代码中设置它,但它并不那么容易,它应该在twig中完成,因为它是演示的地方。 我不能做以下工作:

{{ numberYears ~ ' ' ~ 'years'|trans ~ ' -' ~ cost * numberYears ~ 'credits'|trans }}

如果有人可以提供帮助,那将非常愉快!

[编辑]

事实上我的问题并不完善,所以我在下面重新制定:

在我的FormType中,我有以下代码,我想翻译年份,年份和学分。 我想我可以通过调用转换器在FormType中完成它,但我认为最好将选择数组作为关联array($cost, $year) ,然后根据key,value在twig中构建标签,但是我找不到要覆盖的块。

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $userCredits = 15;
    $cost = 5;

    $yearsMax = min(3, (int) floor($userCredits / $cost));
    $selectYears = array();
    for ($i = 1; $i <= $yearsMax; $i++) {
        $years = $i == 1 ? ' year' : ' years';
        $value = $i . $years . ' -' . $cost * $i . ' credits';
        $selectYears[$value] = $i;
    }
    $builder
        ->add('renewalYear', ChoiceType::class, array(
            'label' => 'text.renew_for',
            'required' => true,
            'choices'  => $selectYears
            ))
    ;
}

从Symfony 2.7开始,您可以使用choice_translation_domain选项来转换选择值。

尝试用括号括起来:

{{ numberYears ~ ' ' ~ ('years'|trans) ~ ' -' ~ cost * numberYears ~ ('credits'|trans) }}

希望这有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM