Added init_with_table()
[isso.git] / localize.php
1 <?php
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 \*=====================================================================*/
12
13 /**
14 * Localization system
15 * localize.php
16 *
17 * @package ISSO
18 */
19
20 $OBJECT = 'Localization System';
21 $CLASS = 'Localize';
22 $OBJ = 'lang';
23
24 /**
25 * Localization System
26 *
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.
34 *
35 * @author Iris Studios, Inc.
36 * @copyright Copyright ©2002 - [#]year[#], Iris Studios, Inc.
37 * @version $Revision$
38 * @package ISSO
39 *
40 */
41 class Localize
42 {
43 /**
44 * Localization table
45 * @var array
46 */
47 var $localtable = array();
48
49 /**
50 * The lex lookup table
51 * @var array
52 */
53 var $lextable = array();
54
55 /**
56 * Initializes the localization system with a table
57 *
58 * @param array Localization table
59 */
60 function init_with_table($table)
61 {
62 $this->localtable = $table;
63 }
64
65 /**
66 * Returns a localized string from the table
67 *
68 * @param str Text to localize
69 *
70 * @return str Localized string
71 */
72 function string($key)
73 {
74 return $key;
75 }
76
77 /**
78 * Returns a value from the lex table for a specific code
79 *
80 * @param str Lex code
81 *
82 * @return str Localized string
83 */
84 function getlex($code)
85 {
86 if (isset($this->lextable["$code"]))
87 {
88 return $this->lextable["$code"];
89 }
90
91 trigger_error('Lex code `' . $code . '` did not appear in the lex table', E_USER_ERROR);
92 }
93
94 /**
95 * Sets a value in the lex table for easy access of strings
96 * that are commonly used
97 *
98 * @param str Lex code
99 * @param str Text equiv
100 */
101 function setlex($code, $value)
102 {
103 if (isset($this->lextable["$code"]))
104 {
105 trigger_error('Cannot set lex `' . $code . '` : value already exists', E_USER_ERROR);
106 }
107
108 $this->lextable["$code"] = $this->string($value);
109 }
110 }
111
112 /*=====================================================================*\
113 || ###################################################################
114 || # $HeadURL$
115 || # $Id$
116 || ###################################################################
117 \*=====================================================================*/
118 ?>