Ngày tạo:2026-09-19Cập nhật lần cuối:2026-09-19
Tham chiếu tài liệu này tới trợ lý AI yêu thích của bạnChatGPTClaudeDeepSeekGoogle AI modeGeminiPerplexityMistralGrok
Đặt câu hỏi và nhận tóm tắt tài liệu bằng cách tham chiếu trang này và nhà cung cấp AI bạn chọn
Lịch sử phiên bản
- "Khởi tạo tài liệu"v9.5.519/9/2026
Nội dung của trang này đã được dịch bằng AI.
Xem phiên bản mới nhất của nội dung gốc bằng tiếng AnhChỉnh sửa tài liệu này
Nếu bạn có ý tưởng để cải thiện tài liệu này, vui lòng đóng góp bằng cách gửi pull request trên GitHub.
Liên kết GitHub tới tài liệuSao chép
Sao chép Markdown của tài liệu vào bộ nhớ tạm
Tài liệu Middleware Astro onRequest
Middleware onRequest từ astro-intlayer/middleware giải quyết ngôn ngữ của mỗi yêu cầu HTTP đến và điền vào Astro.locals.intlayer.
Khi bạn đăng ký tích hợp intlayer() trong astro.config.mjs, middleware này sẽ được tự động đưa vào. Bạn chỉ cần nhập trực tiếp nếu bạn đang kết hợp thủ công middleware của Astro bằng sequence(...).
Cách sử dụng
src/middleware.ts
Sao chép mã
Sao chép mã vào clipboard
Mô tả chi tiết
Middleware thực hiện các tác vụ sau:
- Phát hiện ngôn ngữ:
- URL: Phân tích tiền tố đường dẫn URL hoặc tham số truy vấn
?locale=(trừ khirouting.modeđược đặt thànhno-prefix). - Cookies / Headers: Kiểm tra cookie ngôn ngữ đã lưu hoặc giá trị header tùy chỉnh.
- Accept-Language: Sử dụng tùy chọn ngôn ngữ của trình duyệt nếu không tìm thấy cài đặt trước đó.
- Đối với các trang được prerender (
context.isPrerendered), ngôn ngữ được trích xuất nghiêm ngặt từ URL để tránh cảnh báo khi build trong Astro.
- URL: Phân tích tiền tố đường dẫn URL hoặc tham số truy vấn
- Điền Context: Điền vào
Astro.locals.intlayervới:locale: Ngôn ngữ đã được giải quyết.defaultLocale: Ngôn ngữ dự phòng mặc định.availableLocales: Mảng các ngôn ngữ đã được cấu hình.
- Phạm vi AsyncLocalStorage: Bao bọc quá trình xử lý yêu cầu tiếp theo trong phạm vi
AsyncLocalStorage, cho phépuseIntlayer(),useDictionary()vàuseLocale()truy cập trạng thái yêu cầu mà không cần truyền tham số.
Kiểu IntlayerLocals
ts
Sao chép mã
Sao chép mã vào clipboard
