function smarty_block_tr($params, $content, &$smarty) { global $_SERVER; // < 4.1.0 static $init; static $default_languages = false; if (!$init) { $init = true; fbGettext::init(); if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $default_languages =& fbLocale::parseAcceptLanguages($_SERVER['HTTP_ACCEPT_LANGUAGE']); } } $lang = false; extract($params); if ($lang) { $languages =& fbLocale::parseAcceptLanguages($lang); } else { $languages = $default_languages; } /// \todo only switch locales if the current locale is different! fbLocale::pushLocale(LC_ALL, $languages); $rv = gettext($content); fbLocale::popLocale(LC_ALL); return $rv; }