lang=$lang; $this->path=$path; } private function _loadTranslations() { $this->_data = array(); if (file_exists($this->path)) { ob_start(); $data = include($this->path); ob_end_clean(); } if (!is_array($data)) { throw new TranslatorAdapterInvalidDataException("Error load array translations data in ".$this->path); } $this->_meta=$data['meta']; $this->_data=$data['data']; } /** * Translates the given string and replace searched keywords. * @param string message * @param int plural count * @param array replacement * @return string */ public function _($message, $count = NULL, $replacement = NULL) { if (!is_array($this->_data)) { $this->_loadTranslations(); } $message = (string) $message; if (empty($message)) return ""; if (isset($this->_data[$message])) { if (is_null($count)) $count=1; $count=abs($count); foreach($this->_meta['Plural-Forms'] as $id=>$pluralcount) { if ($count<=$pluralcount || $pluralcount==0) { if (isset($this->_data[$message][$id])) $message=$this->_data[$message][$id]; break; } } } if (!is_null($replacement)) { $message=str_replace(array_keys($replacement), array_values($replacement), $message); } return $message; } } ?>