public TwigNodeTrans::compile(\Twig_Compiler $compiler)
Overrides Twig_Node::compile
File
- core/lib/Drupal/Core/Template/TwigNodeTrans.php, line 32
Class
- TwigNodeTrans
- A class that defines the Twig 'trans' tag for Drupal.
Namespace
Drupal\Core\Template
Code
public function compile(\Twig_Compiler $compiler) { $compiler->addDebugInfo($this); $options = $this->getNode('options'); list($singular, $tokens) = $this->compileString($this->getNode('body')); $plural = NULL; if (NULL !== $this->getNode('plural')) { list($plural, $pluralTokens) = $this->compileString($this->getNode('plural')); $tokens = array_merge($tokens, $pluralTokens); } // Start writing with the function to be called. $compiler->write('echo ' . (empty($plural) ? 't' : '\Drupal::translation()->formatPlural') . '('); // Move the count to the beginning of the parameters list. if (!empty($plural)) { $compiler->raw('abs(')->subcompile($this->getNode('count'))->raw('), '); } // Write the singular text parameter. $compiler->subcompile($singular); // Write the plural text parameter, if necessary. if (!empty($plural)) { $compiler->raw(', ')->subcompile($plural); } // Write any tokens found as an associative array parameter, otherwise just // leave as an empty array. $compiler->raw(', array('); foreach ($tokens as $token) { $compiler->string($token->getAttribute('placeholder'))->raw(' => ')->subcompile($token)->raw(', '); } $compiler->raw(')'); // Write any options passed. if (!empty($options)) { $compiler->raw(', ')->subcompile($options); } // Write function closure. $compiler->raw(')'); // @todo Add debug output, see https://www.drupal.org/node/2512672 // End writing. $compiler->raw(";\n"); }
Please login to continue.