2 /*=====================================================================*\
3 || ################################################################### ||
5 || # --------------------------------------------------------------- # ||
6 || # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
7 || # This file may not be reproduced in any way without permission. # ||
8 || # --------------------------------------------------------------- # ||
9 || # User License Agreement at http://www.iris-studios.com/license/ # ||
10 || ################################################################### ||
11 \*=====================================================================*/
14 * Language management class. Because this uses Simpleton we want to
15 * keep names as short as short as possible
19 var $language = array();
23 * Constructor -- Initializes the language system by fetching the
24 * appropriate language
26 * @param integer Language ID
28 function lang($languageid)
32 $phrases = $bugsys->db
->query("
33 (SELECT varname, phrasetext FROM " . TABLE_PREFIX
. "phrase)
35 (SELECT varname, phrasetext FROM " . TABLE_PREFIX
. "locale WHERE languageid = " . intval($languageid) . ")"
37 while ($phrase = $bugsys->db
->fetch_array($phrases))
39 $this->language
["$phrase[varname]"] = $phrase['phrasetext'];
41 $bugsys->db
->free_result($phrases);
45 * Singleton initializer
47 * @param integer Language ID
49 function init($languageid = 0)
57 trigger_error('No language selected', E_USER_ERROR
);
60 $instance = new lang($languageid);
67 * Fetches a phrase from the language array
69 * @param string Phrase name
70 * @return string The phrase text
72 function fetch_phrase($phrasename)
74 return $this->language
["$phrasename"];
78 * Takes a phrase name and the arguments for it and constructs it
80 * @param string Phrase name
81 * @param arguments Values for the arguments the phrase takes
82 * @return string Processed phrase
88 $args = func_get_args();
89 $numargs = sizeof($args);
96 if ($phrasetext = $obj->fetch_phrase($args[0]))
100 $phrase = $phrasetext;
104 $args[0] = $phrasetext;
105 if (($phrase = @call_user_func_array('sprintf', $args)) === false
)
107 for ($i = 1; $i < $numargs; $i++
)
109 $phrase = str_replace("%{$i}\$s", $args["$i"], $args[0]);
113 return preg_replace('#%([0-9].*?)\$s#', '<strong>[ARG \\1: UNDEFINED]</strong>', $phrase);
117 return "<strong>[UNDEFINED PHRASE: $args[0]]</strong>";
124 /*=====================================================================*\
125 || ###################################################################
128 || ###################################################################
129 \*=====================================================================*/