mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-08 07:32:48 +08:00
think\lang类增加detect方法用于自动侦测 改进Url类的route方法
This commit is contained in:
@@ -16,7 +16,11 @@ class Lang
|
|||||||
// 语言参数
|
// 语言参数
|
||||||
private static $lang = [];
|
private static $lang = [];
|
||||||
// 语言作用域
|
// 语言作用域
|
||||||
private static $range = '';
|
private static $range = 'zh-cn';
|
||||||
|
// 语言列表
|
||||||
|
private static $list = [];
|
||||||
|
// 语言变量
|
||||||
|
private static $var = 'l';
|
||||||
|
|
||||||
// 设定语言参数的作用域(语言)
|
// 设定语言参数的作用域(语言)
|
||||||
public static function range($range = '')
|
public static function range($range = '')
|
||||||
@@ -37,7 +41,7 @@ class Lang
|
|||||||
*/
|
*/
|
||||||
public static function set($name, $value = null, $range = '')
|
public static function set($name, $value = null, $range = '')
|
||||||
{
|
{
|
||||||
$range = $range ? $range : self::$range;
|
$range = $range ?: self::$range;
|
||||||
// 批量定义
|
// 批量定义
|
||||||
if (!isset(self::$lang[$range])) {
|
if (!isset(self::$lang[$range])) {
|
||||||
self::$lang[$range] = [];
|
self::$lang[$range] = [];
|
||||||
@@ -57,7 +61,7 @@ class Lang
|
|||||||
*/
|
*/
|
||||||
public static function load($file, $range = '')
|
public static function load($file, $range = '')
|
||||||
{
|
{
|
||||||
$range = $range ? $range : self::$range;
|
$range = $range ?: self::$range;
|
||||||
$lang = is_file($file) ? include $file : [];
|
$lang = is_file($file) ? include $file : [];
|
||||||
if (!isset(self::$lang[$range])) {
|
if (!isset(self::$lang[$range])) {
|
||||||
self::$lang[$range] = [];
|
self::$lang[$range] = [];
|
||||||
@@ -80,7 +84,7 @@ class Lang
|
|||||||
*/
|
*/
|
||||||
public static function get($name = null, $range = '')
|
public static function get($name = null, $range = '')
|
||||||
{
|
{
|
||||||
$range = $range ? $range : self::$range;
|
$range = $range ?: self::$range;
|
||||||
// 空参数返回所有定义
|
// 空参数返回所有定义
|
||||||
if (empty($name)) {
|
if (empty($name)) {
|
||||||
return self::$lang[$range];
|
return self::$lang[$range];
|
||||||
@@ -88,4 +92,29 @@ class Lang
|
|||||||
$key = strtolower($name);
|
$key = strtolower($name);
|
||||||
return isset(self::$lang[$range][$key]) ? self::$lang[$range][$key] : $name;
|
return isset(self::$lang[$range][$key]) ? self::$lang[$range][$key] : $name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自动侦测设置获取语言选择
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public static function detect()
|
||||||
|
{
|
||||||
|
// 自动侦测设置获取语言选择
|
||||||
|
if (isset($_GET[self::$var])) {
|
||||||
|
$langSet = $_GET[self::$var]; // url中设置了语言变量
|
||||||
|
\think\Cookie::set('think_language', $langSet, 3600);
|
||||||
|
} elseif (\think\Cookie::get('think_language')) {
|
||||||
|
// 获取上次用户的选择
|
||||||
|
$langSet = \think\Cookie::get('think_language');
|
||||||
|
} elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
|
||||||
|
// 自动侦测浏览器语言
|
||||||
|
preg_match('/^([a-z\d\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);
|
||||||
|
$langSet = $matches[1];
|
||||||
|
\think\Cookie::set('think_language', $langSet, 3600);
|
||||||
|
}
|
||||||
|
if (false !== stripos(self::$list, $langSet)) {
|
||||||
|
// 合法的语言
|
||||||
|
self::$range = $langSet;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ class Loader
|
|||||||
{
|
{
|
||||||
// 检查是否定义classmap
|
// 检查是否定义classmap
|
||||||
if (isset(self::$map[$class])) {
|
if (isset(self::$map[$class])) {
|
||||||
if (self::$map[$class]) {
|
if (is_file(self::$map[$class])) {
|
||||||
include self::$map[$class];
|
include self::$map[$class];
|
||||||
}
|
}
|
||||||
} elseif ($file = self::findFileInComposer($class)) {
|
} elseif ($file = self::findFileInComposer($class)) {
|
||||||
|
|||||||
@@ -665,7 +665,7 @@ class Route
|
|||||||
}
|
}
|
||||||
return $url;
|
return $url;
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,11 @@ class Url
|
|||||||
// 根据路由名称和参数生成URL地址
|
// 根据路由名称和参数生成URL地址
|
||||||
public static function route($name, $params = [])
|
public static function route($name, $params = [])
|
||||||
{
|
{
|
||||||
return Route::getRouteUrl($name, $params);
|
$url = Route::getRouteUrl($name, $params);
|
||||||
|
if (false === $url) {
|
||||||
|
$url = self::build($name, $params);
|
||||||
|
}
|
||||||
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 解析URL和参数 域名
|
// 解析URL和参数 域名
|
||||||
|
|||||||
Reference in New Issue
Block a user