[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 3 /* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12 namespace Symfony\Bridge\Twig\Extension; 13 14 use Symfony\Bridge\Twig\NodeVisitor\TranslationDefaultDomainNodeVisitor; 15 use Symfony\Bridge\Twig\NodeVisitor\TranslationNodeVisitor; 16 use Symfony\Bridge\Twig\TokenParser\TransChoiceTokenParser; 17 use Symfony\Bridge\Twig\TokenParser\TransDefaultDomainTokenParser; 18 use Symfony\Bridge\Twig\TokenParser\TransTokenParser; 19 use Symfony\Component\Translation\TranslatorInterface; 20 use Twig\Extension\AbstractExtension; 21 use Twig\NodeVisitor\NodeVisitorInterface; 22 use Twig\TokenParser\AbstractTokenParser; 23 use Twig\TwigFilter; 24 25 /** 26 * Provides integration of the Translation component with Twig. 27 * 28 * @author Fabien Potencier <fabien@symfony.com> 29 */ 30 class TranslationExtension extends AbstractExtension 31 { 32 private $translator; 33 private $translationNodeVisitor; 34 35 public function __construct(TranslatorInterface $translator, NodeVisitorInterface $translationNodeVisitor = null) 36 { 37 if (!$translationNodeVisitor) { 38 $translationNodeVisitor = new TranslationNodeVisitor(); 39 } 40 41 $this->translator = $translator; 42 $this->translationNodeVisitor = $translationNodeVisitor; 43 } 44 45 public function getTranslator() 46 { 47 return $this->translator; 48 } 49 50 /** 51 * {@inheritdoc} 52 */ 53 public function getFilters() 54 { 55 return array( 56 new TwigFilter('trans', array($this, 'trans')), 57 new TwigFilter('transchoice', array($this, 'transchoice')), 58 ); 59 } 60 61 /** 62 * Returns the token parser instance to add to the existing list. 63 * 64 * @return AbstractTokenParser[] 65 */ 66 public function getTokenParsers() 67 { 68 return array( 69 // {% trans %}Symfony is great!{% endtrans %} 70 new TransTokenParser(), 71 72 // {% transchoice count %} 73 // {0} There is no apples|{1} There is one apple|]1,Inf] There is {{ count }} apples 74 // {% endtranschoice %} 75 new TransChoiceTokenParser(), 76 77 // {% trans_default_domain "foobar" %} 78 new TransDefaultDomainTokenParser(), 79 ); 80 } 81 82 /** 83 * {@inheritdoc} 84 */ 85 public function getNodeVisitors() 86 { 87 return array($this->translationNodeVisitor, new TranslationDefaultDomainNodeVisitor()); 88 } 89 90 public function getTranslationNodeVisitor() 91 { 92 return $this->translationNodeVisitor; 93 } 94 95 public function trans($message, array $arguments = array(), $domain = null, $locale = null) 96 { 97 return $this->translator->trans($message, $arguments, $domain, $locale); 98 } 99 100 public function transchoice($message, $count, array $arguments = array(), $domain = null, $locale = null) 101 { 102 return $this->translator->transChoice($message, $count, array_merge(array('%count%' => $count), $arguments), $domain, $locale); 103 } 104 105 /** 106 * {@inheritdoc} 107 */ 108 public function getName() 109 { 110 return 'translator'; 111 } 112 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |