Exemplo n.º 1
0
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;
}