Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

I18N.class.php

Go to the documentation of this file.
00001 <?
00014 define("DEFAULT_LANG", "en");
00015 
00016 // We add this here in order to make it easier to configure the
00017 // environment for the i18n. So, it is just needed to include this
00018 // file
00019 $i18n =& I18N::GetInstance();
00020    
00025 class I18N
00026 {
00027         var $language;  
00028         var $domain;
00029         
00035         function I18N()
00036         {
00037                 $this->language = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
00038                 putenv("LANG=".$this->language);
00039                 setlocale(LC_ALL, $this->language);
00040                 
00041                 // Set the text domain as 'messages'
00042                 $this->domain = 'messages';
00043                 bindtextdomain($this->domain, "./locale");
00044                 textdomain($this->domain);
00045         }
00046         
00051         function GetLanguage()
00052         {
00053                 return $this->language;
00054         }
00055         
00060         function SetLanguage($lang)
00061         {
00062                 $this->language = $lang;
00063         }
00064         
00069         function &GetInstance()
00070         {
00071                 static $ob;
00072                 
00073                 if (! isset($ob))
00074                 {
00075                         $ob = new I18N();
00076                 }
00077                 return $ob;
00078         }
00079         
00088         function Language($list, $lang = "")
00089         {
00090                 $i18n =& I18N::GetInstance();
00091                 if ($lang == "")
00092                         $lang = $i18n->GetLanguage();
00093                         
00094                 if (! isset($list[$lang]))
00095                         $sn = current($list);
00096                 else
00097                         $sn = $list[$lang];
00098                 
00099                 return $sn;
00100         }
00101 
00102 }
00103         
00104 ?>

Generated on Wed Nov 19 20:29:34 2003 for James by doxygen 1.3.4