PDF convertor * distributed under the LGPL License * * @author Laurent MINGUET * @version 4.03 */ class HTML2PDF_locale { /** * code of the current used locale * @var string */ static protected $_code = null; /** * texts of the current used locale * @var array */ static protected $_list = array(); /** * directory where locale files are * @var string */ static protected $_directory = null; /** * load the locale * * @access public * @param string $code */ static public function load($code) { if (self::$_directory===null) { self::$_directory = dirname(dirname(__FILE__)).'/locale/'; } // must be in lower case $code = strtolower($code); // must be [a-z-0-9] if (!preg_match('/^([a-z0-9]+)$/isU', $code)) { throw new HTML2PDF_exception(0, 'invalid language code ['.self::$_code.']'); } // save the code self::$_code = $code; // get the name of the locale file $file = self::$_directory.self::$_code.'.csv'; // the file must exist if (!is_file($file)) { throw new HTML2PDF_exception(0, 'language code ['.self::$_code.'] unknown. You can create the translation file ['.$file.'] and send it to the webmaster of html2pdf in order to integrate it into a future release'); } // load the file self::$_list = array(); $handle = fopen($file, 'r'); while (!feof($handle)) { $line = fgetcsv($handle); if (count($line)!=2) continue; self::$_list[trim($line[0])] = trim($line[1]); } fclose($handle); } /** * clean the locale * * @access public static */ static public function clean() { self::$_code = null; self::$_list = array(); } /** * get a text * * @access public static * @param string $key * @return string */ static public function get($key, $default='######') { return (isset(self::$_list[$key]) ? self::$_list[$key] : $default); } }