feat: 添加前后端多语言支持

前端:
- 在 API 请求中添加 Accept-Language 头,传递当前语言设置

后端:
- 创建 LanguageMiddleware 中间件,自动检测并设置语言
- 为所有 API 路由添加语言中间件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-02-25 18:21:05 +08:00
parent 8817effc9a
commit eef91a6c83
3 changed files with 43 additions and 5 deletions
+8 -4
View File
@@ -2,11 +2,15 @@
use Webman\Route;
// 全局 API 中间件(语言设置)
$apiMiddleware = [app\middleware\LanguageMiddleware::class];
$authMiddleware = array_merge($apiMiddleware, [app\middleware\AuthMiddleware::class]);
// 认证路由(不需要认证)
Route::group('/api/v1', function () {
Route::post('/auth/login', [app\controller\AuthController::class, 'login']);
Route::post('/auth/feishu-login', [app\controller\AuthController::class, 'feishuLogin']);
});
})->middleware($apiMiddleware);
// 用户路由(需要认证)
Route::group('/api/v1/user', function () {
@@ -15,7 +19,7 @@ Route::group('/api/v1/user', function () {
Route::get('/companies', [app\controller\UserController::class, 'companies']);
Route::get('/list', [app\controller\UserController::class, 'list']);
Route::post('/switch-company', [app\controller\UserController::class, 'switchCompany']);
})->middleware([\app\middleware\AuthMiddleware::class]);
})->middleware($authMiddleware);
// 审批路由(需要认证)
Route::group('/api/v1/approval', function () {
@@ -24,7 +28,7 @@ Route::group('/api/v1/approval', function () {
Route::post('/approve/{id}', [app\controller\ApprovalController::class, 'approve']);
Route::post('/reject/{id}', [app\controller\ApprovalController::class, 'reject']);
Route::post('/cancel/{id}', [app\controller\ApprovalController::class, 'cancel']);
})->middleware([\app\middleware\AuthMiddleware::class]);
})->middleware($authMiddleware);
// 出差审批路由(需要认证)
Route::group('/api/v1/business-trip', function () {
@@ -36,7 +40,7 @@ Route::group('/api/v1/business-trip', function () {
Route::post('/cancel/{id}', [app\controller\BusinessTripController::class, 'cancel']);
Route::delete('/{id}', [app\controller\BusinessTripController::class, 'deleteDraft']);
Route::post('/approve/{id}', [app\controller\BusinessTripController::class, 'approve']);
})->middleware([\app\middleware\AuthMiddleware::class]);
})->middleware($authMiddleware);
// 默认路由
Route::fallback(function () {