openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

Language.class.php (978B)


      1 <?php
      2 
      3 namespace language;
      4 
      5 use DomainException;
      6 use logger\Logger;
      7 use util\text\TextMessage;
      8 
      9 class Language
     10 {
     11     public function __construct()
     12     {
     13     }
     14 
     15     /**
     16      * @param $iso ISO-Code
     17      * @return array The language values
     18      */
     19     public function getLanguage($iso)
     20     {
     21 		$language = $this->getOutputLanguage($iso);
     22 		return $language->get();
     23     }
     24 
     25 
     26     /**
     27      * Returns an instance of the language class.
     28      * @param $iso string ISO-Code
     29      * @return object instance of language
     30      */
     31     private function getOutputLanguage($iso)
     32     {
     33     	$fallback = 'en';
     34     	$isos = [ $iso ,$fallback ]; // Using a fallback
     35 
     36 		foreach( $isos as $l ) {
     37 
     38 			$languageClazz = __NAMESPACE__.'\Language_'.strtoupper($l);
     39 
     40 			// Is language file available?
     41 			if ( class_exists($languageClazz) )
     42 				return new $languageClazz();
     43 		}
     44 
     45         throw new DomainException( TextMessage::create('No language class found for iso keys ${0}',[implode(',',$isos)]) );
     46     }
     47 
     48 }