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; }
echo "setlocale(LC_ALL, '$locale')=",setlocale(LC_ALL, $locale),"\n"; echo 'setlocale(0, 0)=', setlocale(0, 0),"\n"; echo 'strftime(\'%A %e %B %Y\', mktime (0, 0, 0, 12, 22, 1978))=',strftime('%A %e %B %Y', mktime (0, 0, 0, 12, 22, 1978)),"\n"; echo 'gettext("24 hours")=',gettext("24 hours"),"\n"; echo 'gettext(\'24 hours\')=',gettext('24 hours'),"\n"; // _() as in alias for gettext() echo '_("24 hours")=',_("24 hours"),"\n"; echo '_(\'24 hours\')=',_('24 hours'),"\n"; //echo 'fbLocale::parseAcceptLanguages='; //print_r(fbLocale::parseAcceptLanguages()); */ // echo 'fbLocale::parseAcceptLanguages='; // print_r(fbLocale::parseAcceptLanguages()); // echo "\n"; echo 'fbLocale::getNearestLocales(fbLocale::parseAcceptLanguages())='; print_r(fbLocale::getNearestLocales(fbLocale::parseAcceptLanguages())); print "\n"; echo 'fbLocale::getAvailableLocales='; print_r(fbLocale::getAvailableLocales()); echo '$long_month_names_hash ='; print_r($long_month_names_hash); echo '$long_weekday_names_hash ='; print_r($long_weekday_names_hash); /* $locales = fbLocaleWindows::mimeToWindowsLocaleMap(); foreach ($locales as $iso_locale => $country_name) { $nearest_locale = fbLocale::getNearestLocale($iso_locale); $nearest_country_name = ''; printf("%-10s %-30s %-10s %-30s\n", $iso_locale, $country_name, $nearest_locale, $nearest_country_name); }