From 8257864829ffdfb410f05e0dd0a9c781f48b741a Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Wed, 29 Aug 2018 15:29:48 +0200 Subject: Added translation support for twig templates See https://twig-extensions.readthedocs.io/en/latest/i18n.html for documentation --- src/Renderer/Twig/Extensions/Translation.php | 57 ++++++++++++++++++++++++++++ src/Renderer/TwigServiceProvider.php | 10 +++-- 2 files changed, 63 insertions(+), 4 deletions(-) create mode 100644 src/Renderer/Twig/Extensions/Translation.php (limited to 'src') diff --git a/src/Renderer/Twig/Extensions/Translation.php b/src/Renderer/Twig/Extensions/Translation.php new file mode 100644 index 00000000..63f9800e --- /dev/null +++ b/src/Renderer/Twig/Extensions/Translation.php @@ -0,0 +1,57 @@ +translator = $translator; + $this->tokenParser = $tokenParser; + } + + /** + * @return array + */ + public function getFilters() + { + return [ + new TwigFilter('trans', [$this->translator, 'translate']), + ]; + } + + /** + * @return TwigFunction[] + */ + public function getFunctions() + { + return [ + new TwigFunction('__', [$this->translator, 'translate']), + ]; + } + + /** + * @return TwigTokenParser[] + */ + public function getTokenParsers() + { + return [$this->tokenParser]; + } +} diff --git a/src/Renderer/TwigServiceProvider.php b/src/Renderer/TwigServiceProvider.php index 4a5b1de3..0f453989 100644 --- a/src/Renderer/TwigServiceProvider.php +++ b/src/Renderer/TwigServiceProvider.php @@ -6,6 +6,7 @@ use Engelsystem\Container\ServiceProvider; use Engelsystem\Renderer\Twig\Extensions\Config; use Engelsystem\Renderer\Twig\Extensions\Globals; use Engelsystem\Renderer\Twig\Extensions\Session; +use Engelsystem\Renderer\Twig\Extensions\Translation; use Engelsystem\Renderer\Twig\Extensions\Url; use Twig_Environment as Twig; use Twig_LoaderInterface as TwigLoaderInterface; @@ -14,10 +15,11 @@ class TwigServiceProvider extends ServiceProvider { /** @var array */ protected $extensions = [ - 'config' => Config::class, - 'globals' => Globals::class, - 'session' => Session::class, - 'url' => Url::class, + 'config' => Config::class, + 'globals' => Globals::class, + 'session' => Session::class, + 'url' => Url::class, + 'translation' => Translation::class, ]; public function register() -- cgit v1.2.3-54-g00ecf