Symfony2:transchoice里面的树枝过滤器

时间:2013-04-03 09:46:06

标签: symfony internationalization translation

我使用的是基于Symfony2,Twig和xliff的翻译。

现在,我想根据[-Inf,Inf]之间的数值显示文字。为此,我使用transchoice

我的问题:如果7 days ago,我想显示count=-7。但是,我得到-7 days ago。我不能在transchoice字段中使用像abs这样的树枝过滤器,对吗?如何删除前导减号。

这是我的message.en.xliff ...

<?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="en" datatype="plaintext" original="file.ext">
        <body>
            <trans-unit id="1">
               <source>todo.days-difference</source>
                   <target>{0} today|{1} tommorow|]1,14] %count% days before|]14,Inf] far away|{-1} yesterday|[-14,-1[{{ count }}%count% days after|[-Inf,-14[ long after</target>
            </trans-unit>
        </body>
    </file>
</xliff>

1 个答案:

答案 0 :(得分:1)

传递count变量的绝对值作为参数解决了问题:

    {{ "todo.days-differences"|transchoice(task.getDueDateDifference(), {'%count_abs%': task.getDueDateDifference()|abs}) }}

    <?xml version="1.0"?>
    <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
        <file source-language="en" datatype="plaintext" original="file.ext">
            <body>
                <trans-unit id="1">
                   <source>todo.days-difference</source>
                       <target>{0} today|{1} tommorow|]1,14] %count_abs% days before|]14,Inf] far away|{-1} yesterday|[-14,-1[ %count_abs% days after|[-Inf,-14[ long after</target>
                </trans-unit>
            </body>
        </file>
    </xliff>