db->query(" (SELECT varname, phrasetext FROM " . TABLE_PREFIX . "phrase) UNION ALL (SELECT varname, phrasetext FROM " . TABLE_PREFIX . "locale WHERE languageid = " . intval($languageid) . ")" ); while ($phrase = $bugsys->db->fetch_array($phrases)) { $this->language["$phrase[varname]"] = $phrase['phrasetext']; } $bugsys->db->free_result($phrases); } /** * Singleton initializer * * @param integer Language ID */ function init($languageid = 0) { static $instance; if (!$instance) { if (!$languageid) { trigger_error('No language selected', E_USER_ERROR); } $instance = new lang($languageid); } return $instance; } /** * Fetches a phrase from the language array * * @param string Phrase name * @return string The phrase text */ function fetch_phrase($phrasename) { return $this->language["$phrasename"]; } /** * Takes a phrase name and the arguments for it and constructs it * * @param string Phrase name * @param arguments Values for the arguments the phrase takes * @return string Processed phrase */ function p() { $obj =& lang::init(); $args = func_get_args(); $numargs = sizeof($args); if ($numargs < 1) { return false; } if ($phrasetext = $obj->fetch_phrase($args[0])) { if ($numargs < 2) { $phrase = $phrasetext; } else { $args[0] = $phrasetext; if (($phrase = @call_user_func_array('sprintf', $args)) === false) { for ($i = 1; $i < $numargs; $i++) { $phrase = str_replace("%{$i}\$s", $args["$i"], $args[0]); } } } return preg_replace('#%([0-9].*?)\$s#', '[ARG \\1: UNDEFINED]', $phrase); } else { return "[UNDEFINED PHRASE: $args[0]]"; } return $phrase; } } /*=====================================================================*\ || ################################################################### || # $HeadURL$ || # $Id$ || ################################################################### \*=====================================================================*/ ?>