Đặ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 AnhNế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 Markdown của tài liệu vào bộ nhớ tạm
Tài liệu Hook useLocale
Hook useLocale từ astro-intlayer cung cấp quyền truy cập vào ngôn ngữ yêu cầu hiện tại, ngôn ngữ mặc định được định cấu hình và tất cả các ngôn ngữ khả dụng trong các ứng dụng Astro.
Nó hoạt động nhất quán trên frontmatter .astro được render trên máy chủ và các khối script <script> phía client.
Cách sử dụng
Trong Frontmatter Thành phần (Render trên máy chủ)
Sao chép mã vào clipboard
Trong <script> Client (Tương tác)
Sao chép mã vào clipboard
Giá trị trả về
Hook trả về một đối tượng thuộc kiểu UseLocaleResult:
Mở bảng trong một cửa sổ bật lên để xem toàn bộ nội dung dữ liệu một cách rõ ràng
| Thuộc tính | Kiểu | Mô tả |
|---|---|---|
locale | DeclaredLocales | Ngôn ngữ đang hoạt động. |
defaultLocale | DeclaredLocales | Ngôn ngữ dự phòng mặc định được cấu hình trong intlayer.config.ts. |
availableLocales | DeclaredLocales[] | Mảng tất cả các ngôn ngữ được hỗ trợ đã cấu hình cho dự án. |
setLocale | (locale: LocalesValues) => void | Hàm cập nhật ngôn ngữ. (Tương tác trong <script> client, cảnh báo trong quá trình SSR). |
subscribe | (callback: () => void) => () => void | Đăng ký theo dõi các thay đổi ngôn ngữ phía client. |
Hành vi Máy chủ và Client
- Trong quá trình SSR / Render Máy chủ: Một yêu cầu được render một lần với các tham số cố định. Việc gọi
setLocale()trong quá trình render trên máy chủ không có tác dụng và đưa ra cảnh báo; việc chuyển đổi ngôn ngữ nên được thực hiện ở client hoặc bằng cách điều hướng đến URL ngôn ngữ đích. - Trong Script Client:
setLocalecập nhật store phía client và cập nhật cookie hoặc local storage đã lưu theo cấu hình Intlayer của bạn.
