false, 'autoescape' => 'html', ]); // Add translation function $tFunc = new TwigFunction('t', function (string $key, array $params = []) { return Translator::t($key, $params); }); self::$twig->addFunction($tFunc); // Add flag emoji function $flagFunc = new TwigFunction('getFlag', function (string $langCode) { $flags = [ 'en' => '🇬🇧', 'ru' => '🇷🇺', 'es' => '🇪🇸', 'de' => '🇩🇪', 'fr' => '🇫🇷', 'zh' => '🇨🇳', ]; return $flags[$langCode] ?? '🌐'; }); self::$twig->addFunction($flagFunc); // Add globals foreach ($globals as $k => $v) self::$twig->addGlobal($k, $v); } public static function render(string $template, array $vars = []): void { if (!self::$twig) throw new RuntimeException('Twig is not initialized'); echo self::$twig->render($template, $vars); } }