00001 <?
00014 define("DEFAULT_LANG", "en");
00015
00016
00017
00018
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
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 ?>