芝麻web文件管理V1.00
编辑当前文件:/home/strato/chroot/opt/RZphp81/includes/I18N/Format.php
| // | | // +----------------------------------------------------------------------+// // $Id: Format.php 134347 2003-07-07 12:50:43Z cain $ require_once 'PEAR.php'; // define those here, since the dateTime and currency // use those constants too define( 'I18N_NUMBER_FLOAT' , 1 ); define( 'I18N_NUMBER_INTEGER' , 2 ); define( 'I18N_CURRENCY_LOCAL', 1 ); define( 'I18N_CURRENCY_INTERNATIONAL', 2 ); // this is the offset for the custom index define( 'I18N_CUSTOM_FORMATS_OFFSET', 100); /** * * @package I18N * */ class I18N_Format extends PEAR { /** * this var contains the current locale this instace works with * * @access protected * @var string this is a string like 'de_DE' or 'en_US', etc. */ var $_locale; /** * the locale object which contains all the formatting specs * * @access protected * @var object */ var $_localeObj = null; /** * do override this value !!!! * @abstract */ var $_currentFormat = null; var $_customFormats = array(); /** * * * @version 02/11/22 * @author Wolfram Kriesing
* @return void * @access public */ function I18N_Format($locale) // FIXXME if no locale is given try to use the local on of the system // if it cant be detected use english and the user probable will use setFormat anyway { parent::PEAR(); $this->_locale = $locale; //FIXXME catch locales that we dont have a class for yet, and use default class, which // translates using google or something ... if( include_once "I18N/Common/$locale.php" ){ $class = "I18N_Common_$locale"; $this->_localeObj = new $class(); } } /** * This method creates a singleton instance for the given class. * This is here, just so the DateTime, Number and Currency dont have * to implement the same thing again, they only need to have a public method * singleton() which calls this method here. * * @see singleton() * @static * @access private * @param string the locale to use, i.e. 'de_DE' * @param string the name of the class to return an object for * @return object an instance of this class */ function &_singleton($locale,$class) { static $obj; if (!isset($obj[$class])) { $obj[$class] = new $class($locale); } return $obj[$class]; } /** * define a custom format given by $format and return the $format-id * the format-id can be used to call format( x , format-id ) to * tell the method you want to use the format with that id * * @see format() * @version 02/11/20 * @author Wolfram Kriesing
* @param string defines a custom format * @return int the format-id, to be used with the format-method */ function setFormat($format) { return $this->_setFormat($format); } function _setFormat($format,$what='') { if((int)$format===$format) { // shall we only set the format to an already defined format? return $this->{'_current'.ucfirst($what).'Format'} = $format; } // save a custom format and return the id of it, so the user can switch to it // whenever needed $index = (int)I18N_CUSTOM_FORMATS_OFFSET + sizeof($this->_customFormats); $this->_customFormats[$index] = $format; $this->{'_current'.ucfirst($what).'Format'} = $index; return $index; } /** * */ function getFormat() { return $this->_currentFormat; } } ?>