Some smaller fixes.
[fa-stable.git] / includes / lang / language.php
1 <?php
2
3 if (!isset($path_to_root) || isset($_GET['path_to_root']) || isset($_POST['path_to_root']))
4         die("Restricted access");
5 include_once($path_to_root . "/lang/installed_languages.inc");
6 include_once($path_to_root . "/includes/lang/gettext.php");
7
8 class language 
9 {
10         var $name;
11         var $code;                      // eg. ar_EG, en_GB
12         var $encoding;          // eg. UTF-8, CP1256, ISO8859-1
13         var     $dir;                   // Currently support for Left-to-Right (ltr) and
14                                                 // Right-To-Left (rtl)
15
16         function language($name, $code, $encoding) 
17         {
18                 $this->name = $name;
19                 $this->code = $code;
20                 $this->encoding = $encoding;
21                 $this->dir = "ltr";
22         }
23
24         function get_language_dir() 
25         {
26                 return "lang/" . $this->code;
27         }
28
29
30         function get_current_language_dir() 
31         {
32                 $lang = $_SESSION['language'];
33                 return "lang/" . $lang->code;
34         }
35
36         function set_language($code) 
37         {
38                 if (isset($_SESSION['languages'][$code]) &&
39                         $_SESSION['language'] != $_SESSION['languages'][$code]) 
40                 {
41                         $_SESSION['language'] = $_SESSION['languages'][$code];
42                         reload_page("");
43                 }
44         }
45
46         function get_stylesheet() 
47         {
48                 return 'lang/' . $_SESSION['language']->code . '/stylesheet.css';
49         }
50
51         /**
52          * This method loads an array of language objects into a session variable
53      * called $_SESSIONS['languages']. Only supported languages are added.
54      */
55         function load_languages() 
56         {
57                 global $installed_languages;
58
59                 $_SESSION['languages'] = array();
60
61         foreach ($installed_languages as $lang) 
62         {
63                         $l = new language($lang['name'],$lang['code'],$lang['encoding']);
64                         if (isset($lang['rtl']))
65                                 $l->dir = "rtl";
66                         $_SESSION['languages'][$l->code] = $l;
67         }
68
69                 if (!isset($_SESSION['language']))
70                         $_SESSION['language'] = $_SESSION['languages']['en_GB'];
71         }
72
73 }
74
75 session_start();
76 // this is to fix the "back-do-you-want-to-refresh" issue - thanx PHPFreaks
77 header("Cache-control: private");
78
79 // Page Initialisation
80 if (!isset($_SESSION['languages'])) 
81 {
82         language::load_languages();
83 }
84
85 $lang = $_SESSION['language'];
86
87 // get_text support
88 get_text::init();
89 get_text::set_language($lang->code, $lang->encoding);
90 //get_text::add_domain("wa", $path_to_root . "/lang");
91 get_text::add_domain($lang->code, $path_to_root . "/lang");
92 // Unnecessary for ajax calls. 
93 // Due to bug in php 4.3.10 for this version set globally in php4.ini
94 ini_set('default_charset', $_SESSION['language']->encoding);
95
96 if (!function_exists("_")) 
97 {
98         function _($text) 
99         {
100                 $retVal = get_text::gettext($text);
101                 if ($retVal == "")
102                         return $text;
103                 return $retVal;
104         }
105 }
106
107 function _set($key,$value) 
108 {
109         get_text::set_var($key,$value);
110 }
111
112 function reload_page($msg) 
113 {
114 //      header("Location: $_SERVER['PHP_SELF']."");
115 //      exit;
116         echo "<html>";
117         echo "<head>";
118     echo "<title>Changing Languages</title>";
119         echo '<meta http-equiv="refresh" content="0;url=' . $_SERVER['PHP_SELF'] . '">';
120         echo '</head>';
121         echo '<body>';
122         echo '<div>';
123         if ($msg != "")
124                 echo $msg . " " . $_SERVER['PHP_SELF'];
125         echo "</div>";  
126         echo "</body>";
127         echo "</html>";
128 }
129
130
131
132 ?>