Guest User

Untitled

a guest
Feb 21st, 2014
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.80 KB | None | 0 0
  1. <?php
  2.  
  3. class L10N {
  4.     protected $cur_lang = array();
  5.     protected $a_langs = array();
  6.     protected $localedir;
  7.     protected $domain;
  8.     protected $default_lang;
  9.  
  10.     function deflang( $lang )
  11.     {
  12.         $this->default_lang = $lang;
  13.         return $this;
  14.     }
  15.  
  16.     function init( $force_lang = null  )
  17.     {
  18.         $lang = null;
  19.         if( $force_lang ) {
  20.             $lang = $force_lang;
  21.         } else if( isset($_GET['lang']) ) {
  22.             $lang = $_GET['lang'];
  23.         } else if( isset($_REQUEST['lang']) ) {
  24.             $lang = $_REQUEST['lang'];
  25.         } else if( isset( $_COOKIE['lang'] ) ) {
  26.             $lang = $_COOKIE['lang'];
  27.         }
  28.  
  29.         if( $lang == null ) {
  30.             $lang = $this->default_lang;
  31.         }
  32.         $this->speak( $lang );
  33.         return $this;
  34.     }
  35.  
  36.  
  37.     // set current language
  38.     function speak( $lang )
  39.     {
  40.         $this->cur_lang = $lang;
  41.         setcookie("lang", $lang , time() + 60 * 60 * 24 * 30 );
  42.         $this->gettext();
  43.         return $this;
  44.     }
  45.  
  46.     function is_speaking( $lang )
  47.     {
  48.         return $this->cur_lang == $lang;
  49.     }
  50.  
  51.  
  52.     function speaking()
  53.     {
  54.         return $this->cur_lang;
  55.     }
  56.  
  57.     // get available language list
  58.     function langs()
  59.     {
  60.         return $this->a_langs;
  61.     }
  62.  
  63.     function set_list( $list )
  64.     {
  65.         $this->a_langs = $list;
  66.     }
  67.  
  68.     function add( $lang , $name )
  69.     {
  70.         $this->a_langs[ $lang ] = $name;
  71.         return $this;
  72.     }
  73.  
  74.     function remove( $lang )
  75.     {
  76.         unset( $this->a_langs[ $lang ] );
  77.         return $this;
  78.     }
  79.  
  80.     // get language name from language hash
  81.     function name( $lang )
  82.     {
  83.         return @$this->a_langs[ $lang ];
  84.     }
  85.  
  86.     function domain( $domain )
  87.     {
  88.         $this->domain = $domain;
  89.         return $this;
  90.     }
  91.  
  92.     function localedir( $dir )
  93.     {
  94.         $this->localedir = $dir;
  95.         return $this;
  96.     }
  97.  
  98.     function gettext( $textdomain = null , $localedir = null )
  99.     {
  100.         if( $textdomain == null )
  101.             $textdomain = $this->domain;
  102.  
  103.         if( $localedir == null )
  104.             $localedir = $this->localedir;
  105.         if( $localedir == null )
  106.             $localedir = dirname(__FILE__) . '/' . 'locale';
  107.  
  108.         $lang = $this->cur_lang;
  109.  
  110. //        putenv("LANG=$lang");
  111. //        @setlocale(LC_ALL, $lang );
  112.  
  113. //        bindtextdomain( $textdomain, $localedir );
  114. //        bind_textdomain_codeset( $textdomain, 'UTF-8');
  115. //        textdomain( $textdomain );
  116.  
  117.     putenv('LC_ALL='.$lang);
  118.     setlocale(LC_ALL, $lang);
  119.  
  120.     bindtextdomain($lang, $localedir);
  121.     textdomain($lang);
  122.  
  123.         return $this;
  124.     }
  125. }
  126.  
  127. function l10n()
  128. {
  129.     global $l10n;
  130.     if( $l10n == null ) {
  131.         $l10n = new L10N();
  132.     }
  133.     return $l10n;
  134. }
  135.  
  136.  
  137.  
  138.  
  139.  
  140. ?>
Advertisement
Add Comment
Please, Sign In to add comment