@intlayer/docs 7.3.1 → 7.3.2-canary.1

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.
Files changed (148) hide show
  1. package/README.md +0 -2
  2. package/blog/ar/compiler_vs_declarative_i18n.md +1 -2
  3. package/blog/ar/i18n_using_next-i18next.md +8 -0
  4. package/blog/ar/i18n_using_next-intl.md +7 -0
  5. package/blog/ar/intlayer_with_next-intl.md +8 -0
  6. package/blog/ar/list_i18n_technologies/frameworks/flutter.md +0 -22
  7. package/blog/de/compiler_vs_declarative_i18n.md +1 -2
  8. package/blog/de/i18n_using_next-i18next.md +8 -0
  9. package/blog/de/i18n_using_next-intl.md +7 -0
  10. package/blog/de/intlayer_with_next-intl.md +8 -0
  11. package/blog/de/list_i18n_technologies/frameworks/flutter.md +0 -22
  12. package/blog/en/compiler_vs_declarative_i18n.md +1 -2
  13. package/blog/en/i18n_using_next-i18next.md +8 -0
  14. package/blog/en/i18n_using_next-intl.md +7 -0
  15. package/blog/en/intlayer_with_next-intl.md +8 -0
  16. package/blog/en/list_i18n_technologies/frameworks/flutter.md +0 -22
  17. package/blog/en/list_i18n_technologies/frameworks/svelte.md +19 -3
  18. package/blog/en/list_i18n_technologies/frameworks/vue.md +16 -2
  19. package/blog/en-GB/compiler_vs_declarative_i18n.md +1 -2
  20. package/blog/en-GB/i18n_using_next-i18next.md +8 -0
  21. package/blog/en-GB/i18n_using_next-intl.md +7 -0
  22. package/blog/en-GB/intlayer_with_next-intl.md +8 -0
  23. package/blog/en-GB/list_i18n_technologies/frameworks/flutter.md +0 -22
  24. package/blog/es/compiler_vs_declarative_i18n.md +1 -2
  25. package/blog/es/i18n_using_next-i18next.md +8 -0
  26. package/blog/es/i18n_using_next-intl.md +7 -0
  27. package/blog/es/intlayer_with_next-intl.md +8 -0
  28. package/blog/es/list_i18n_technologies/frameworks/flutter.md +0 -22
  29. package/blog/fr/compiler_vs_declarative_i18n.md +1 -2
  30. package/blog/fr/i18n_using_next-i18next.md +8 -0
  31. package/blog/fr/i18n_using_next-intl.md +7 -0
  32. package/blog/fr/intlayer_with_next-intl.md +8 -0
  33. package/blog/fr/list_i18n_technologies/frameworks/flutter.md +0 -22
  34. package/blog/hi/compiler_vs_declarative_i18n.md +2 -3
  35. package/blog/hi/i18n_using_next-i18next.md +8 -0
  36. package/blog/hi/i18n_using_next-intl.md +7 -0
  37. package/blog/hi/intlayer_with_next-intl.md +8 -0
  38. package/blog/hi/list_i18n_technologies/frameworks/flutter.md +0 -22
  39. package/blog/id/compiler_vs_declarative_i18n.md +1 -2
  40. package/blog/id/i18n_using_next-i18next.md +8 -0
  41. package/blog/id/i18n_using_next-intl.md +7 -0
  42. package/blog/id/intlayer_with_next-intl.md +8 -0
  43. package/blog/id/list_i18n_technologies/frameworks/flutter.md +0 -22
  44. package/blog/it/compiler_vs_declarative_i18n.md +1 -2
  45. package/blog/it/i18n_using_next-i18next.md +8 -0
  46. package/blog/it/i18n_using_next-intl.md +7 -0
  47. package/blog/it/intlayer_with_next-intl.md +8 -0
  48. package/blog/it/list_i18n_technologies/frameworks/flutter.md +0 -22
  49. package/blog/ja/compiler_vs_declarative_i18n.md +1 -2
  50. package/blog/ja/i18n_using_next-i18next.md +8 -0
  51. package/blog/ja/i18n_using_next-intl.md +7 -0
  52. package/blog/ja/intlayer_with_next-intl.md +8 -0
  53. package/blog/ja/list_i18n_technologies/frameworks/flutter.md +0 -22
  54. package/blog/ko/compiler_vs_declarative_i18n.md +2 -3
  55. package/blog/ko/i18n_using_next-i18next.md +8 -0
  56. package/blog/ko/i18n_using_next-intl.md +7 -0
  57. package/blog/ko/intlayer_with_next-intl.md +8 -0
  58. package/blog/ko/list_i18n_technologies/frameworks/flutter.md +0 -22
  59. package/blog/pl/compiler_vs_declarative_i18n.md +1 -2
  60. package/blog/pl/i18n_using_next-i18next.md +8 -0
  61. package/blog/pl/i18n_using_next-intl.md +7 -0
  62. package/blog/pl/intlayer_with_next-intl.md +8 -0
  63. package/blog/pl/list_i18n_technologies/frameworks/flutter.md +0 -22
  64. package/blog/pt/compiler_vs_declarative_i18n.md +1 -2
  65. package/blog/pt/i18n_using_next-i18next.md +8 -0
  66. package/blog/pt/i18n_using_next-intl.md +7 -0
  67. package/blog/pt/intlayer_with_next-intl.md +8 -0
  68. package/blog/pt/list_i18n_technologies/frameworks/flutter.md +0 -22
  69. package/blog/ru/compiler_vs_declarative_i18n.md +1 -2
  70. package/blog/ru/i18n_using_next-i18next.md +8 -0
  71. package/blog/ru/i18n_using_next-intl.md +7 -0
  72. package/blog/ru/intlayer_with_next-intl.md +8 -0
  73. package/blog/ru/list_i18n_technologies/frameworks/flutter.md +0 -22
  74. package/blog/tr/compiler_vs_declarative_i18n.md +2 -3
  75. package/blog/tr/i18n_using_next-i18next.md +8 -0
  76. package/blog/tr/i18n_using_next-intl.md +7 -0
  77. package/blog/tr/intlayer_with_next-intl.md +8 -0
  78. package/blog/tr/list_i18n_technologies/frameworks/flutter.md +0 -22
  79. package/blog/vi/compiler_vs_declarative_i18n.md +1 -2
  80. package/blog/vi/i18n_using_next-i18next.md +8 -0
  81. package/blog/vi/i18n_using_next-intl.md +7 -0
  82. package/blog/vi/intlayer_with_next-intl.md +8 -0
  83. package/blog/vi/list_i18n_technologies/frameworks/flutter.md +0 -22
  84. package/blog/zh/compiler_vs_declarative_i18n.md +1 -2
  85. package/blog/zh/i18n_using_next-i18next.md +8 -0
  86. package/blog/zh/i18n_using_next-intl.md +7 -0
  87. package/blog/zh/intlayer_with_next-intl.md +8 -0
  88. package/blog/zh/list_i18n_technologies/frameworks/flutter.md +0 -22
  89. package/dist/cjs/generated/docs.entry.cjs +19 -0
  90. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  91. package/dist/esm/generated/docs.entry.mjs +19 -0
  92. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  93. package/dist/types/generated/docs.entry.d.ts +1 -0
  94. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  95. package/docs/ar/bundle_optimization.md +6 -2
  96. package/docs/ar/compiler.md +133 -0
  97. package/docs/de/bundle_optimization.md +6 -2
  98. package/docs/de/compiler.md +133 -0
  99. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  100. package/docs/de/per_locale_file.md +1 -1
  101. package/docs/en/bundle_optimization.md +6 -2
  102. package/docs/en/cli/index.md +2 -2
  103. package/docs/en/compiler.md +133 -0
  104. package/docs/en/intlayer_with_nextjs_14.md +0 -1
  105. package/docs/en-GB/bundle_optimization.md +6 -2
  106. package/docs/en-GB/compiler.md +133 -0
  107. package/docs/en-GB/packages/intlayer/getTranslation.md +1 -3
  108. package/docs/en-GB/packages/react-intlayer/t.md +1 -1
  109. package/docs/en-GB/packages/react-intlayer/useI18n.md +1 -1
  110. package/docs/es/bundle_optimization.md +6 -2
  111. package/docs/es/compiler.md +133 -0
  112. package/docs/fr/bundle_optimization.md +6 -2
  113. package/docs/fr/compiler.md +133 -0
  114. package/docs/fr/packages/react-intlayer/useI18n.md +1 -1
  115. package/docs/hi/bundle_optimization.md +6 -2
  116. package/docs/hi/compiler.md +133 -0
  117. package/docs/id/bundle_optimization.md +6 -2
  118. package/docs/id/compiler.md +133 -0
  119. package/docs/id/formatters.md +0 -1
  120. package/docs/id/intlayer_with_nextjs_14.md +1 -2
  121. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  122. package/docs/it/bundle_optimization.md +6 -2
  123. package/docs/it/compiler.md +133 -0
  124. package/docs/ja/bundle_optimization.md +6 -2
  125. package/docs/ja/compiler.md +133 -0
  126. package/docs/ko/bundle_optimization.md +6 -2
  127. package/docs/ko/cli/index.md +20 -20
  128. package/docs/ko/compiler.md +133 -0
  129. package/docs/pl/bundle_optimization.md +6 -2
  130. package/docs/pl/compiler.md +133 -0
  131. package/docs/pl/formatters.md +0 -1
  132. package/docs/pl/intlayer_with_nextjs_14.md +1 -2
  133. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  134. package/docs/pt/bundle_optimization.md +6 -2
  135. package/docs/pt/compiler.md +133 -0
  136. package/docs/ru/bundle_optimization.md +6 -2
  137. package/docs/ru/compiler.md +133 -0
  138. package/docs/tr/bundle_optimization.md +6 -2
  139. package/docs/tr/compiler.md +133 -0
  140. package/docs/tr/intlayer_with_nextjs_14.md +2 -0
  141. package/docs/vi/bundle_optimization.md +6 -2
  142. package/docs/vi/compiler.md +133 -0
  143. package/docs/vi/intlayer_with_nextjs_14.md +1 -2
  144. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  145. package/docs/zh/bundle_optimization.md +6 -2
  146. package/docs/zh/compiler.md +133 -0
  147. package/package.json +10 -9
  148. package/src/generated/docs.entry.ts +19 -0
@@ -0,0 +1,133 @@
1
+ ---
2
+ createdAt: 2025-09-09
3
+ updatedAt: 2025-09-09
4
+ title: Trình Biên Dịch Intlayer | Trích Xuất Nội Dung Tự Động cho i18n
5
+ description: Tự động hóa quy trình quốc tế hóa của bạn với Trình Biên Dịch Intlayer. Trích xuất nội dung trực tiếp từ các component để i18n nhanh hơn và hiệu quả hơn trong Vite, Next.js và nhiều hơn nữa.
6
+ keywords:
7
+ - Intlayer
8
+ - Trình Biên Dịch
9
+ - Quốc tế hóa
10
+ - i18n
11
+ - Tự động hóa
12
+ - Trích xuất
13
+ - Tốc độ
14
+ - Vite
15
+ - Next.js
16
+ - React
17
+ - Vue
18
+ - Svelte
19
+ slugs:
20
+ - doc
21
+ - compiler
22
+ history:
23
+ - version: 7.3.1
24
+ date: 2025-11-27
25
+ changes: Phát hành Trình Biên Dịch
26
+ ---
27
+
28
+ # Trình Biên Dịch Intlayer | Trích Xuất Nội Dung Tự Động cho i18n
29
+
30
+ ## Trình Biên Dịch Intlayer là gì?
31
+
32
+ **Trình Biên Dịch Intlayer** là một công cụ mạnh mẽ được thiết kế để tự động hóa quy trình quốc tế hóa (i18n) trong các ứng dụng của bạn. Nó quét mã nguồn của bạn (JSX, TSX, Vue, Svelte) để tìm các khai báo nội dung, trích xuất chúng và tự động tạo ra các tệp từ điển cần thiết. Điều này cho phép bạn giữ nội dung cùng vị trí với các component của mình trong khi Intlayer xử lý việc quản lý và đồng bộ hóa các từ điển đó.
33
+
34
+ ## Tại sao nên sử dụng Trình Biên Dịch Intlayer?
35
+
36
+ - **Tự động hóa**: Loại bỏ việc sao chép thủ công nội dung vào từ điển.
37
+ - **Tốc độ**: Tối ưu hóa việc trích xuất nội dung đảm bảo quá trình build của bạn vẫn nhanh.
38
+ - **Trải nghiệm nhà phát triển**: Giữ các khai báo nội dung ngay tại nơi chúng được sử dụng, cải thiện khả năng bảo trì.
39
+ - **Cập nhật trực tiếp**: Hỗ trợ Hot Module Replacement (HMR) để phản hồi ngay lập tức trong quá trình phát triển.
40
+
41
+ Xem bài viết blog [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/vi/compiler_vs_declarative_i18n.md) để có sự so sánh sâu hơn.
42
+
43
+ ## Tại sao không sử dụng Trình Biên Dịch Intlayer?
44
+
45
+ Mặc dù trình biên dịch mang lại trải nghiệm "hoạt động ngay" tuyệt vời, nó cũng giới thiệu một số đánh đổi mà bạn nên biết:
46
+
47
+ - **Sự mơ hồ của heuristic**: Trình biên dịch phải đoán xem đâu là nội dung hướng đến người dùng so với logic ứng dụng (ví dụ: `className="active"`, mã trạng thái, ID sản phẩm). Trong các codebase phức tạp, điều này có thể dẫn đến dương tính giả hoặc các chuỗi bị bỏ sót cần chú thích thủ công và ngoại lệ.
48
+ - **Chỉ trích xuất tĩnh**: Trích xuất dựa trên trình biên dịch dựa vào phân tích tĩnh. Các chuỗi chỉ tồn tại ở thời gian chạy (mã lỗi API, trường CMS, v.v.) không thể được phát hiện hoặc dịch bởi trình biên dịch một mình, vì vậy bạn vẫn cần một chiến lược i18n thời gian chạy bổ sung.
49
+
50
+ Để có so sánh kiến trúc sâu hơn, xem bài viết blog [Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/vi/compiler_vs_declarative_i18n.md).
51
+
52
+ Như một giải pháp thay thế, để tự động hóa quy trình i18n của bạn trong khi vẫn giữ quyền kiểm soát hoàn toàn đối với nội dung của bạn, Intlayer cũng cung cấp lệnh tự động trích xuất `intlayer transform` (xem [tài liệu CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/transform.md)), hoặc lệnh `Intlayer: extract content to Dictionary` từ tiện ích mở rộng Intlayer VS Code (xem [tài liệu tiện ích mở rộng VS Code](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/vs_code_extension.md)).
53
+
54
+ ## Cách sử dụng
55
+
56
+ ### Vite
57
+
58
+ Đối với các ứng dụng dựa trên Vite (React, Vue, Svelte, v.v.), cách dễ nhất để sử dụng trình biên dịch là thông qua plugin `vite-intlayer`.
59
+
60
+ #### Cài đặt
61
+
62
+ ```bash
63
+ npm install vite-intlayer
64
+ ```
65
+
66
+ #### Cấu hình
67
+
68
+ Cập nhật file `vite.config.ts` của bạn để bao gồm plugin `intlayerCompiler`:
69
+
70
+ ```ts fileName="vite.config.ts"
71
+ import { defineConfig } from "vite";
72
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
73
+
74
+ export default defineConfig({
75
+ plugins: [
76
+ intlayer(),
77
+ intlayerCompiler(), // Thêm plugin trình biên dịch
78
+ ],
79
+ });
80
+ ```
81
+
82
+ #### Hỗ trợ Framework
83
+
84
+ Plugin Vite tự động phát hiện và xử lý các loại file khác nhau:
85
+
86
+ - **React / JSX / TSX**: Xử lý một cách tự nhiên.
87
+ - **Vue**: Yêu cầu `@intlayer/vue-compiler`.
88
+ - **Svelte**: Yêu cầu `@intlayer/svelte-compiler`.
89
+
90
+ Hãy chắc chắn cài đặt gói trình biên dịch phù hợp với framework của bạn:
91
+
92
+ ```bash
93
+ # Dành cho Vue
94
+ npm install @intlayer/vue-compiler
95
+
96
+ # Dành cho Svelte
97
+ npm install @intlayer/svelte-compiler
98
+ ```
99
+
100
+ ### Next.js (Babel)
101
+
102
+ Đối với Next.js hoặc các ứng dụng dựa trên Webpack sử dụng Babel, bạn có thể cấu hình trình biên dịch bằng cách sử dụng plugin `@intlayer/babel`.
103
+
104
+ #### Cài đặt
105
+
106
+ ```bash
107
+ npm install @intlayer/babel
108
+ ```
109
+
110
+ #### Cấu hình
111
+
112
+ Cập nhật `babel.config.js` (hoặc `babel.config.json`) của bạn để bao gồm plugin trích xuất. Chúng tôi cung cấp một helper `getExtractPluginOptions` để tự động tải cấu hình Intlayer của bạn.
113
+
114
+ ```js fileName="babel.config.js"
115
+ const {
116
+ intlayerExtractBabelPlugin,
117
+ intlayerOptimizeBabelPlugin,
118
+ getExtractPluginOptions,
119
+ getOptimizePluginOptions,
120
+ } = require("@intlayer/babel");
121
+
122
+ module.exports = {
123
+ presets: ["next/babel"],
124
+ plugins: [
125
+ // Extract content from components into dictionaries
126
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
127
+ // Optimize imports by replacing useIntlayer with direct dictionary imports
128
+ [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
129
+ ],
130
+ };
131
+ ```
132
+
133
+ Cấu hình này đảm bảo rằng nội dung được khai báo trong các component của bạn sẽ được tự động trích xuất và sử dụng để tạo từ điển trong quá trình build.
@@ -17,7 +17,6 @@ slugs:
17
17
  - 14
18
18
  applicationTemplate: https://github.com/aymericzip/intlayer-next-14-template
19
19
  history:
20
- - version: 7.0.6
21
20
  - version: 6.2.0
22
21
  date: 2025-10-09
23
22
  changes: Thêm tài liệu cho hook `useLocale` với tùy chọn `onLocaleChange`
@@ -26,7 +25,7 @@ history:
26
25
  changes: Thêm tài liệu cho hàm `getLocale` trên các hành động server
27
26
  - version: 5.6.2
28
27
  date: 2025-09-22
29
- changes: Thêm tài liệu cho helper `multipleMiddlewares`
28
+ changes: Thêm tài liệu cho helper `multipleMiddlewares`
30
29
  - version: 5.6.0
31
30
  date: 2025-07-06
32
31
  changes: Chuyển hàm `withIntlayer()` thành hàm dựa trên promise
@@ -26,7 +26,7 @@ history:
26
26
  changes: Thêm đề cập đến hàm `withIntlayerSync()`
27
27
  - version: 6.2.0
28
28
  date: 2025-10-09
29
- changes: Thêm tài liệu cho hook `useLocale` với tùy chọn `onLocaleChange`
29
+ changes: Thêm tài liệu cho hook `useLocale` với tùy chọn `onLocaleChange`
30
30
  - version: 5.6.6
31
31
  date: 2025-10-02
32
32
  changes: Thêm tài liệu cho hàm `getLocale` trong các hành động server
@@ -153,9 +153,13 @@ const content = useIntlayer("my-key");
153
153
  // 优化后的代码(动态)
154
154
  const content = useDictionaryAsync({
155
155
  en: () =>
156
- import(".intlayer/dynamic_dictionary/en.json").then((mod) => mod.default),
156
+ import(".intlayer/dynamic_dictionary/my-key/en.json").then(
157
+ (mod) => mod.default
158
+ ),
157
159
  fr: () =>
158
- import(".intlayer/dynamic_dictionary/fr.json").then((mod) => mod.default),
160
+ import(".intlayer/dynamic_dictionary/my-key/fr.json").then(
161
+ (mod) => mod.default
162
+ ),
159
163
  });
160
164
  ```
161
165
 
@@ -0,0 +1,133 @@
1
+ ---
2
+ createdAt: 2025-09-09
3
+ updatedAt: 2025-09-09
4
+ title: Intlayer 编译器 | 用于 i18n 的自动内容提取
5
+ description: 使用 Intlayer 编译器自动化您的国际化流程。直接从组件中提取内容,实现 Vite、Next.js 等框架中更快速、更高效的 i18n。
6
+ keywords:
7
+ - Intlayer
8
+ - 编译器
9
+ - 国际化
10
+ - i18n
11
+ - 自动化
12
+ - 提取
13
+ - 速度
14
+ - Vite
15
+ - Next.js
16
+ - React
17
+ - Vue
18
+ - Svelte
19
+ slugs:
20
+ - doc
21
+ - compiler
22
+ history:
23
+ - version: 7.3.1
24
+ date: 2025-11-27
25
+ changes: 发布编译器
26
+ ---
27
+
28
+ # Intlayer 编译器 | 用于 i18n 的自动内容提取
29
+
30
+ ## 什么是 Intlayer 编译器?
31
+
32
+ **Intlayer 编译器** 是一个强大的工具,旨在自动化您应用程序中的国际化(i18n)流程。它会扫描您的源代码(JSX、TSX、Vue、Svelte)中的内容声明,提取它们,并自动生成所需的字典文件。这使您能够将内容与组件放置在一起,而 Intlayer 则负责管理和同步您的字典。
33
+
34
+ ## 为什么使用 Intlayer 编译器?
35
+
36
+ - **自动化**:消除手动将内容复制粘贴到字典中的步骤。
37
+ - **速度**:优化的内容提取,确保构建过程保持快速。
38
+ - **开发者体验**:将内容声明保留在使用它们的位置,提高可维护性。
39
+ - **实时更新**:支持热模块替换(HMR),在开发过程中即时反馈。
40
+
41
+ 请参阅[Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/zh/compiler_vs_declarative_i18n.md)博客文章,了解更深入的比较。
42
+
43
+ ## 为什么不使用 Intlayer 编译器?
44
+
45
+ 虽然编译器提供了出色的"开箱即用"体验,但它也引入了一些您应该了解的权衡:
46
+
47
+ - **启发式歧义**:编译器必须猜测什么是面向用户的内容,什么是应用程序逻辑(例如,`className="active"`、状态代码、产品 ID)。在复杂的代码库中,这可能导致误报或遗漏的字符串,需要手动注释和异常处理。
48
+ - **仅静态提取**:基于编译器的提取依赖于静态分析。仅在运行时存在的字符串(API 错误代码、CMS 字段等)无法被编译器单独发现或翻译,因此您仍然需要补充的运行时 i18n 策略。
49
+
50
+ 有关更深入的架构比较,请参阅博客文章[Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/zh/compiler_vs_declarative_i18n.md)。
51
+
52
+ 作为替代方案,为了在保持对内容的完全控制的同时自动化您的 i18n 流程,Intlayer 还提供了自动提取命令 `intlayer transform`(请参阅[CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/transform.md)),或 Intlayer VS Code 扩展的 `Intlayer: extract content to Dictionary` 命令(请参阅[VS Code 扩展文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/vs_code_extension.md))。
53
+
54
+ ## 使用方法
55
+
56
+ ### Vite
57
+
58
+ 对于基于 Vite 的应用(React、Vue、Svelte 等),使用编译器最简单的方法是通过 `vite-intlayer` 插件。
59
+
60
+ #### 安装
61
+
62
+ ```bash
63
+ npm install vite-intlayer
64
+ ```
65
+
66
+ #### 配置
67
+
68
+ 更新你的 `vite.config.ts`,以包含 `intlayerCompiler` 插件:
69
+
70
+ ```ts fileName="vite.config.ts"
71
+ import { defineConfig } from "vite";
72
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
73
+
74
+ export default defineConfig({
75
+ plugins: [
76
+ intlayer(),
77
+ intlayerCompiler(), // 添加编译器插件
78
+ ],
79
+ });
80
+ ```
81
+
82
+ #### 框架支持
83
+
84
+ Vite 插件会自动检测并处理不同的文件类型:
85
+
86
+ - **React / JSX / TSX**:原生支持。
87
+ - **Vue**:需要安装 `@intlayer/vue-compiler`。
88
+ - **Svelte**:需要安装 `@intlayer/svelte-compiler`。
89
+
90
+ 请确保为你的框架安装了相应的编译器包:
91
+
92
+ ```bash
93
+ # Vue 使用
94
+ npm install @intlayer/vue-compiler
95
+
96
+ # Svelte 使用
97
+ npm install @intlayer/svelte-compiler
98
+ ```
99
+
100
+ ### Next.js(Babel)
101
+
102
+ 对于使用 Babel 的 Next.js 或其他基于 Webpack 的应用,可以通过 `@intlayer/babel` 插件配置编译器。
103
+
104
+ #### 安装
105
+
106
+ ```bash
107
+ npm install @intlayer/babel
108
+ ```
109
+
110
+ #### 配置
111
+
112
+ 更新您的 `babel.config.js`(或 `babel.config.json`)以包含提取插件。我们提供了一个辅助函数 `getExtractPluginOptions`,用于自动加载您的 Intlayer 配置。
113
+
114
+ ```js fileName="babel.config.js"
115
+ const {
116
+ intlayerExtractBabelPlugin,
117
+ intlayerOptimizeBabelPlugin,
118
+ getExtractPluginOptions,
119
+ getOptimizePluginOptions,
120
+ } = require("@intlayer/babel");
121
+
122
+ module.exports = {
123
+ presets: ["next/babel"],
124
+ plugins: [
125
+ // Extract content from components into dictionaries
126
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
127
+ // Optimize imports by replacing useIntlayer with direct dictionary imports
128
+ [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
129
+ ],
130
+ };
131
+ ```
132
+
133
+ 此配置确保在构建过程中,组件中声明的内容会被自动提取并用于生成字典。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/docs",
3
- "version": "7.3.1",
3
+ "version": "7.3.2-canary.1",
4
4
  "private": false,
5
5
  "description": "Intlayer documentation",
6
6
  "keywords": [
@@ -48,6 +48,7 @@
48
48
  "legal"
49
49
  ],
50
50
  "scripts": {
51
+ "_prepublish": "cp -f ../README.md ./README.md",
51
52
  "prebuild": "tsx tools/generateEntry.ts",
52
53
  "build": "tsdown --config tsdown.config.ts",
53
54
  "build:ci": "tsdown --config tsdown.config.ts",
@@ -57,7 +58,7 @@
57
58
  "format:fix": "biome format --write .",
58
59
  "lint": "biome lint .",
59
60
  "lint:fix": "biome lint --write .",
60
- "prepublish": "cp -f ../README.md ./README.md",
61
+ "prepublish": "echo prepublish temporally disabled to avoid rewrite readme",
61
62
  "publish": "bun publish || true",
62
63
  "publish:canary": "bun publish --access public --tag canary || true",
63
64
  "publish:latest": "bun publish --access public --tag latest || true",
@@ -72,23 +73,23 @@
72
73
  "watch": "webpack --config ./webpack.config.ts --watch"
73
74
  },
74
75
  "dependencies": {
75
- "@intlayer/config": "7.3.1",
76
- "@intlayer/core": "7.3.1",
77
- "@intlayer/types": "7.3.1"
76
+ "@intlayer/config": "7.3.2-canary.1",
77
+ "@intlayer/core": "7.3.2-canary.1",
78
+ "@intlayer/types": "7.3.2-canary.1"
78
79
  },
79
80
  "devDependencies": {
80
- "@intlayer/api": "7.3.1",
81
- "@intlayer/cli": "7.3.1",
81
+ "@intlayer/api": "7.3.2-canary.1",
82
+ "@intlayer/cli": "7.3.2-canary.1",
82
83
  "@types/node": "24.10.1",
83
84
  "@utils/ts-config": "1.0.4",
84
85
  "@utils/ts-config-types": "1.0.4",
85
86
  "@utils/tsdown-config": "1.0.4",
86
87
  "fast-glob": "3.3.3",
87
88
  "rimraf": "6.1.2",
88
- "tsdown": "0.16.6",
89
+ "tsdown": "0.16.8",
89
90
  "tsx": "^4.20.6",
90
91
  "typescript": "5.9.3",
91
- "vitest": "4.0.13"
92
+ "vitest": "4.0.14"
92
93
  },
93
94
  "engines": {
94
95
  "node": ">=14.18"
@@ -433,6 +433,25 @@ export const docsEntry = {
433
433
  id: readLocale('cli/watch.md', 'id'),
434
434
  vi: readLocale('cli/watch.md', 'vi'),
435
435
  } as unknown as Record<LocalesValues, Promise<string>>,
436
+ './docs/en/compiler.md': {
437
+ en: readLocale('compiler.md', 'en'),
438
+ ru: readLocale('compiler.md', 'ru'),
439
+ ja: readLocale('compiler.md', 'ja'),
440
+ fr: readLocale('compiler.md', 'fr'),
441
+ ko: readLocale('compiler.md', 'ko'),
442
+ zh: readLocale('compiler.md', 'zh'),
443
+ es: readLocale('compiler.md', 'es'),
444
+ de: readLocale('compiler.md', 'de'),
445
+ ar: readLocale('compiler.md', 'ar'),
446
+ it: readLocale('compiler.md', 'it'),
447
+ 'en-GB': readLocale('compiler.md', 'en-GB'),
448
+ pt: readLocale('compiler.md', 'pt'),
449
+ hi: readLocale('compiler.md', 'hi'),
450
+ tr: readLocale('compiler.md', 'tr'),
451
+ pl: readLocale('compiler.md', 'pl'),
452
+ id: readLocale('compiler.md', 'id'),
453
+ vi: readLocale('compiler.md', 'vi'),
454
+ } as unknown as Record<LocalesValues, Promise<string>>,
436
455
  './docs/en/component_i18n.md': {
437
456
  en: readLocale('component_i18n.md', 'en'),
438
457
  ru: readLocale('component_i18n.md', 'ru'),