| 
<?php
 /**
 * rbib/util/i18n/Language.php
 * $Date::  #$
 * @version  $
 * @package rbib\util\i18n
 */
 
 namespace rbib\util\i18n;
 
 class Language
 {
 
 /**
 * Language parameter
 */
 const LANGUAGE = 'hl';
 
 /**
 * Default Language
 */
 const DEFAULT_LANGUAGE = 'en';
 
 /**
 * Supported Language List
 *
 * @var array
 */
 private $supportedLanguage = array(
 'en' => 'English',
 'ja' => '日本語',
 'cn' => '中文',
 );
 
 /**
 *
 * @var string
 */
 private $languge = 'ja';
 
 /**
 * Constructor
 */
 public function __construct()
 {
 $hl = isset($_GET[self::LANGUAGE]) ? $_GET[self::LANGUAGE] : @$_COOKIE[self::LANGUAGE];
 
 if (!$hl) {
 $hl = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
 }
 
 $this->setLanguage($hl);
 }
 
 /**
 * Change the browser language
 *
 * @param string $hl
 * @return Language
 */
 public function setLanguage($hl)
 {
 if (!isset($this->supportedLanguage[$hl])) {
 $hl = self::DEFAULT_LANGUAGE;
 }
 $this->languge = $hl;
 
 return $this;
 }
 
 /**
 * Return the browser default language
 *
 * @return string
 */
 public function getLanauge()
 {
 return $this->languge;
 }
 
 /**
 * Return the default langauge name
 *
 * @return string
 */
 public function getLanguageName()
 {
 return $this->supportedLanguage[$this->languge];
 }
 
 /**
 * Return the supported language list of application
 *
 * @return array
 */
 public function getSupportedLanguage()
 {
 return $this->supportedLanguage;
 }
 
 }
 
 |