webman/app/middleware/Lang.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', 'en'); // 默认值是 'en'
// 将 Accept-Language 中的语言与系统支持的语言进行匹配
// 这里假设我们支持 'zh_CN' 和 'en_US',你可以根据实际需求扩展更多语言
$lang = 'en'; // 默认语言
// 提取 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);
}
}