2013-04-03 36 views
0

樹枝過濾器,我使用Symfony2中,嫩枝和基於XLIFF翻譯。Symfony2的:內transchoice

現在,我想基於數值是[-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

傳遞計數變量作爲參數的絕對值解決了這個問題:

{{ "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>