33 lines
1.0 KiB
PHP
33 lines
1.0 KiB
PHP
<?php
|
|
namespace app\middleware;
|
|
|
|
use Webman\MiddlewareInterface;
|
|
use Webman\Http\Response;
|
|
use Webman\Http\Request;
|
|
|
|
class Lang implements MiddlewareInterface
|
|
{
|
|
public function process(Request $request, callable $handler) : Response
|
|
{
|
|
// 获取请求头中的 Accept-Language
|
|
$acceptLanguage = $request->header('Accept-Language', 'zhcn'); // 默认值是 'zh_CN'
|
|
|
|
// 将 Accept-Language 中的语言与系统支持的语言进行匹配
|
|
// 这里假设我们支持 'zh_CN' 和 'en_US',你可以根据实际需求扩展更多语言
|
|
$lang = 'zh_CN'; // 默认语言
|
|
|
|
// 提取 Accept-Language 中的语言部分,如 'zh_CN' 或 'en_US'
|
|
if (strpos($acceptLanguage, 'zh') === 0) {
|
|
$lang = 'zhcn';
|
|
} elseif (strpos($acceptLanguage, 'en') === 0) {
|
|
$lang = 'en';
|
|
}
|
|
|
|
// 设置语言,假设你有一个 locale 函数来处理语言设置
|
|
locale(session('lang', $lang));
|
|
|
|
// 返回请求处理
|
|
return $handler($request);
|
|
}
|
|
}
|