2016-08-29 24 views
0

我使用爾康與伏於我的多語言翻譯應用。爾康伏,如何打印帶有可變

我設置包含以下變量的翻譯文件:

'numbervalidation-field' => '%field% is a number', 
'Teams' => 'Teams', 

而且我這是怎麼打印「團隊是一個數字」正確

<?php echo $t->_("numbervalidation-field", array("field" => $t->_('Teams'))); ?> 

我只是希望能夠打印使用伏特相同,我已經嘗試了幾件事情,但沒有任何作品,這是我最近的嘗試:

{{t['numbervalidation-field', ['field': t['Teams']]]}} 

請幫忙,我找不到如何做到這一點。

+0

你不應該使用'_()'functio還有伏特嗎?像'{{t _('number ....')}}'。 –

+1

@NikolayMihaylov,不應該是'{{t ._('number')}}'? (缺少'.') – Timothy

+0

@Timothy它應該!謝謝:) –

回答

0

您只需將您的$t變量(翻譯對象)分配給視圖控制器中的$this->view->t即可。

打開控制器文件,找到適當的行動,並添加

$this->view->t = $t; 

的地方在那裏你可以用$ T翻譯您的字符串。將它放在基本控制器中是一個不錯的主意,所以您可以在每個視圖中使用它。

然後你可以自由地用翻譯與{{ t._('SOMETHING') }}。你也可以用字段添加替換陣列中的伏翻譯功能,這樣的第二個參數:

{{ t._('CODE',[parameters]) }} 

其中[parameters]是具有與鍵的值的字符串替換領域的數組。

+0

OP詢問如何使用帶變量**的翻譯器**。你的例子只是一個正常的翻譯。如果可能,請使用翻譯變量擴展您的示例! – Timothy

+0

@Timothy當然,將馬上做 – Luke

+0

感謝@Luke,期待與變量看到它 –

0

您可以使用過濾器的易用性,假設你的翻譯服務是$di->t,將閱讀:

$volt->getCompiler()->addFilter('trans', function ($resolvedArgs, $exprArgs) { 
    return sprintf('$this->t->query(%s)', $resolvedArgs); 
}); 

然後,在伏模板,你可以這樣做:

{{ 'name'|trans }} 

在你的情況下,你會有兩個翻譯,所以它可以這樣讀:

{{ 'numbervalidation-field'|trans({'field': ('Teams'|trans)}) }}