. */ declare(strict_types=1); namespace FireflyIII\Support\Twig; use Twig_Extension; use Twig_SimpleFilter; use Twig_SimpleFunction; /** * Class Budget. */ class Translation extends Twig_Extension { /** * @return array */ public function getFilters(): array { $filters = []; $filters[] = new Twig_SimpleFilter( '_', function ($name) { return (string)trans(sprintf('firefly.%s', $name)); }, ['is_safe' => ['html']] ); return $filters; } /** * {@inheritdoc} */ public function getFunctions(): array { return [ $this->journalLinkTranslation(), ]; } /** * @return Twig_SimpleFunction */ public function journalLinkTranslation(): Twig_SimpleFunction { return new Twig_SimpleFunction( 'journalLinkTranslation', function (string $direction, string $original) { $key = sprintf('firefly.%s_%s', $original, $direction); return $key; $translation = trans($key); if ($key === $translation) { return $original; } return $translation; }, ['is_safe' => ['html']] ); } }