程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> CI框架源碼閱讀---------Lang.php

CI框架源碼閱讀---------Lang.php

編輯:關於PHP編程

[php]   <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');   /**   * CodeIgniter   *   * An open source application development framework for PHP 5.1.6 or newer   *   * @package     CodeIgniter   * @author      ExpressionEngine Dev Team   * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc.   * @license     http://codeigniter.com/user_guide/license.html   * @link        http://codeigniter.com   * @since       Version 1.0   * @filesource   */      // ------------------------------------------------------------------------      /**   * Language Class   * 官方使用手冊:http://codeigniter.org.cn/user_guide/libraries/language.html    * @package     CodeIgniter   * @subpackage  Libraries   * @category    Language   * @author      ExpressionEngine Dev Team   * @link        http://codeigniter.com/user_guide/libraries/language.html   */   class CI_Lang {          /**       * List of translations       * 語言包列表       * @var array       */       var $language   = array();       /**       * List of loaded language files       * 已經被加載的語言包列表       * @var array       */       var $is_loaded  = array();          /**       * Constructor       *        * @access  public       */       function __construct()       {           log_message('debug', "Language Class Initialized");       }          // --------------------------------------------------------------------          /**       * Load a language file       * 加載語言包       * @access  public       * @param   mixed   the name of the language file to be loaded. Can be an array       *                  要被加載的語言文件。       * @param   string  the language (english, etc.) 要使用的語言       * @param   bool    return loaded array of translations 直接返回語言包數組       *                  不加入到$this->is_loaded和$this->language中去           * @param   bool    add suffix to $langfile 文件是否添加後綴       * @param   string  alternative path to look for language file 語言包文件的自定義路徑       * @return  mixed       */       function load($langfile = '', $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '')       {           // langfile 文件的.php 後綴去掉           $langfile = str_replace('.php', '', $langfile);              // 判斷需不需要添加後綴如果需要           // 將_lang. 去掉並再langfile後面添加_lang           if ($add_suffix == TRUE)           {               $langfile = str_replace('_lang.', '', $langfile).'_lang';           }                      // 為langfile添加.php後綴           $langfile .= '.php';              // 判斷當前文件是否被加載過           if (in_array($langfile, $this->is_loaded, TRUE))           {               return;           }              // 獲取配置文件的數據           $config =& get_config();              // 如果要使用的語言為空           // 那麼 我們將從$config中獲取           if ($idiom == '')           {               $deft_lang = ( ! isset($config['language'])) ? 'english' : $config['language'];               $idiom = ($deft_lang == '') ? 'english' : $deft_lang;           }              // Determine where the language file is and load it           // 在自定義路徑下尋找語言包並加載           if ($alt_path != '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile))           {               include($alt_path.'language/'.$idiom.'/'.$langfile);           }           else           {               // 如果自定義路徑下沒找到調用get_instance()->load->get_package_paths(TRUE)               // 在包路徑下尋找               // get_package_paths這個函數在loader.php中               $found = FALSE;                  foreach (get_instance()->load->get_package_paths(TRUE) as $package_path)               {                   if (file_exists($package_path.'language/'.$idiom.'/'.$langfile))                   {                       include($package_path.'language/'.$idiom.'/'.$langfile);                       $found = TRUE;                       break;                   }               }                              // 如果還沒找到就只能報錯了               //               if ($found !== TRUE)               {                   show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile);               }           }                 if ( ! isset($lang))           {               log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile);               return;           }              if ($return == TRUE)           {               return $lang;           }              $this->is_loaded[] = $langfile;           $this->language = array_merge($this->language, $lang);           unset($lang);              log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile);           return TRUE;       }          // --------------------------------------------------------------------          /**       * Fetch a single line of text from the language array       * 獲取一行文本       * @access  public       * @param   string  $line   the language line       * @return  string       */       function line($line = '')       {           /*           *  $this->language 的樣子           *  $lang['error_email_missing'] = "You must submit an email address";           *  $lang['error_url_missing'] = "You must submit a URL";           *  $lang['error_username_missing'] = "You must submit a username";           */           $value = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line];              // Because killer robots like unicorns!           if ($value === FALSE)           {               log_message('error', 'Could not find the language line "'.$line.'"');           }              return $value;       }      }   // END Language Class      /* End of file Lang.php */   /* Location: ./system/core/Lang.php */    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved