Example #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;
}
Example #2
0
    printf("%-12s\t%-10s\t%-10s\t%-10s", strftime("%A", $date), strftime("%a", $date), strftime("%B", $date), strftime("%b", $date), strftime("%c", $date));
    //	if (isset($supported_locales[$rv])) {
    //		echo $supported_locales[$rv];
    //	}
    echo "\n";
    @($supported_locales[$rv] .= $id3 . ' ');
    resetlocale();
}
echo "\nsetlocale('language name')\n\n";
$language_id3_hash = fbISO639_Alpha3::getNameToIDHash();
foreach ($language_id3_hash as $language => $id3) {
    $rv = setlocale(LC_ALL, $language);
    if (!$rv) {
        continue;
    }
    $a = fbLocale::_parseLocale($rv);
    //print_r($a);
    if (isset($supported_locales[$rv])) {
        //		$supported_locales[$rv] .= $id3 . ' ';
        continue;
    }
    if (strpos($rv, $language) === false) {
        $rv .= ' ??';
    }
    $id2 = fbISO639_Map::getID2($id3);
    $ids = $id3 . ' ' . $id2;
    printf("%-40s%-10s\t", $language, $ids);
    printf("%-40s\t", $rv);
    printf("%-12s\t%-10s\t%-10s\t%-10s", strftime("%A", $date), strftime("%a", $date), strftime("%B", $date), strftime("%b", $date), strftime("%c", $date));
    //	if (isset($supported_locales[$rv])) {
    //		echo $supported_locales[$rv];
Example #3
0
echo html_header_demo('fbLocale Class');
echo "<pre>\n";
require_once FREEBEER_BASE . '/lib/Locale.php';
//exit;
$iso_codes = array('it_IT' => 'Italian', 'fr_FR' => 'French', 'es_ES' => 'Spanish', 'nl_NL' => 'Dutch', 'en_US' => 'English', 'pt_PT' => 'Portuguese');
echo "fbLocale::getLocale(LC_ALL)=", fbLocale::getLocale(LC_ALL), "\n";
foreach ($iso_codes as $iso_code => $language) {
    //	putenv('LANG=' . $iso_code);
    fbLocale::setLocale(LC_ALL, $iso_code);
    /*	
    	// \todo convert to one function!
    	putenv('LANG=' . $iso_code);
    	if (preg_match('/^win/i', PHP_OS)) {
    		$rv = setlocale(LC_ALL, $language);
    	} else {
    		$rv = setlocale(LC_ALL, $iso_code);
    	}
    */
    printf("%-12s: %s\n", $language, strftime("%A %a %B %b %c\n"));
    fbLocale::setLocale(LC_ALL, 'en_US');
}
?>

</pre>
<address>
$CVSHeader: _freebeer/www/demo/Locale.php,v 1.2 2004/03/07 17:51:33 ross Exp $
</address>

</body>
</html>
Example #4
0
 function _getDateNames($format, $locale = null)
 {
     static $rv = array();
     $get_locale = is_null($locale);
     if ($get_locale) {
         $locale = fbLocale::getLocale(LC_TIME);
     }
     if (!isset($rv[$locale])) {
         if (!$get_locale) {
             fbLocale::pushLocale(LC_TIME, $locale);
         }
         $t = array();
         for ($i = 0; $i < 12; ++$i) {
             $date = mktime(0, 0, 0, 1 + $i, 1, 2003);
             $t['B'][] = strftime('%B', $date);
             $t['b'][] = strftime('%b', $date);
         }
         for ($i = 0; $i < 7; ++$i) {
             $date = mktime(0, 0, 0, 11, 9 + $i, 2003);
             // 9-Nov-2003 was a Sunday
             $t['A'][] = strftime('%A', $date);
             $t['a'][] = strftime('%a', $date);
         }
         $rv[$locale] = $t;
         if (!$get_locale) {
             fbLocale::popLocale(LC_TIME);
         }
     }
     return $rv[$locale][$format];
 }
Example #5
0
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);
}
*/
/*
setlocale(LC_ALL, 'usa');
Example #6
0
 function numberFormat($number, $digits = null, $locale = null)
 {
     fbDebug::enter();
     static $localeconv_cache = array();
     $get_locale = is_null($locale);
     fbDebug::dump($get_locale, '$get_locale');
     if ($get_locale) {
         $locale = fbLocale::getLocale(LC_MONETARY);
         fbDebug::dump($locale, '$locale');
     }
     fbDebug::dump($localeconv_cache, '$localeconv_cache');
     if (!isset($localeconv_cache[$locale])) {
         fbDebug::dump($locale, '$locale');
         if (!$get_locale) {
             $rv = fbLocale::pushLocale(LC_MONETARY, $locale);
             fbDebug::dump($rv, '$rv');
         }
         $_locale = fbLocale::getLocale(LC_MONETARY);
         fbDebug::dump($_locale, '$_locale');
         $localeconv_cache[$locale] = localeconv();
         fbDebug::dump($localeconv_cache[$locale], '$localeconv_cache[$locale]');
         if (!$get_locale) {
             fbLocale::popLocale(LC_MONETARY);
         }
     }
     $lc = $localeconv_cache[$locale];
     fbDebug::dump($lc, '$lc');
     if (is_null($digits)) {
         $digits = $lc['int_frac_digits'];
     }
     $rv = number_format($number, $digits, $lc['mon_decimal_point'], $lc['mon_thousands_sep']);
     $n = strpos($rv, '-');
     if ($n !== false) {
         $rv = str_replace('-', $lc['negative_sign'], $rv);
     }
     fbDebug::leave($rv);
     return $rv;
 }
Example #7
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;
 }
Example #8
0
function resetlocale()
{
    fbLocale::setlocale(LC_ALL, 'C') || fbLocale::setlocale(LC_ALL, '') || fbLocale::setlocale(LC_ALL, 'usa') || fbLocale::setlocale(LC_ALL, 'us') || fbLocale::setlocale(LC_ALL, 'en_US');
}