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;
}
Exemplo n.º 2
0
 function gettext($message)
 {
     fbDebug::enter();
     static $current_locale = null;
     $locale = fbLocale::getLocale();
     if ($locale != $current_locale) {
         fbGettext::_loadData();
         $current_locale = $locale;
     }
     $translation_map =& fbGettext::_translation_map();
     fbDebug::dump($translation_map, 'translation_map');
     if (isset($translation_map[$message])) {
         return $translation_map[$message];
     }
     return $message;
 }