2 /*=====================================================================*\
3 || ################################################################### ||
4 || # Iris Studios Shared Object Framework [#]version[#]
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 \*=====================================================================*/
20 $OBJECT = 'Localization System';
27 * This framework handles localization. Localization in new ISSO
28 * applications is done through this framework. Nearly all strings
29 * are passed to the string function, which looks up the string in
30 * a .strings.xml file during runtime. Before release, a C tool
31 * creates the .strings.xml file for translators. Common strings
32 * can be accessed through the get lex function which calls a string
33 * based on unique identifier; this is useful for commonly used strings.
35 * @author Iris Studios, Inc.
36 * @copyright Copyright ©2002 - [#]year[#], Iris Studios, Inc.
47 var $localtable = array();
50 * The lex lookup table
53 var $lextable = array();
56 * Initializes the localization system with a table
58 * @param array Localization table
60 function init_with_table($table)
62 $this->localtable
= $table;
66 * Returns a localized string from the table
68 * @param str Text to localize
70 * @return str Localized string
78 * Returns a value from the lex table for a specific code
82 * @return str Localized string
84 function getlex($code)
86 if (isset($this->lextable
["$code"]))
88 return $this->lextable
["$code"];
91 trigger_error('Lex code `' . $code . '` did not appear in the lex table', E_USER_ERROR
);
95 * Sets a value in the lex table for easy access of strings
96 * that are commonly used
99 * @param str Text equiv
101 function setlex($code, $value)
103 if (isset($this->lextable
["$code"]))
105 trigger_error('Cannot set lex `' . $code . '` : value already exists', E_USER_ERROR
);
108 $this->lextable
["$code"] = $this->string($value);
112 /*=====================================================================*\
113 || ###################################################################
116 || ###################################################################
117 \*=====================================================================*/