lang类get方法增加变量替换支持

This commit is contained in:
thinkphp
2015-12-18 23:32:47 +08:00
parent 188785e86b
commit e3bd7becbe
2 changed files with 15 additions and 5 deletions

View File

@@ -57,9 +57,9 @@ define('IS_PUT', REQUEST_METHOD == 'PUT' ? true : false);
define('IS_DELETE', REQUEST_METHOD == 'DELETE' ? true : false); define('IS_DELETE', REQUEST_METHOD == 'DELETE' ? true : false);
// 获取多语言变量 // 获取多语言变量
function L($name) function L($name, $vars = [], $lang = '')
{ {
return think\Lang::get($name); return think\Lang::get($name, $vars, $lang);
} }
// 获取配置参数 // 获取配置参数

View File

@@ -79,18 +79,28 @@ class Lang
/** /**
* 获取语言定义(不区分大小写) * 获取语言定义(不区分大小写)
* @param string|null $name 语言变量 * @param string|null $name 语言变量
* @param array $vars 变量替换
* @param string $range 作用域 * @param string $range 作用域
* @return mixed * @return mixed
*/ */
public static function get($name = null, $range = '') public static function get($name = null, $vars = [], $range = '')
{ {
$range = $range ?: self::$range; $range = $range ?: self::$range;
// 空参数返回所有定义 // 空参数返回所有定义
if (empty($name)) { if (empty($name)) {
return self::$lang[$range]; return self::$lang[$range];
} }
$key = strtolower($name); $key = strtolower($name);
return isset(self::$lang[$range][$key]) ? self::$lang[$range][$key] : $name; $value = isset(self::$lang[$range][$key]) ? self::$lang[$range][$key] : $name;
if (is_array($vars) && !empty($vars)) {
// 支持变量
$replace = array_keys($vars);
foreach ($replace as &$v) {
$v = '{$' . $v . '}';
}
$value = str_replace($replace, $vars, $value);
}
return $value;
} }
/** /**