예제 #1
0
 /**
  * 多语言
  *
  * @param <type> $lan   要转义的字符串
  */
 public function language($lan)
 {
     $return = language('controller', $lan, get_gvar('APPLICATION'), get_gvar('CONTROLLER'), get_gvar('ACTION'));
     return $return;
 }
예제 #2
0
 /**
  * 替换SQL中的中文名,执行SQL,返回执行结果;返回结果为:
  * 正常:array('isError'=> false, 'data' =>'执行结果,二维数组');
  * 出错:array('isError'  => true,
  *             'errorMsg' => '出错信息',
  *             'data'     => '解析后的执行SQL');
  *
  * @param string $pCnName   项目中文名
  * @param string $sql       SQL
  * @return array            当出错时isError为true,data中执行结果;
  *                           否则isError为false,data中为执行SQL,
  *                           data中为错误提示信息。
  * 
  */
 public function execSQL($pCnName, $sql)
 {
     $result = $this->execCodeSection($pCnName, $sql);
     if (is_string($result)) {
         return array('isError' => true, 'errorMsg' => $result, 'data' => $sql);
     }
     $sql = $result['code'];
     $tName = $result['tCnName'];
     $dModel = $this->getDModel();
     $model = new Plugin_Model($this->getDModel(), get_gvar($pCnName . $tName, $this->getTnameKey()));
     return $model->query($sql, true);
 }
예제 #3
0
/**
 * 多语言函数
 *
 * @param <string> $app            app
 * @param <type> $module        语言模块
 * @param <type> $lan           需要转义的key, 如果为'*'则输出全部语言数组
 * @param <type> $function       具体的方法名。
 *
 * @modify shiling              //模板里增加全局语言文件public.php
 */
function language($module, $lan = '*', $app = '', $controller = '', $action = '', $dl = false)
{
    $defaultLanguage = 'cn';
    $unknown = $lan;
    //$unknown = 'unknown';//当需要转义的字符串找不到时返回的默认值
    if (!$app) {
        $app = get_gvar('APPLICATION');
    }
    $lanData = array();
    if (!$dl) {
        $language = isset($GLOBALS['LANGUAGE']) ? $GLOBALS['LANGUAGE'] : $defaultLanguage;
    } else {
        $language = $defaultLanguage;
    }
    $lanDir = _APP_ . '_language' . _DIR_SEPARATOR_ . $language;
    if (!is_dir($lanDir)) {
        //语言包不存在,转为默认语言
        $language = 'cn';
        $lanDir = _APP_ . '_language' . _DIR_SEPARATOR_ . $language;
    }
    if ($module == 'controller') {
        //对controller的转义
        $lanData = C($app . '.php', '', $lanDir);
        if (!isset($lanData[$module])) {
            return $unknown;
        }
        $lanData = $lanData[$module];
        $lan = $controller . '.' . $action . '.' . $lan;
    } elseif ($module == 'model') {
        //对Model的转义
        if (!empty($app)) {
            $lanData = C($app . '.php', '', $lanDir);
            $lanData = $lanData['model'];
        }
    } elseif ($module == 'template') {
        //对模板的转义
        if (empty($app)) {
            $lanData = C('template.php', '', $lanDir);
        } else {
            $lanData = C($app . '.php', '', $lanDir);
        }
        $lanData = $lanData['template'];
        //私用语言文件覆盖全局文件
        $publicData = C('public.php', '', $lanDir);
        if (is_array($lanData) && is_array($publicData)) {
            $lanData = array_merge($publicData, $lanData);
        }
    } else {
        //对自定义语言模块的转义
        $lanData = C($module . '.php', '', $lanDir);
        //var_dump($lanData);
    }
    if ($lan == '*') {
        return $lanData;
    }
    if (isset($lanData[$lan])) {
        return $lanData[$lan];
    }
    //转义字符不存在,到默认语言包中寻找
    if ($language != $defaultLanguage) {
        $args = func_get_args();
        @($r = language($args[0], $args[1], $args[2], $args[3], $args[4], true));
        return $r;
    }
    return $unknown;
}
예제 #4
0
 /**
  * 多语言转义函数
  *
  * @param <type> $lan   要转义的字符串
  */
 public function language($lan, $app = '')
 {
     $return = language('model', $lan, $app ? $app : get_gvar('APPLICATION'));
     //language($module, $lan, $app, $controller, $action);
     return $return;
 }