<?php<liu21st@gmail.com>
defined('THINK_PATH') or exit();
/**
* 语言检测 并自动加载语言包
* @category Extend
* @package Extend
* @subpackage Behavior
* @author liu21st <liu21st@gmail.com>
*/
class CheckLangBehavior extends Behavior {
protected $options = array(
'LANG_SWITCH_ON' => false, 'LANG_AUTO_DETECT' => true, 'LANG_LIST' => 'zh-cn', 'VAR_LANGUAGE' => 'l', );
public function run(&$params){
$this->checkLanguage();
}
private function checkLanguage() {
if (!C('LANG_SWITCH_ON')){
return;
}
$langSet = C('DEFAULT_LANG');
if (C('LANG_AUTO_DETECT')){
if(isset($_GET[C('VAR_LANGUAGE')])){
$langSet = $_GET[C('VAR_LANGUAGE')] cookie('think_language',$langSet,3600);
}elseif(cookie('think_language')) $langSet = cookie('think_language');
}elseif(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
$langSet = $matches[1];
cookie('think_language',$langSet,3600);
}
if(false === stripos(C('LANG_LIST'),$langSet)) { $langSet = C('DEFAULT_LANG');
}
}
define('LANG_SET',strtolower($langSet));
$group = '';
$path = (defined('GROUP_NAME') && C('APP_GROUP_MODE')==1) ? BASE_LIB_PATH.'Lang/'.LANG_SET.'/' : LANG_PATH.LANG_SET.'/';
if(is_file(LANG_PATH.LANG_SET.'/common.php'))
L(include LANG_PATH.LANG_SET.'/common.php');
if(defined('GROUP_NAME')){
if(C('APP_GROUP_MODE')==1){ $file = $path.'common.php';
}else{ $file = $path.GROUP_NAME.'.php';
$group = GROUP_NAME.C('TMPL_FILE_DEPR');
}
if(is_file($file))
L(include $file);
}
if (is_file($path.$group.strtolower(MODULE_NAME).'.php'))
L(include $path.$group.strtolower(MODULE_NAME).'.php');
}
}