<?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 = '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);
    }
}