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$
|| ###################################################################
\*=====================================================================*/
?>