Đặ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
Tài liệu này đã lỗi thời, phiên bản gốc đã được cập nhật vào 4 tháng 10, 2026.
Xem tài liệu tiếng AnhLịch sử phiên bản
- "Cập nhật cách sử dụng API useIntlayer của Solid sang truy cập thuộc tính trực tiếp"v8.9.04/5/2026
- "Thêm lệnh init"v7.5.930/12/2025
- "Khởi tạo lịch sử"v5.5.1029/6/2025
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
Dịch website backend Hono của bạn bằng Intlayer
hono-intlayer là một middleware quốc tế hóa (i18n) mạnh mẽ cho các ứng dụng Hono, được thiết kế để làm cho các dịch vụ backend của bạn có thể truy cập toàn cầu bằng cách cung cấp các phản hồi được bản địa hóa dựa trên sở thích của khách hàng.
Các trường hợp sử dụng thực tế
Hiển thị lỗi backend bằng ngôn ngữ của người dùng: Khi xảy ra lỗi, việc hiển thị thông báo bằng tiếng mẹ đẻ của người dùng sẽ giúp họ dễ hiểu hơn và giảm bớt sự khó chịu. Điều này đặc biệt hữu ích cho các thông báo lỗi động có thể được hiển thị trong các thành phần front-end như toast hoặc modal.
Truy xuất nội dung đa ngôn ngữ: Đối với các ứng dụng lấy nội dung từ cơ sở dữ liệu, quốc tế hóa đảm bảo rằng bạn có thể cung cấp nội dung này bằng nhiều ngôn ngữ. Điều này rất quan trọng đối với các nền tảng như trang web thương mại điện tử hoặc hệ thống quản lý nội dung cần hiển thị mô tả sản phẩm, bài báo và nội dung khác bằng ngôn ngữ ưa thích của người dùng.
Gửi email đa ngôn ngữ: Cho dù đó là email giao dịch, chiến dịch tiếp thị hay thông báo, việc gửi email bằng ngôn ngữ của người nhận có thể tăng đáng kể mức độ tương tác và hiệu quả.
Thông báo đẩy đa ngôn ngữ: Đối với các ứng dụng di động, việc gửi thông báo đẩy bằng ngôn ngữ ưa thích của người dùng có thể tăng cường tương tác và giữ chân họ. Sự tiếp xúc cá nhân này có thể làm cho các thông báo trở nên phù hợp và dễ thực hiện hơn.
Các hình thức liên lạc khác: Bất kỳ hình thức liên lạc nào từ backend, chẳng hạn như tin nhắn SMS, cảnh báo hệ thống hoặc cập nhật giao diện người dùng, đều được hưởng lợi từ việc sử dụng ngôn ngữ của người dùng, đảm bảo sự rõ ràng và nâng cao trải nghiệm tổng thể của người dùng.
Bằng cách quốc tế hóa backend, ứng dụng của bạn không chỉ tôn trọng sự khác biệt văn hóa mà còn phù hợp hơn với nhu cầu thị trường toàn cầu, đây là một bước quan trọng trong việc mở rộng quy mô dịch vụ của bạn trên toàn thế giới.
Bắt đầu
Xem Application Template trên GitHub.
Cài đặt
Để bắt đầu sử dụng hono-intlayer, hãy cài đặt gói bằng npm:
Sao chép mã vào clipboard
cờ--interactivelà tùy chọn. Sử dụngintlayer-cli initnếu bạn là tác nhân AI.
Lệnh này sẽ phát hiện môi trường của bạn và cài đặt các gói cần thiết. Ví dụ:
Sao chép mã vào clipboard
Thiết lập
Cấu hình cài đặt quốc tế hóa bằng cách tạo tệp intlayer.config.ts trong thư mục gốc của dự án:
Sao chép mã vào clipboard
Khai báo nội dung của bạn
Tạo và quản lý các khai báo nội dung của bạn để lưu trữ các bản dịch:
Sao chép mã vào clipboard
import { t, type Dictionary } from "intlayer";
const indexContent = {
key: "index",
content: {
exampleOfContent: t({
en: "Example of returned content in English",
fr: "Exemple de contenu renvoyé en français",
vi: "Ví dụ về nội dung được trả về bằng tiếng Việt",
}),
},
} satisfies Dictionary;
export default indexContent;
Các khai báo nội dung của bạn có thể được định nghĩa ở bất kỳ đâu trong ứng dụng của bạn miễn là chúng được bao gồm trong thư mụccontentDir(mặc định là./src). Và khớp với phần mở rộng tệp khai báo nội dung (mặc định là.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).
Để biết thêm chi tiết, hãy tham khảo tài liệu khai báo nội dung.
Thiết lập ứng dụng Hono
Thiết lập ứng dụng Hono của bạn để sử dụng hono-intlayer:
Sao chép mã vào clipboard
Khả năng tương thích
hono-intlayer tương thích hoàn toàn với:
Nó cũng hoạt động trơn tru với bất kỳ giải pháp quốc tế hóa nào trên các môi trường khác nhau, bao gồm trình duyệt và yêu cầu API. Bạn có thể tùy chỉnh middleware để phát hiện ngôn ngữ thông qua tiêu đề hoặc cookie:
Sao chép mã vào clipboard
Theo mặc định, hono-intlayer sẽ diễn giải tiêu đề Accept-Language để xác định ngôn ngữ ưa thích của khách hàng.
Để biết thêm thông tin về cấu hình và các chủ đề nâng cao, hãy truy cập tài liệu của chúng tôi.
Cấu hình TypeScript
hono-intlayer tận dụng khả năng mạnh mẽ của TypeScript để tăng cường quy trình quốc tế hóa. Việc nhập tĩnh của TypeScript đảm bảo rằng mọi khóa dịch đều được tính đến, giảm thiểu rủi ro thiếu bản dịch và cải thiện khả năng bảo trì.


Hãy đảm bảo các kiểu tự động tạo (mặc định tại ./types/intlayer.d.ts) được bao gồm trong tệp tsconfig.json của bạn.
Sao chép mã vào clipboard
Tiện ích mở rộng VS Code
Để cải thiện trải nghiệm phát triển của bạn với Intlayer, bạn có thể cài đặt Tiện ích mở rộng Intlayer VS Code chính thức.
Tiện ích mở rộng này cung cấp:
- Tự động hoàn thành cho các khóa dịch.
- Phát hiện lỗi thời gian thực cho các bản dịch bị thiếu.
- Xem trước nội tuyến nội dung đã dịch.
- Hành động nhanh để dễ dàng tạo và cập nhật các bản dịch.
Để biết thêm chi tiết về cách sử dụng tiện ích mở rộng, hãy tham khảo tài liệu Tiện ích mở rộng Intlayer VS Code.
Cấu hình Git
Khuyên bạn nên bỏ qua các tệp do Intlayer tạo ra. Điều này cho phép bạn tránh việc commit chúng vào kho lưu trữ Git của mình.
Để thực hiện việc này, bạn có thể thêm các hướng dẫn sau vào tệp .gitignore của mình:
Sao chép mã vào clipboard
Các Câu Hỏi Thường Gặp
Hono không có lớp i18n riêng, vì vậy các tùy chọn là một thư viện chung như i18next được nối thủ công vào một middleware, hoặc Intlayer thông qua hono-intlayer, giúp đăng ký middleware cho bạn, phân giải locale theo từng yêu cầu và chia sẻ cùng nội dung đã khai báo như frontend của bạn.
Lý do để quốc tế hóa backend là phần lớn văn bản mà người dùng đọc không bao giờ đi qua frontend: thông báo lỗi API, email giao dịch, thông báo push, SMS và xuất PDF. Những nội dung này cần ngôn ngữ của người nhận, được giải quyết theo từng yêu cầu thay vì theo từng phiên.
Xem lý do chọn Intlayer.
Rất ít. Các từ điển được biên dịch trước (ahead of time) và chỉ những locale bạn khai báo mới được đưa vào, vì vậy không có việc tải catalog khi khởi động và không có việc đọc tệp trên đường xử lý request. Điều này quan trọng nhất với các triển khai serverless và edge, nơi kích thước bundle quyết định thời gian khởi động nguội (cold start). Xem tối ưu hóa bundle.
Có, và có hai hướng đi. Bạn có thể di chuyển nội dung dần dần với hướng dẫn di chuyển từ i18next. Hoặc bạn có thể giữ nguyên hoàn toàn API hiện tại: các compat adapter cung cấp chính xác API giống i18next, nhưng được phục vụ bởi từ điển Intlayer, vì vậy chỉ các import thay đổi còn mã handler thì không.
Có. Plugin sync JSON giữ cho các tệp /messages/{locale}/{namespace}.json của bạn là nguồn sự thật duy nhất và tạo các từ điển Intlayer từ chúng theo cả hai hướng. Plugin sync PO làm điều tương tự cho các catalog gettext, và các tệp theo locale cho phép bạn chia nội dung theo ngôn ngữ thay vì nhóm các locale trong một tệp.
Không. Chạy npx intlayer extract và Intlayer sẽ đọc các tệp nguồn của bạn, trích xuất các chuỗi dành cho người dùng và tạo tệp .content bên cạnh mỗi tệp, nhờ đó bạn xem lại một diff thay vì sao chép từng chuỗi vào catalog. Xem lệnh extract.
Ở phía frontend của cùng dự án, Intlayer Compiler còn đi xa hơn và tạo từ điển tại thời điểm build từ mã nguồn JSX, TSX, Vue hoặc Svelte của bạn, để hai nửa của ứng dụng dùng chung một lớp nội dung mà không có khóa nào phải quản lý thủ công.
Năm công cụ, tất cả đều là tùy chọn:
- VS Code extension: nhảy từ một khóa
useIntlayerđến tệp nội dung khai báo nó, trích xuất nội dung từ một component, và chạy build, fill, test, push và pull từ command palette hoặc một tab Intlayer riêng. - LSP server: cùng khả năng nhận biết đó trong bất kỳ trình soạn thảo nào hỗ trợ LSP, với go to definition, find all references, xem trước giá trị bản dịch khi hover, tự động hoàn thành khóa và trường, và cảnh báo khi một khóa không được khai báo ở đâu cả. Nó cũng phân giải các lệnh gọi
i18next,react-i18next,next-intlvàuse-intl, giúp ích trong quá trình di chuyển. - MCP server: cung cấp tài liệu và CLI Intlayer cho Cursor, VS Code, Claude Desktop, Claude Code và ChatGPT, để trợ lý trả lời dựa trên tài liệu hiện hành thay vì phỏng đoán, và có thể tự chạy các lệnh như
intlayer fill. - Agent skills: các kỹ năng chuyên biệt như
intlayer-config,intlayer-clivàintlayer-content, cùng một kỹ năng cho mỗi framework, giúp agent hiểu cấu hình routing của bạn và các loại node nội dung. - ESLint plugin:
no-raw-textđánh dấu các chuỗi hardcode, cùng các quy tắc khác cho khóa từ điển tĩnh và nội dung không được sử dụng.
