static function setLocale($category, $locale) { if ($locale === 0) { // use === to differentiate between string "0" if (self::$current_locale != '') { return self::$current_locale; } else { // obey LANG variable, maybe extend to support all of LC_* vars // even if we tried to read locale without setting it first return self::setLocale($category, self::$current_locale); } } else { if (function_exists('setlocale')) { $ret = setlocale($category, $locale); if ($locale == '' and !$ret or $locale != '' and $ret != $locale) { // failed setting it // Failed setting it according to environment. self::$current_locale = self::get_default_locale($locale); } else { self::$current_locale = $ret; } } else { // No function setlocale(), emulate it all. self::$current_locale = self::get_default_locale($locale); } return self::$current_locale; } }