@intlayer/docs 8.1.5 → 8.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -9
- package/dist/cjs/generated/docs.entry.cjs +1 -1
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1 -1
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/compiler.md +26 -0
- package/docs/ar/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ar/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ar/readme.md +138 -110
- package/docs/de/compiler.md +26 -0
- package/docs/de/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/de/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/de/readme.md +152 -124
- package/docs/en/compiler.md +27 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en/intlayer_with_vite+react_compiler.md +368 -0
- package/docs/en/readme.md +129 -105
- package/docs/en-GB/compiler.md +26 -0
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/en-GB/readme.md +134 -108
- package/docs/es/compiler.md +26 -0
- package/docs/es/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/es/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/es/readme.md +149 -121
- package/docs/fr/compiler.md +26 -0
- package/docs/fr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/fr/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/fr/readme.md +150 -122
- package/docs/hi/compiler.md +26 -0
- package/docs/hi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/hi/intlayer_with_vite+react_compiler.md +370 -0
- package/docs/hi/readme.md +153 -125
- package/docs/id/compiler.md +26 -0
- package/docs/id/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/id/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/id/readme.md +133 -105
- package/docs/it/compiler.md +26 -0
- package/docs/it/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/it/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/it/readme.md +155 -127
- package/docs/ja/compiler.md +26 -0
- package/docs/ja/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ja/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ja/readme.md +152 -126
- package/docs/ko/compiler.md +26 -0
- package/docs/ko/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ko/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ko/readme.md +154 -126
- package/docs/pl/compiler.md +26 -0
- package/docs/pl/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pl/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/pl/readme.md +134 -106
- package/docs/pt/compiler.md +27 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/pt/intlayer_with_vite+react_compiler.md +374 -0
- package/docs/pt/readme.md +154 -126
- package/docs/ru/compiler.md +26 -0
- package/docs/ru/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/ru/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/ru/readme.md +137 -109
- package/docs/tr/compiler.md +26 -0
- package/docs/tr/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/tr/intlayer_with_vite+react_compiler.md +375 -0
- package/docs/tr/readme.md +139 -111
- package/docs/uk/compiler.md +26 -0
- package/docs/uk/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/uk/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/uk/readme.md +133 -109
- package/docs/vi/compiler.md +27 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/vi/intlayer_with_vite+react_compiler.md +369 -0
- package/docs/vi/readme.md +138 -110
- package/docs/zh/compiler.md +26 -0
- package/docs/zh/intlayer_with_nextjs_compiler.md +481 -0
- package/docs/zh/intlayer_with_vite+react_compiler.md +372 -0
- package/docs/zh/readme.md +148 -120
- package/package.json +7 -8
- package/src/generated/docs.entry.ts +40 -0
package/docs/vi/readme.md
CHANGED
|
@@ -1,38 +1,37 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://intlayer.org">
|
|
2
|
+
<a href="https://intlayer.org" rel="">
|
|
3
3
|
<img src="https://raw.githubusercontent.com/aymericzip/intlayer/main/docs/assets/cover.png" width="60%" alt="Logo Intlayer" />
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
7
|
<h1 align="center">
|
|
8
|
-
<strong>
|
|
8
|
+
<strong>i18n theo từng component</strong>
|
|
9
9
|
</h1>
|
|
10
|
+
<h2 align="center">
|
|
11
|
+
<strong>Dịch thuật hỗ trợ bởi AI. Trình chỉnh sửa trực quan. CMS đa ngôn ngữ.</strong>
|
|
12
|
+
</h2>
|
|
10
13
|
|
|
11
14
|
<br />
|
|
12
15
|
|
|
13
16
|
<p align="center">
|
|
14
|
-
<a href="https://intlayer.org/doc/concept/content">
|
|
15
|
-
<a href="https://intlayer.org/doc/environment/nextjs">Next.js</a> •
|
|
16
|
-
<a href="https://intlayer.org/doc/environment/vite-and-react">React + Vite</a> •
|
|
17
|
-
<a href="https://intlayer.org/doc/concept/cms">CMS</a> •
|
|
18
|
-
<a href="https://discord.gg/7uxamYVeCk">Discord</a>
|
|
17
|
+
<a href="https://intlayer.org/doc/concept/content" rel="">Docs</a> •
|
|
18
|
+
<a href="https://intlayer.org/doc/environment/nextjs" rel="">Next.js</a> •
|
|
19
|
+
<a href="https://intlayer.org/doc/environment/vite-and-react" rel="">React + Vite</a> •
|
|
20
|
+
<a href="https://intlayer.org/doc/concept/cms" rel="">CMS</a> •
|
|
21
|
+
<a href="https://discord.gg/7uxamYVeCk" rel="noopener noreferrer nofollow">Discord</a>
|
|
19
22
|
</p>
|
|
20
23
|
<p align="center" style="margin-top:15px;">
|
|
21
|
-
<a href="https://www.npmjs.com/package/intlayer" target="_blank"><img src="https://img.shields.io/npm/v/intlayer?style=for-the-badge&labelColor=FFFFFF&color=000000&logoColor=FFFFFF" alt="phiên bản npm" height="24"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<a href="https://
|
|
26
|
-
</a>
|
|
27
|
-
<a href="https://github.com/aymericzip/intlayer/blob/main/LICENSE"><img src="https://img.shields.io/github/license/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000&cacheSeconds=86400" alt="giấy phép"/>
|
|
28
|
-
</a>
|
|
29
|
-
<a href="https://github.com/aymericzip/intlayer/commits/main"><img src="https://img.shields.io/github/last-commit/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000&cacheSeconds=86400" alt="lần cam kết cuối cùng"/>
|
|
24
|
+
<a href="https://www.npmjs.com/package/intlayer" target="_blank" rel="noopener noreferrer nofollow"><img src="https://img.shields.io/npm/v/intlayer?style=for-the-badge&labelColor=FFFFFF&color=000000&logoColor=FFFFFF" alt="phiên bản npm" height="24"/></a>
|
|
25
|
+
<a href="https://github.com/aymericzip/intlayer/stargazers" target="_blank" rel="noopener noreferrer nofollow"><img src="https://img.shields.io/github/stars/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logo=github&logoColor=FFD700" alt="GitHub Stars" height="24"/></a>
|
|
26
|
+
<a href="https://www.npmjs.org/package/intlayer" target="_blank" rel="noopener noreferrer nofollow"><img src="https://img.shields.io/npm/dm/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000&cacheSeconds=86400" alt="lượt tải hàng tháng" height="24"/></a>
|
|
27
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/LICENSE" target="_blank" rel="noopener noreferrer nofollow"><img src="https://img.shields.io/github/license/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000&cacheSeconds=86400" alt="giấy phép"/></a>
|
|
28
|
+
<a href="https://github.com/aymericzip/intlayer/commits/main" target="_blank" rel="noopener noreferrer nofollow"><img src="https://img.shields.io/github/last-commit/aymericzip/intlayer?style=for-the-badge&labelColor=000000&color=FFFFFF&logoColor=000000&cacheSeconds=86400" alt="lần cam kết cuối cùng"/>
|
|
30
29
|
</a>
|
|
31
30
|
</p>
|
|
32
31
|
|
|
33
32
|

|
|
34
33
|
|
|
35
|
-
<a href="https://intlayer.org/doc/concept/content">
|
|
34
|
+
<a href="https://intlayer.org/doc/concept/content" rel="">
|
|
36
35
|
<img src="https://img.shields.io/badge/Bắt_đầu-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
|
|
37
36
|
</a>
|
|
38
37
|
|
|
@@ -47,25 +46,26 @@ Với **các tệp nội dung theo từng locale**, **tự động hoàn thành
|
|
|
47
46
|
|
|
48
47
|
## Các lợi ích chính của Intlayer:
|
|
49
48
|
|
|
50
|
-
| Tính năng
|
|
51
|
-
|
|
|
52
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="
|
|
53
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="
|
|
54
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="
|
|
55
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
56
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
57
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
58
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
59
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
60
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
61
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
62
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
63
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
64
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
65
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
66
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
67
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
68
|
-
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/
|
|
49
|
+
| Tính năng | Mô tả |
|
|
50
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
51
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/frameworks.png?raw=true" alt="Hỗ trợ" width="700"> | **Hỗ trợ đa Framework**<br><br>Intlayer tương thích với tất cả các framework và thư viện lớn, bao gồm Next.js, React, Vite, Vue.js, Nuxt, Preact, Express và nhiều hơn nữa. |
|
|
52
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/javascript_content_management.jpg?raw=true" alt="JavaScript" width="700"> | **Quản lý nội dung bằng JavaScript**<br><br>Khai thác sự linh hoạt của JavaScript để định nghĩa và quản lý nội dung của bạn một cách hiệu quả. <br><br> - [Khai báo nội dung](https://intlayer.org/doc/concept/content) |
|
|
53
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/per_locale_content_declaration_file.png?raw=true" alt="Tệp nội dung" width="700"> | **Tệp Khai Báo Nội Dung Theo Mỗi Locale**<br><br>Tăng tốc phát triển của bạn bằng cách khai báo nội dung một lần, trước khi tự động sinh.<br><br> - [Tệp Khai Báo Nội Dung Theo Mỗi Locale](https://intlayer.org/doc/concept/per-locale-file) |
|
|
54
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.jpg?raw=true" alt="Compiler" width="700"> | **Trình biên dịch**<br><br>Trình biên dịch Intlayer tự động trích xuất nội dung từ các component và tạo ra các tệp từ điển.<br><br> - [Compiler](https://intlayer.org/doc/compiler) |
|
|
55
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/autocompletion.png?raw=true" alt="TypeScript" width="700"> | **Môi Trường An Toàn Kiểu**<br><br>Tận dụng TypeScript để đảm bảo định nghĩa nội dung và mã của bạn không có lỗi, đồng thời hưởng lợi từ tính năng tự động hoàn thành trong IDE.<br><br> - [Cấu hình TypeScript](https://intlayer.org/doc/environment/vite-and-react#configure-typescript) |
|
|
56
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/config_file.png?raw=true" alt="Cấu hình" width="700"> | **Cài Đặt Đơn Giản Hóa**<br><br>Bắt đầu nhanh chóng với cấu hình tối thiểu. Dễ dàng điều chỉnh các thiết lập cho quốc tế hóa, định tuyến, AI, build và xử lý nội dung.<br><br> - [Khám phá tích hợp Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
57
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/content_retrieval.png?raw=true" alt="Truy xuất" width="700"> | **Truy Xuất Nội Dung Đơn Giản Hóa**<br><br>Không cần gọi hàm `t` cho từng phần nội dung. Truy xuất toàn bộ nội dung của bạn trực tiếp bằng một hook duy nhất.<br><br> - [Tích hợp React](https://intlayer.org/doc/environment/create-react-app) |
|
|
58
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/server_component.png?raw=true" alt="Server Component" width="700"> | **Triển Khai Thành Phần Server Nhất Quán**<br><br>Phù hợp hoàn hảo cho các thành phần server của Next.js, sử dụng cùng một triển khai cho cả thành phần client và server, không cần truyền hàm `t` của bạn qua từng thành phần server.<br><br> - [Thành phần Server](https://intlayer.org/doc/environment/nextjs#step-7-utilize-content-in-your-code) |
|
|
59
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/file_tree.png?raw=true" alt="Cấu trúc" width="700"> | **Codebase Có Tổ Chức**<br><br>Giữ cho codebase của bạn có tổ chức hơn: 1 component = 1 từ điển trong cùng một thư mục. Các bản dịch gần với các component tương ứng, nâng cao khả năng bảo trì và sự rõ ràng.<br><br> - [Cách Intlayer hoạt động](https://intlayer.org/doc/concept/how-works-intlayer) |
|
|
60
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/url_routing.png?raw=true" alt="Routing" width="700"> | **Định Tuyến Nâng Cao**<br><br>Hỗ trợ đầy đủ định tuyến ứng dụng, thích nghi mượt mà với các cấu trúc ứng dụng phức tạp, dành cho Next.js, React, Vite, Vue.js, v.v.<br><br> - [Khám phá tích hợp Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
61
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/markdown.png?raw=true" alt="Markdown" width="700"> | **Hỗ Trợ Markdown**<br><br>Nhập và giải thích các tệp locale và Markdown từ xa cho nội dung đa ngôn ngữ như chính sách bảo mật, tài liệu, v.v. Giải thích và làm cho metadata của Markdown có thể truy cập trong mã của bạn.<br><br> - [Tệp nội dung](https://intlayer.org/doc/concept/content/file) |
|
|
62
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/visual_editor.png?raw=true" alt="CMS" width="700"> | **Editor Trực Quan & CMS Miễn Phí**<br><br>Một trình soạn thảo trực quan và CMS miễn phí có sẵn cho người viết nội dung, loại bỏ nhu cầu sử dụng nền tảng bản địa hóa. Giữ nội dung của bạn đồng bộ bằng cách sử dụng Git, hoặc ngoại hóa hoàn toàn hoặc một phần với CMS.<br><br> - [Trình Soạn Thảo Intlayer](https://intlayer.org/doc/concept/editor) <br> - [CMS Intlayer](https://intlayer.org/doc/concept/cms) |
|
|
63
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/bundle.png?raw=true" alt="Bundle" width="700"> | **Nội dung có thể Tree-shake**<br><br>Nội dung có thể tree-shake, giảm kích thước của gói cuối cùng. Tải nội dung theo từng component, loại trừ bất kỳ nội dung không sử dụng nào khỏi gói của bạn. Hỗ trợ lazy loading để nâng cao hiệu quả tải ứng dụng. <br><br> - [Tối ưu hóa xây dựng ứng dụng](https://intlayer.org/doc/concept/how-works-intlayer#app-build-optimization) |
|
|
64
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/static_rendering.png?raw=true" alt="Static Rendering" width="700"> | **Static Rendering**<br><br>Không chặn Kết xuất Tĩnh. <br><br> - [Tích hợp Next.js](https://intlayer.org/doc/environment/nextjs) |
|
|
65
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/AI_translation.png?raw=true" alt="AI" width="700"> | **Dịch thuật dựa trên AI**<br><br>Biến trang web của bạn thành 231 ngôn ngữ chỉ với một cú nhấp chuột bằng cách sử dụng các công cụ dịch thuật tiên tiến dựa trên AI của Intlayer với nhà cung cấp AI / khóa API của riêng bạn. <br><br> - [Tích hợp CI/CD](https://intlayer.org/doc/concept/ci-cd) <br> - [CLI của Intlayer](https://intlayer.org/doc/concept/cli) <br> - [Tự động điền](https://intlayer.org/doc/concept/auto-fill) |
|
|
66
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/mcp.png?raw=true" alt="MCP" width="700"> | **Tích hợp Server MCP**<br><br>Cung cấp một máy chủ MCP (Model Context Protocol) cho tự động hóa IDE, cho phép quản lý nội dung và quy trình làm việc i18n liền mạch trực tiếp trong môi trường phát triển của bạn. <br><br> - [Máy Chủ MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/mcp_server.md) |
|
|
67
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/vscode_extension.png?raw=true" alt="VSCode" width="700"> | **Tiện ích mở rộng VSCode**<br><br>Intlayer cung cấp một tiện ích mở rộng VSCode giúp bạn quản lý nội dung và bản dịch, xây dựng từ điển của bạn, dịch nội dung, và nhiều hơn thế nữa. <br><br> - [Tiện Ích Mở Rộng VSCode](https://intlayer.org/doc/vs-code-extension) |
|
|
68
|
+
| <img src="https://github.com/aymericzip/intlayer/blob/main/docs/assets/interoperability.png?raw=true" alt="Interoperability" width="700"> | **Khả năng tương tác**<br><br>Cho phép tương thích liên vận với react-i18next, next-i18next, next-intl, react-intl, vue-i18n. <br><br> - [Intlayer và react-intl](https://intlayer.org/blog/intlayer-with-react-intl) <br> - [Intlayer và next-intl](https://intlayer.org/blog/intlayer-with-next-intl) <br> - [Intlayer và next-i18next](https://intlayer.org/blog/intlayer-with-next-i18next) <br> - [Intlayer và vue-i18n](https://intlayer.org/blog/intlayer-with-vue-i18n) |
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
@@ -73,8 +73,8 @@ Với **các tệp nội dung theo từng locale**, **tự động hoàn thành
|
|
|
73
73
|
|
|
74
74
|
Bắt đầu hành trình với Intlayer ngay hôm nay và trải nghiệm một cách tiếp cận quốc tế hóa mượt mà và mạnh mẽ hơn.
|
|
75
75
|
|
|
76
|
-
<a href="https://intlayer.org/doc/concept/content">
|
|
77
|
-
<img src="https://img.shields.io/badge/
|
|
76
|
+
<a href="https://intlayer.org/doc/concept/content" rel="">
|
|
77
|
+
<img src="https://img.shields.io/badge/Bắt_đầu-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
|
|
78
78
|
</a>
|
|
79
79
|
|
|
80
80
|
```bash
|
|
@@ -97,11 +97,29 @@ const config: IntlayerConfig = {
|
|
|
97
97
|
export default config;
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
+
```ts
|
|
101
|
+
// app/home.content.ts
|
|
102
|
+
import { t, type Dictionary } from "intlayer";
|
|
103
|
+
|
|
104
|
+
const content = {
|
|
105
|
+
key: "home",
|
|
106
|
+
content: {
|
|
107
|
+
title: t({
|
|
108
|
+
en: "Home",
|
|
109
|
+
fr: "Accueil",
|
|
110
|
+
es: "Inicio",
|
|
111
|
+
}),
|
|
112
|
+
},
|
|
113
|
+
} satisfies Dictionary;
|
|
114
|
+
|
|
115
|
+
export default content;
|
|
116
|
+
```
|
|
117
|
+
|
|
100
118
|
```tsx
|
|
101
119
|
// app/page.tsx
|
|
102
120
|
import { useIntlayer } from "react-intlayer";
|
|
103
121
|
|
|
104
|
-
const
|
|
122
|
+
const HomePage = () => {
|
|
105
123
|
const { title } = useIntlayer("home");
|
|
106
124
|
|
|
107
125
|
return <h1>{title}</h1>;
|
|
@@ -110,12 +128,12 @@ const Component = () => {
|
|
|
110
128
|
|
|
111
129
|
<a href="https://intlayer.org/doc/environment/nextjs"> Xem hướng dẫn đầy đủ → </a>
|
|
112
130
|
|
|
113
|
-
## 🎥
|
|
131
|
+
## 🎥 Video hướng dẫn trên YouTube
|
|
114
132
|
|
|
115
133
|
[](https://youtu.be/e_PPG7PTqGU?si=GyU_KpVhr61razRw)
|
|
116
134
|
|
|
117
|
-
<a href="https://intlayer.org/doc/concept/content">
|
|
118
|
-
<img src="https://img.shields.io/badge/
|
|
135
|
+
<a href="https://intlayer.org/doc/concept/content" rel="">
|
|
136
|
+
<img src="https://img.shields.io/badge/Bắt_đầu-FFFFFF?style=for-the-badge&logo=rocket&logoColor=black" />
|
|
119
137
|
</a>
|
|
120
138
|
|
|
121
139
|
## Mục lục
|
|
@@ -125,31 +143,32 @@ Khám phá tài liệu toàn diện của chúng tôi để bắt đầu với I
|
|
|
125
143
|
<details open>
|
|
126
144
|
<summary style="font-size:16px; font-weight:bold;">📘 Bắt đầu</summary>
|
|
127
145
|
<ul>
|
|
128
|
-
<li><a href="https://intlayer.org/doc/why">Tại sao chọn Intlayer?</a></li>
|
|
129
|
-
<li><a href="https://intlayer.org/doc">Giới thiệu</a></li>
|
|
146
|
+
<li><a href="https://intlayer.org/doc/why" rel=''>Tại sao chọn Intlayer?</a></li>
|
|
147
|
+
<li><a href="https://intlayer.org/doc" rel=''>Giới thiệu</a></li>
|
|
130
148
|
</ul>
|
|
131
149
|
</details>
|
|
132
150
|
|
|
133
151
|
<details>
|
|
134
152
|
<summary style="font-size:16px; font-weight:bold;">⚙️ Khái niệm</summary>
|
|
135
153
|
<ul>
|
|
136
|
-
<li><a href="https://intlayer.org/doc/concept/how-works-intlayer">Cách Intlayer hoạt động</a></li>
|
|
137
|
-
<li><a href="https://intlayer.org/doc/concept/configuration">Cấu hình</a></li>
|
|
138
|
-
<li><a href="https://intlayer.org/doc/concept/
|
|
139
|
-
<li><a href="https://intlayer.org/doc/
|
|
140
|
-
|
|
141
|
-
<li><a href="https://intlayer.org/doc/concept/
|
|
142
|
-
<li><a href="https://intlayer.org/doc/concept/
|
|
154
|
+
<li><a href="https://intlayer.org/doc/concept/how-works-intlayer" rel=''>Cách Intlayer hoạt động</a></li>
|
|
155
|
+
<li><a href="https://intlayer.org/doc/concept/configuration" rel=''>Cấu hình</a></li>
|
|
156
|
+
<li><a href="https://intlayer.org/doc/concept/cli" rel=''>Intlayer CLI</a></li>
|
|
157
|
+
<li><a href="https://intlayer.org/doc/compiler" rel=''>Trình biên dịch</a></li>
|
|
158
|
+
|
|
159
|
+
<li><a href="https://intlayer.org/doc/concept/editor" rel=''>Intlayer Editor</a></li>
|
|
160
|
+
<li><a href="https://intlayer.org/doc/concept/cms" rel=''>Intlayer CMS</a></li>
|
|
161
|
+
<li><a href="https://intlayer.org/doc/concept/content" rel=''>Từ điển</a>
|
|
143
162
|
<ul>
|
|
144
|
-
<li><a href="https://intlayer.org/doc/concept/content/per-locale-file">Tệp khai báo nội dung theo
|
|
145
|
-
<li><a href="https://intlayer.org/doc/concept/content/translation">Dịch thuật</a></li>
|
|
146
|
-
<li><a href="https://intlayer.org/doc/concept/content/enumeration">Liệt kê</a></li>
|
|
147
|
-
<li><a href="https://intlayer.org/doc/concept/content/condition">Điều kiện</a></li>
|
|
148
|
-
<li><a href="https://intlayer.org/doc/concept/content/nesting">Lồng nhau</a></li>
|
|
149
|
-
<li><a href="https://intlayer.org/doc/concept/content/markdown">Markdown</a></li>
|
|
150
|
-
<li><a href="https://intlayer.org/doc/concept/content/function-fetching">Lấy dữ liệu hàm</a></li>
|
|
151
|
-
<li><a href="https://intlayer.org/doc/concept/content/insertion">Chèn</a></li>
|
|
152
|
-
<li><a href="https://intlayer.org/doc/concept/content/file">Tệp</a></li>
|
|
163
|
+
<li><a href="https://intlayer.org/doc/concept/content/per-locale-file" rel=''>Tệp khai báo nội dung theo mỗi locale</a></li>
|
|
164
|
+
<li><a href="https://intlayer.org/doc/concept/content/translation" rel=''>Dịch thuật</a></li>
|
|
165
|
+
<li><a href="https://intlayer.org/doc/concept/content/enumeration" rel=''>Liệt kê</a></li>
|
|
166
|
+
<li><a href="https://intlayer.org/doc/concept/content/condition" rel=''>Điều kiện</a></li>
|
|
167
|
+
<li><a href="https://intlayer.org/doc/concept/content/nesting" rel=''>Lồng nhau</a></li>
|
|
168
|
+
<li><a href="https://intlayer.org/doc/concept/content/markdown" rel=''>Markdown</a></li>
|
|
169
|
+
<li><a href="https://intlayer.org/doc/concept/content/function-fetching" rel=''>Lấy dữ liệu từ hàm</a></li>
|
|
170
|
+
<li><a href="https://intlayer.org/doc/concept/content/insertion" rel=''>Chèn</a></li>
|
|
171
|
+
<li><a href="https://intlayer.org/doc/concept/content/file" rel=''>Tệp</a></li>
|
|
153
172
|
</ul>
|
|
154
173
|
</li>
|
|
155
174
|
</ul>
|
|
@@ -158,59 +177,69 @@ Khám phá tài liệu toàn diện của chúng tôi để bắt đầu với I
|
|
|
158
177
|
<details open>
|
|
159
178
|
<summary style="font-size:16px; font-weight:bold;">🌐 Môi trường</summary>
|
|
160
179
|
<ul>
|
|
161
|
-
<li><a href="https://intlayer.org/doc/environment/nextjs">Intlayer với Next.js
|
|
180
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs" rel=''>Intlayer với Next.js 16</a>
|
|
162
181
|
<ul>
|
|
163
|
-
<li><a href="https://intlayer.org/doc/environment/nextjs/
|
|
164
|
-
<li><a href="https://intlayer.org/doc/environment/nextjs/
|
|
182
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/15" rel=''>Next.js 15</a></li>
|
|
183
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/14" rel=''>Next.js 14 (App Router)</a></li>
|
|
184
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/next-with-Page-Router" rel=''>Next.js Page Router</a></li>
|
|
185
|
+
<li><a href="https://intlayer.org/doc/environment/nextjs/compiler" rel=''>Next.js sử dụng trình biên dịch</a></li>
|
|
165
186
|
</ul>
|
|
166
187
|
</li>
|
|
167
|
-
<li><a href="https://intlayer.org/doc/environment/create-react-app">React CRA</a></li>
|
|
168
|
-
<li><a href="https://intlayer.org/doc/environment/vite-and-react">Vite + React</a>
|
|
188
|
+
<li><a href="https://intlayer.org/doc/environment/create-react-app" rel=''>React CRA</a></li>
|
|
189
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-react" rel=''>Vite + React</a></li>
|
|
190
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-react" rel=''>Vite + React sử dụng trình biên dịch</a></li>
|
|
191
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-react/compiler" rel=''>React-router-v7</a></li>
|
|
192
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-react/tanstack-start" rel=''>Tanstack start</a></li>
|
|
193
|
+
<li><a href="https://intlayer.org/doc/environment/react-native-and-expo" rel=''>React Native</a></li>
|
|
194
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-svelte" rel=''>Vite + Svelte</a></li>
|
|
195
|
+
<li><a href="https://intlayer.org/doc/environment/sveltekit" rel=''>SvelteKit</a></li>
|
|
196
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-preact" rel=''>Vite + Preact</a></li>
|
|
197
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-vue" rel=''>Vite + Vue</a></li>
|
|
198
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-nuxt" rel=''>Vite + Nuxt</a></li>
|
|
199
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-solid" rel=''>Vite + Solid</a></li>
|
|
200
|
+
<li><a href="https://intlayer.org/doc/environment/angular" rel=''>Angular</a></li>
|
|
201
|
+
<li>
|
|
202
|
+
<a href="https://intlayer.org/doc/environment/express" rel=''>Backend</a>
|
|
169
203
|
<ul>
|
|
170
|
-
<li><a href="https://intlayer.org/doc/environment/
|
|
171
|
-
<li><a href="https://intlayer.org/doc/environment/
|
|
204
|
+
<li><a href="https://intlayer.org/doc/environment/express" rel=''>Express</a></li>
|
|
205
|
+
<li><a href="https://intlayer.org/doc/environment/nest" rel=''>NestJS</a></li>
|
|
206
|
+
<li><a href="https://intlayer.org/doc/environment/fastify" rel=''>Fastify</a></li>
|
|
207
|
+
<li><a href="https://intlayer.org/doc/environment/adonisjs" rel=''>AdonisJS</a></li>
|
|
208
|
+
<li><a href="https://intlayer.org/doc/environment/hono" rel=''>Hono</a></li>
|
|
172
209
|
</ul>
|
|
173
210
|
</li>
|
|
174
|
-
<li><a href="https://intlayer.org/doc/environment/react-native-and-expo">React Native</a></li>
|
|
175
|
-
<li><a href="https://intlayer.org/doc/environment/lynx-and-react">Lynx + React</a></li>
|
|
176
|
-
<li><a href="https://intlayer.org/doc/environment/vite-and-svelte">Vite + Svelte</a></li>
|
|
177
|
-
<li><a href="https://intlayer.org/doc/environment/vite-and-preact">Vite + Preact</a></li>
|
|
178
|
-
<li><a href="https://intlayer.org/doc/environment/vite-and-vue">Vite + Vue</a></li>
|
|
179
|
-
<li><a href="https://intlayer.org/doc/environment/vite-and-nuxt">Vite + Nuxt</a></li>
|
|
180
|
-
<li><a href="https://intlayer.org/doc/environment/vite-and-solid">Vite + Solid</a></li>
|
|
181
|
-
<li><a href="https://intlayer.org/doc/environment/angular">Angular</a></li>
|
|
182
|
-
<li><a href="https://intlayer.org/doc/environment/express">Express</a></li>
|
|
183
|
-
<li><a href="https://intlayer.org/doc/environment/nest">NestJS</a></li>
|
|
184
211
|
</ul>
|
|
185
212
|
</details>
|
|
186
213
|
|
|
187
214
|
<details>
|
|
188
215
|
<summary style="font-size:16px; font-weight:bold;">📰 Blog</summary>
|
|
189
216
|
<ul>
|
|
190
|
-
<li><a href="https://github.com/aymericzip/intlayer/blob/main/docs/blog/
|
|
191
|
-
<li><a href="https://intlayer.org/blog/SEO-and-i18n">
|
|
192
|
-
<li><a href="https://intlayer.org/blog/intlayer-with-next-i18next">Intlayer và i18next</a></li>
|
|
193
|
-
<li><a href="https://intlayer.org/blog/intlayer-with-react-i18next">Intlayer và react-intl</a></li>
|
|
194
|
-
<li><a href="https://intlayer.org/blog/intlayer-with-next-intl">Intlayer và next-intl</a></li>
|
|
217
|
+
<li><a href="https://github.com/aymericzip/intlayer/blob/main/docs/blog/en/what_is_internationalization.md" rel=''>i18n là gì</a></li>
|
|
218
|
+
<li><a href="https://intlayer.org/blog/SEO-and-i18n" rel=''>i18n và SEO</a></li>
|
|
219
|
+
<li><a href="https://intlayer.org/blog/intlayer-with-next-i18next" rel=''>Intlayer và i18next</a></li>
|
|
220
|
+
<li><a href="https://intlayer.org/blog/intlayer-with-react-i18next" rel=''>Intlayer và react-intl</a></li>
|
|
221
|
+
<li><a href="https://intlayer.org/blog/intlayer-with-next-intl" rel=''>Intlayer và next-intl</a></li>
|
|
195
222
|
</ul>
|
|
196
223
|
</details>
|
|
197
224
|
|
|
198
|
-
## 🌐
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
225
|
+
## 🌐 Readme bằng các ngôn ngữ khác
|
|
226
|
+
|
|
227
|
+
<p align="center">
|
|
228
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/readme.md">English</a> •
|
|
229
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/readme.md">简体中文</a> •
|
|
230
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/readme.md">Русский</a> •
|
|
231
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/readme.md">日本語</a> •
|
|
232
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/fr/readme.md">Français</a> •
|
|
233
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/readme.md">한국어</a> •
|
|
234
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/es/readme.md">Español</a> •
|
|
235
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/readme.md">Deutsch</a> •
|
|
236
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/readme.md">العربية</a> •
|
|
237
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/readme.md">Italiano</a> •
|
|
238
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/readme.md">English (UK)</a> •
|
|
239
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/readme.md">Português</a> •
|
|
240
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/readme.md">हिन्दी</a> •
|
|
241
|
+
<a href="https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/readme.md">Türkçe</a>
|
|
242
|
+
</p>
|
|
214
243
|
|
|
215
244
|
## 🤝 Cộng đồng
|
|
216
245
|
|
|
@@ -225,25 +254,22 @@ Bạn cũng có thể theo dõi chúng tôi trên:
|
|
|
225
254
|
<div>
|
|
226
255
|
<br/>
|
|
227
256
|
<p align="center">
|
|
228
|
-
<a href="https://discord.gg/528mBV4N" target="blank"><img align="center"
|
|
257
|
+
<a href="https://discord.gg/528mBV4N" target="blank" rel='noopener noreferrer nofollow'><img align="center"
|
|
229
258
|
src="https://img.shields.io/badge/discord-5865F2.svg?style=for-the-badge&logo=discord&logoColor=white"
|
|
230
259
|
alt="Intlayer Discord" height="30"/></a>
|
|
231
|
-
<a href="https://www.linkedin.com/company/intlayerorg" target="blank"><img align="center"
|
|
260
|
+
<a href="https://www.linkedin.com/company/intlayerorg" target="blank" rel='noopener noreferrer nofollow'><img align="center"
|
|
232
261
|
src="https://img.shields.io/badge/linkedin-%231DA1F2.svg?style=for-the-badge&logo=linkedin&logoColor=white"
|
|
233
262
|
alt="Intlayer LinkedIn" height="30"/></a>
|
|
234
|
-
<a href="https://www.
|
|
235
|
-
src="https://img.shields.io/badge/facebook-4267B2.svg?style=for-the-badge&logo=facebook&logoColor=white"
|
|
236
|
-
alt="Intlayer Facebook" height="30"/></a>
|
|
237
|
-
<a href="https://www.instagram.com/intlayer/" target="blank"><img align="center"
|
|
263
|
+
<a href="https://www.instagram.com/intlayer/" target="blank" rel='noopener noreferrer nofollow'><img align="center"
|
|
238
264
|
src="https://img.shields.io/badge/instagram-%23E4405F.svg?style=for-the-badge&logo=Instagram&logoColor=white"
|
|
239
265
|
alt="Intlayer Instagram" height="30"/></a>
|
|
240
|
-
<a href="https://x.com/Intlayer183096" target="blank"><img align="center"
|
|
266
|
+
<a href="https://x.com/Intlayer183096" target="blank" rel='noopener noreferrer nofollow'><img align="center"
|
|
241
267
|
src="https://img.shields.io/badge/x-1DA1F2.svg?style=for-the-badge&logo=x&logoColor=white"
|
|
242
268
|
alt="Intlayer X" height="30"/></a>
|
|
243
|
-
<a href="https://www.youtube.com/@intlayer" target="blank"><img align="center"
|
|
269
|
+
<a href="https://www.youtube.com/@intlayer" target="blank" rel='noopener noreferrer nofollow'><img align="center"
|
|
244
270
|
src="https://img.shields.io/badge/youtube-FF0000.svg?style=for-the-badge&logo=youtube&logoColor=white"
|
|
245
271
|
alt="Intlayer YouTube" height="30"/></a>
|
|
246
|
-
<a href="https://www.tiktok.com/@intlayer" target="blank"><img align="center"
|
|
272
|
+
<a href="https://www.tiktok.com/@intlayer" target="blank" rel='noopener noreferrer nofollow'><img align="center"
|
|
247
273
|
src="https://img.shields.io/badge/tiktok-000000.svg?style=for-the-badge&logo=tiktok&logoColor=white"
|
|
248
274
|
alt="Intlayer TikTok" height="30"/></a>
|
|
249
275
|
<br>
|
|
@@ -254,8 +280,10 @@ Bạn cũng có thể theo dõi chúng tôi trên:
|
|
|
254
280
|
|
|
255
281
|
Để biết hướng dẫn chi tiết hơn về cách đóng góp cho dự án này, vui lòng tham khảo tệp [`CONTRIBUTING.md`](https://github.com/aymericzip/intlayer/blob/main/CONTRIBUTING.md). Nó chứa thông tin quan trọng về quy trình phát triển, quy ước tin nhắn commit và quy trình phát hành của chúng tôi. Những đóng góp của bạn rất quý giá đối với chúng tôi, và chúng tôi đánh giá cao nỗ lực của bạn trong việc làm cho dự án này tốt hơn!
|
|
256
282
|
|
|
257
|
-
|
|
283
|
+
Đóng góp trên [GitHub](https://github.com/aymericzip/intlayer), [GitLab](https://gitlab.com/ay.pineau/intlayer) hoặc [Bitbucket](https://bitbucket.org/intlayer/intlayer/).
|
|
284
|
+
|
|
285
|
+
### Cảm ơn sự ủng hộ của bạn
|
|
258
286
|
|
|
259
|
-
Nếu bạn thích Intlayer, hãy cho chúng tôi một ⭐ trên GitHub. Điều này giúp người khác khám phá dự án!
|
|
287
|
+
Nếu bạn thích Intlayer, hãy cho chúng tôi một ⭐ trên GitHub. Điều này giúp người khác khám phá dự án! [Xem tại sao GitHub Stars quan trọng](https://github.com/aymericzip/intlayer/blob/main/CONTRIBUTING.md#why-github-stars-matter-).
|
|
260
288
|
|
|
261
|
-
[](https://star-history.com/#aymericzip/intlayer&Date)
|
package/docs/zh/compiler.md
CHANGED
|
@@ -53,6 +53,9 @@ history:
|
|
|
53
53
|
|
|
54
54
|
## 使用方法
|
|
55
55
|
|
|
56
|
+
<Tabs>
|
|
57
|
+
<Tab value='vite'>
|
|
58
|
+
|
|
56
59
|
### Vite
|
|
57
60
|
|
|
58
61
|
对于基于 Vite 的应用(React、Vue、Svelte 等),使用编译器最简单的方法是通过 `vite-intlayer` 插件。
|
|
@@ -79,6 +82,8 @@ export default defineConfig({
|
|
|
79
82
|
});
|
|
80
83
|
```
|
|
81
84
|
|
|
85
|
+
See complete tutorial: [Intlayer Compiler with Vite+React](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_vite+react_compiler.md)
|
|
86
|
+
|
|
82
87
|
#### 框架支持
|
|
83
88
|
|
|
84
89
|
Vite 插件会自动检测并处理不同的文件类型:
|
|
@@ -97,6 +102,9 @@ npm install @intlayer/vue-compiler
|
|
|
97
102
|
npm install @intlayer/svelte-compiler
|
|
98
103
|
```
|
|
99
104
|
|
|
105
|
+
</Tab>
|
|
106
|
+
<Tab value='nextjs'>
|
|
107
|
+
|
|
100
108
|
### Next.js(Babel)
|
|
101
109
|
|
|
102
110
|
对于使用 Babel 的 Next.js 或其他基于 Webpack 的应用,可以通过 `@intlayer/babel` 插件配置编译器。
|
|
@@ -131,3 +139,21 @@ module.exports = {
|
|
|
131
139
|
```
|
|
132
140
|
|
|
133
141
|
此配置确保在构建过程中,组件中声明的内容会被自动提取并用于生成字典。
|
|
142
|
+
|
|
143
|
+
See complete tutorial: [Intlayer Compiler with Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_compiler.md)
|
|
144
|
+
|
|
145
|
+
</Tab>
|
|
146
|
+
|
|
147
|
+
### 填充缺失的翻译
|
|
148
|
+
|
|
149
|
+
Intlayer 提供了一个 CLI 工具来帮助您填充缺失的翻译。您可以使用 `intlayer` 命令来测试并从代码中填充缺失的翻译。
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
npx intlayer test # 测试是否存在缺失的翻译
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
npx intlayer fill # 填充缺失的翻译
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
> 有关更多详细信息,请参阅 [CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/ci.md)
|