r438: - change "phrase" to "string"
[bugdar.git] / includes / language.php
1 <?php
2 /*=====================================================================*\
3 || ################################################################### ||
4 || # BugStrike [#]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 // LEXICAL STRING CONSTANTS
15
16 $lang->setlex('error_invalid_id', $lang->string('That is an invalid ID.'));
17
18 // ###################################################################
19 // updates the localization cache
20 function build_language_cache($languageid)
21 {
22 global $bugsys;
23
24 $bugsys->db->query("DELETE FROM localization WHERE languageid = $languageid");
25
26 $localizations = fetch_strings($language['languageid'], true);
27 foreach ($localizations AS $key => $value)
28 {
29 $bugsys->db->query("INSERT INTO localization (localkey, localtext, languageid) VALUES ('" . $bugsys->escape($key) . "', '" . $bugsys->escape($value) . "', $languageid)");
30 }
31 }
32
33 // ###################################################################
34 // fetches phrases from the system
35 function fetch_strings($languageid, $forcexml = false)
36 {
37 global $bugsys;
38
39 $language =& $bugsys->datastore['language']["$languageid"];
40
41 $locals = array();
42
43 if ($language['debug'] OR $forcexml)
44 {
45 if (!file_exists($language['filename']))
46 {
47 trigger_error('Cannot load XML strings file', E_USER_WARNING);
48 return;
49 }
50
51 $xmldata = file_get_contents($language['filename']);
52 if ($xmldata === false)
53 {
54 trigger_error('Error reading XML strings file', E_USER_WARNING);
55 return;
56 }
57
58 $xml = $bugsys->xml->parse($xmldata);
59 foreach ($xml['localization']['string'] AS $string)
60 {
61 $locals[ $string['key']['value'] ] = $string['value']['value'];
62 }
63 }
64 else
65 {
66 $localizations = $bugsys->db->query("SELECT * FROM " . TABLE_PREFIX . "localization WHERE languageid = $languageid");
67 while ($local = $bugsys->db->fetch_array($localizations))
68 {
69 $locals["$local[localkey]"] = $local['localtext'];
70 }
71 $bugsys->db->free_result($localizations);
72 }
73
74 return $locals;
75 }
76
77 // ###################################################################
78 // determines the user's language
79 function fetch_user_language()
80 {
81 global $bugsys;
82
83 if ($bugsys->userinfo['userid'])
84 {
85 $languageid = $bugsys->userinfo['languageid'];
86 $language = $bugsys->datastore['language']["$languageid"];
87 }
88
89 if (!$languageid)
90 {
91 foreach ($bugsys->datastore['language'] AS $language)
92 {
93 if ($language['default'])
94 {
95 $languageid = $language['languageid'];
96 $language = $bugsys->datastore['language']["$languageid"];
97 break;
98 }
99 }
100 }
101
102 $lang['id'] = $language['languageid'];
103 $lang['charset'] = $language['charset'];
104 $lang['direction'] = $language['direction'];
105 $lang['code'] = $language['languagecode'];
106
107 return $lang;
108 }
109
110 /*=====================================================================*\
111 || ###################################################################
112 || # $HeadURL$
113 || # $Id$
114 || ###################################################################
115 \*=====================================================================*/
116 ?>