初始化本地仓库
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
/**
|
||||
*+------------------
|
||||
* madong
|
||||
*+------------------
|
||||
* Copyright (c) https://gitee.com/motion-code All rights reserved.
|
||||
*+------------------
|
||||
* Author: Mr. April (405784684@qq.com)
|
||||
*+------------------
|
||||
* Official Website: https://madong.tech
|
||||
*/
|
||||
|
||||
namespace app\middleware;
|
||||
|
||||
use Webman\Http\Request;
|
||||
use Webman\Http\Response;
|
||||
use Webman\MiddlewareInterface;
|
||||
|
||||
/**
|
||||
* @author Mr.April
|
||||
* @since 1.0
|
||||
*/
|
||||
class Lang implements MiddlewareInterface
|
||||
{
|
||||
private const LANG_MAP = [
|
||||
'en' => ['en', 'en_US', 'en_AU', 'en_CA', 'en_GB', 'en-US', 'en-AU', 'en-CA', 'en-GB'],
|
||||
'zh_CN' => ['zh_CN', 'zh_HK', 'zh_TW', 'zh_SG', 'zh-CN', 'zh-HK', 'zh-TW', 'zh-SG'],
|
||||
];
|
||||
|
||||
/**
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function process(Request $request, callable $handler): Response
|
||||
{
|
||||
$lang = $request->header('Accept-Language', config('app.lang'));
|
||||
$langPrefix = substr($lang, 0, 2);
|
||||
if (array_key_exists($langPrefix, self::LANG_MAP)) {
|
||||
$locale = self::LANG_MAP[$langPrefix][0]; // 默认选择第一个匹配的语言
|
||||
} else {
|
||||
$locale = config('app.lang');
|
||||
}
|
||||
// 设置会话中的语言
|
||||
|
||||
session('lang', $locale);
|
||||
locale($locale);
|
||||
return $handler($request);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user