⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 language.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
📖 第 1 页 / 共 2 页
字号:
			// Try to determine the source if none was provided		if (!function_exists('debug_backtrace')) {			return null;		}		$backtrace	= debug_backtrace();		$info		= array();		// Search through the backtrace to our caller		$continue = true;		while ($continue && next($backtrace))		{			$step	= current($backtrace);			$class	= @ $step['class'];			// We're looking for something outside of language.php			if ($class != 'JLanguage' && $class != 'JText') {				$info['function']	= @ $step['function'];				$info['class']		= $class;				$info['step']		= prev($backtrace);				// Determine the file and name of the file				$info['file']		= @ $step['file'];				$info['line']		= @ $step['line'];				$continue = false;			}		}		return $info;	}	/**	* Getter for Name	*	* @access	public	* @return	string Official name element of the language	* @since	1.5	*/	function getName() {		return $this->_metadata['name'];	}	/**	 * Get a list of language files that have been loaded	 *	 * @access	public	 * @param	string	$extension	An option extension name	 * @return	array	 * @since	1.5	 */	function getPaths($extension = null)	{		if ( isset($extension) )		{			if ( isset($this->_paths[$extension]) )				return $this->_paths[$extension];			return null;		}		else		{			return $this->_paths;		}	}	/**	* Getter for PDF Font Name	*	* @access	public	* @return	string name of pdf font to be used	* @since	1.5	*/	function getPdfFontName() {		return $this->_metadata['pdffontname'];	}	/**	* Getter for Windows locale code page	*	* @access	public	* @return	string windows locale encoding	* @since	1.5	*/	function getWinCP() {		return $this->_metadata['wincodepage'];	}	/**	* Getter for backward compatible language name	*	* @access	public	* @return	string backward compatible name	* @since	1.5	*/	function getBackwardLang() {		return $this->_metadata['backwardlang'];	}	/**	* Get for the language tag (as defined in RFC 3066)	*	* @access	public	* @return	string The language tag	* @since	1.5	*/	function getTag() {		return $this->_metadata['tag'];	}	/**	* Get locale property	*	* @access	public	* @return	string The locale property	* @since	1.5	*/	function getLocale()	{		$locales = explode(',', $this->_metadata['locale']);		for($i = 0; $i < count($locales); $i++ ) {			$locale = $locales[$i];			$locale = trim($locale);			$locales[$i] = $locale;		}		//return implode(',', $locales);		return $locales;	}	/**	* Get the RTL property	*	* @access	public	* @return	boolean True is it an RTL language	* @since	1.5	*/	function isRTL() {		return $this->_metadata['rtl'];	}	/**	* Set the Debug property	*	* @access	public	* @return	boolean Previous value	* @since	1.5	*/	function setDebug($debug) {		$previous	= $this->_debug;		$this->_debug = $debug;		return $previous;	}	/**	* Get the Debug property	*	* @access	public	* @return	boolean True is in debug mode	* @since	1.5	*/	function getDebug() {		return $this->_debug;	}	/**	 * Get the default language code	 *	 * @access	public	 * @return	string Language code	 * @since	1.5	 */	function getDefault() {		return $this->_default;	}	/**	 * Set the default language code	 *	 * @access	public	 * @return	string Previous value	 * @since	1.5	 */	function setDefault($lang) {		$previous	= $this->_default;		$this->_default	= $lang;		return $previous;	}	/**	* Get the list of orphaned strings if being tracked	*	* @access	public	* @return	array Orphaned text	* @since	1.5	*/	function getOrphans() {		return $this->_orphans;	}	/**	 * Get the list of used strings	 *	 * Used strings are those strings requested and found either as a string or a constant	 *	 * @access	public	 * @return	array	Used strings	 * @since	1.5	 */	function getUsed() {		return $this->_used;	}	/**	 * Determines is a key exists	 *	 * @access	public	 * @param	key $key	The key to check	 * @return	boolean True, if the key exists	 * @since	1.5	 */	function hasKey($key) {		return isset ($this->_strings[strtoupper($key)]);	}	/**	 * Returns a associative array holding the metadata	 *	 * @access	public	 * @param	string	The name of the language	 * @return	mixed	If $lang exists return key/value pair with the language metadata,	 *  				otherwise return NULL	 * @since	1.5	 */	function getMetadata($lang)	{		$path = JLanguage::getLanguagePath(JPATH_BASE, $lang);		$file = $lang.'.xml';		$result = null;		if(is_file($path.DS.$file)) {			$result = JLanguage::_parseXMLLanguageFile($path.DS.$file);		}		return $result;	}	/**	 * Returns a list of known languages for an area	 *	 * @access	public	 * @param	string	$basePath 	The basepath to use	 * @return	array	key/value pair with the language file and real name	 * @since	1.5	 */	function getKnownLanguages($basePath = JPATH_BASE)	{		$dir = JLanguage::getLanguagePath($basePath);		$knownLanguages = JLanguage::_parseLanguageFiles($dir);		return $knownLanguages;	}	/**	 * Get the path to a language	 *	 * @access	public	 * @param	string $basePath  The basepath to use	 * @param	string $language	The language tag	 * @return	string	language related path or null	 * @since	1.5	 */	function getLanguagePath($basePath = JPATH_BASE, $language = null )	{		$dir = $basePath.DS.'language';		if (!empty($language)) {			$dir .= DS.$language;		}		return $dir;	}	/**	 * Set the language attributes to the given language	 *	 * Once called, the language still needs to be loaded using JLanguage::load()	 *	 * @access	public	 * @param	string	$lang	Language code	 * @return	string	Previous value	 * @since	1.5	 */	function setLanguage($lang)	{		$previous			= $this->_lang;		$this->_lang		= $lang;		$this->_metadata	= $this->getMetadata($this->_lang);		//set locale based on the language tag		//TODO : add function to display locale setting in configuration		$locale = setlocale(LC_TIME, $this->getLocale());		return $previous;	}	/**	 * Searches for language directories within a certain base dir	 *	 * @access	public	 * @param	string 	$dir 	directory of files	 * @return	array	Array holding the found languages as filename => real name pairs	 * @since	1.5	 */	function _parseLanguageFiles($dir = null)	{		jimport('joomla.filesystem.folder');		$languages = array ();		$subdirs = JFolder::folders($dir);		foreach ($subdirs as $path) {			$langs = JLanguage::_parseXMLLanguageFiles($dir.DS.$path);			$languages = array_merge($languages, $langs);		}		return $languages;	}	/**	 * Parses XML files for language information	 *	 * @access	public	 * @param	string	$dir	 Directory of files	 * @return	array	Array holding the found languages as filename => metadata array	 * @since	1.5	 */	function _parseXMLLanguageFiles($dir = null)	{		if ($dir == null) {			return null;		}		$languages = array ();		jimport('joomla.filesystem.folder');		$files = JFolder::files($dir, '^([-_A-Za-z]*)\.xml$');		foreach ($files as $file) {			if ($content = file_get_contents($dir.DS.$file)) {				if ($metadata = JLanguage::_parseXMLLanguageFile($dir.DS.$file)) {					$lang = str_replace('.xml', '', $file);					$languages[$lang] = $metadata;				}			}		}		return $languages;	}	/**	 * Parse XML file for language information	 *	 * @access	public	 * @param	string	$path	 Path to the xml files	 * @return	array	Array holding the found metadata as a key => value pair	 * @since	1.5	 */	function _parseXMLLanguageFile($path)	{		$xml = & JFactory::getXMLParser('Simple');		// Load the file		if (!$xml || !$xml->loadFile($path)) {			return null;		}		// Check that it's am metadata file		if (!$xml->document || $xml->document->name() != 'metafile') {			return null;		}		$metadata = array ();		//if ($xml->document->attributes('type') == 'language') {			foreach ($xml->document->metadata[0]->children() as $child) {				$metadata[$child->name()] = $child->data();			}		//}		return $metadata;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -