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 }