1. 程式人生 > >ECshop語言包lang的加載原理

ECshop語言包lang的加載原理

clipboard 某個文件 exists itl bsp 模板 原理 tool clu

當前使用的ecshop的版本:2.7.3,ecshop 2.7.3版本的網店系統的語言包的位置是ecshop文件下 languages/xxx/ 其中的xxx表示各種語言的文件夾,裏面存放指定語言的內容。ecshop默認的語言包為中文簡體即zh_cn目錄.

語言包的載入過程都是通過ecshop的init.php中的require(ROOT_PATH . ‘languages/’ . $_CFG[‘lang‘] . ‘/common.php’)處理和控制代碼來加載的.
這個$_CFG[‘lang‘] 的值是存儲在數據表shop_config的。搜索 code=lang 的記錄,對應的值就是該語言包名稱。默認是zh_cn。
所有語言包中的數組名稱是$_LANG.
我們可以看到在init.php中,通過smarty來初始化 $smarty->assign(‘lang’, $_LANG);
當ecshop語言包得到初始化之後,我們就可以在模板中通過{$lang.edit}方式來訪問語言包中各個名稱了。
ecshop的後臺,也有講究.語言包加載.他的控制文件在admin/includes/init.php裏面.

[php] view plain copy
  1. require(ROOT_PATH . ‘languages/‘ .$_CFG[‘lang‘]. ‘/admin/common.php‘);
  2. require(ROOT_PATH . ‘languages/‘ .$_CFG[‘lang‘]. ‘/admin/log_action.php‘);
  3. if (file_exists(ROOT_PATH . ‘languages/‘ . $_CFG[‘lang‘] . ‘/admin/‘ . basename(PHP_SELF)))
  4. {
  5. include(ROOT_PATH . ‘languages/‘ . $_CFG[‘lang‘] . ‘/admin/‘ . basename(PHP_SELF));
  6. }

假設後臺的某個文件名為 admin/user.php.
那麽這個頁面所用的語言包文件就是加載的 languages\zh_cn\admin\user.php
這個得尤其註意。
這就是說,如果你要在後臺建立一個新頁面.那麽也要在語言包裏面新建立一個對應的語言包文件才可以。

ECshop語言包lang的加載原理