Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class L10N {
- protected $cur_lang = array();
- protected $a_langs = array();
- protected $localedir;
- protected $domain;
- protected $default_lang;
- function deflang( $lang )
- {
- $this->default_lang = $lang;
- return $this;
- }
- function init( $force_lang = null )
- {
- $lang = null;
- if( $force_lang ) {
- $lang = $force_lang;
- } else if( isset($_GET['lang']) ) {
- $lang = $_GET['lang'];
- } else if( isset($_REQUEST['lang']) ) {
- $lang = $_REQUEST['lang'];
- } else if( isset( $_COOKIE['lang'] ) ) {
- $lang = $_COOKIE['lang'];
- }
- if( $lang == null ) {
- $lang = $this->default_lang;
- }
- $this->speak( $lang );
- return $this;
- }
- // set current language
- function speak( $lang )
- {
- $this->cur_lang = $lang;
- setcookie("lang", $lang , time() + 60 * 60 * 24 * 30 );
- $this->gettext();
- return $this;
- }
- function is_speaking( $lang )
- {
- return $this->cur_lang == $lang;
- }
- function speaking()
- {
- return $this->cur_lang;
- }
- // get available language list
- function langs()
- {
- return $this->a_langs;
- }
- function set_list( $list )
- {
- $this->a_langs = $list;
- }
- function add( $lang , $name )
- {
- $this->a_langs[ $lang ] = $name;
- return $this;
- }
- function remove( $lang )
- {
- unset( $this->a_langs[ $lang ] );
- return $this;
- }
- // get language name from language hash
- function name( $lang )
- {
- return @$this->a_langs[ $lang ];
- }
- function domain( $domain )
- {
- $this->domain = $domain;
- return $this;
- }
- function localedir( $dir )
- {
- $this->localedir = $dir;
- return $this;
- }
- function gettext( $textdomain = null , $localedir = null )
- {
- if( $textdomain == null )
- $textdomain = $this->domain;
- if( $localedir == null )
- $localedir = $this->localedir;
- if( $localedir == null )
- $localedir = dirname(__FILE__) . '/' . 'locale';
- $lang = $this->cur_lang;
- // putenv("LANG=$lang");
- // @setlocale(LC_ALL, $lang );
- // bindtextdomain( $textdomain, $localedir );
- // bind_textdomain_codeset( $textdomain, 'UTF-8');
- // textdomain( $textdomain );
- putenv('LC_ALL='.$lang);
- setlocale(LC_ALL, $lang);
- bindtextdomain($lang, $localedir);
- textdomain($lang);
- return $this;
- }
- }
- function l10n()
- {
- global $l10n;
- if( $l10n == null ) {
- $l10n = new L10N();
- }
- return $l10n;
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment