From e3bd7becbe54f43927d22b37d237baaed05dc011 Mon Sep 17 00:00:00 2001 From: thinkphp Date: Fri, 18 Dec 2015 23:32:47 +0800 Subject: [PATCH] =?UTF-8?q?lang=E7=B1=BBget=E6=96=B9=E6=B3=95=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8F=98=E9=87=8F=E6=9B=BF=E6=8D=A2=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base.php | 4 ++-- library/think/lang.php | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/base.php b/base.php index ce50b8da..66bea834 100644 --- a/base.php +++ b/base.php @@ -57,9 +57,9 @@ define('IS_PUT', REQUEST_METHOD == 'PUT' ? 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); } // 获取配置参数 diff --git a/library/think/lang.php b/library/think/lang.php index 13d667a0..35529426 100644 --- a/library/think/lang.php +++ b/library/think/lang.php @@ -79,18 +79,28 @@ class Lang /** * 获取语言定义(不区分大小写) * @param string|null $name 语言变量 + * @param array $vars 变量替换 * @param string $range 作用域 * @return mixed */ - public static function get($name = null, $range = '') + public static function get($name = null, $vars = [], $range = '') { $range = $range ?: self::$range; // 空参数返回所有定义 if (empty($name)) { return self::$lang[$range]; } - $key = strtolower($name); - return isset(self::$lang[$range][$key]) ? self::$lang[$range][$key] : $name; + $key = strtolower($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; } /**