Kdyby\Translation\Latte\TranslateMacros::macroTranslate PHP Method

macroTranslate() public method

{_$var |modifiers} {_$var, $count |modifiers} {_"Sample message", $count |modifiers} {_some.string.id, $count |modifiers}
public macroTranslate ( MacroNode $node, PhpWriter $writer )
$node Latte\MacroNode
$writer Latte\PhpWriter
    public function macroTranslate(MacroNode $node, PhpWriter $writer)
    {
        if (class_exists('Latte\\Runtime\\FilterInfo')) {
            // Nette 2.4
            if ($node->closing) {
                return $writer->write('$_fi = new LR\\FilterInfo(%var); echo %modifyContent($this->filters->filterContent("translate", $_fi, ob_get_clean()))', $node->context[0]);
            } elseif ($node->empty = $node->args !== '') {
                if ($this->containsOnlyOneWord($node)) {
                    return $writer->write('echo %modify(call_user_func($this->filters->translate, %node.word))');
                } else {
                    return $writer->write('echo %modify(call_user_func($this->filters->translate, %node.word, %node.args))');
                }
            } else {
                return 'ob_start(function () {})';
            }
        } else {
            // <= Nette 2.3
            if ($node->closing) {
                return $writer->write('echo %modify($template->translate(ob_get_clean()))');
            } elseif ($node->isEmpty = $node->args !== '') {
                if ($this->containsOnlyOneWord($node)) {
                    return $writer->write('echo %modify($template->translate(%node.word))');
                } else {
                    return $writer->write('echo %modify($template->translate(%node.word, %node.args))');
                }
            } else {
                return 'ob_start()';
            }
        }
    }