Added localization system -- specific localities do not work, but the framework is...
[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 * The lex lookup table
45 * @var array
46 */
47 var $lextable = array();
48
49 function string($key)
50 {
51 return $key;
52 }
53
54 /**
55 * Returns a value from the lex table for a specific code
56 *
57 * @param str Lex code
58 *
59 * @return str Localized string
60 */
61 function getlex($code)
62 {
63 if (isset($this->lextable["$code"]))
64 {
65 return $this->lextable["$code"];
66 }
67
68 trigger_error('Lex code `' . $code . '` did not appear in the lex table', E_USER_ERROR);
69 }
70
71 /**
72 * Sets a value in the lex table for easy access of strings
73 * that are commonly used
74 *
75 * @param str Lex code
76 * @param str Text equiv
77 */
78 function setlex($code, $value)
79 {
80 if (isset($this->lextable["$code"]))
81 {
82 trigger_error('Cannot set lex `' . $code . '` : value already exists', E_USER_ERROR);
83 }
84
85 $this->lextable["$code"] = $this->string($value);
86 }
87 }
88
89 /*=====================================================================*\
90 || ###################################################################
91 || # $HeadURL$
92 || # $Id$
93 || ###################################################################
94 \*=====================================================================*/
95 ?>