@intlayer/docs 8.3.0-canary.4 → 8.3.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 (240) hide show
  1. package/docs/ar/compiler.md +84 -49
  2. package/docs/ar/configuration.md +80 -37
  3. package/docs/ar/intlayer_with_nextjs_16.md +174 -1
  4. package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
  5. package/docs/ar/intlayer_with_react_router_v7.md +224 -1
  6. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
  7. package/docs/ar/intlayer_with_svelte_kit.md +175 -2
  8. package/docs/ar/intlayer_with_tanstack.md +176 -1
  9. package/docs/ar/intlayer_with_vite+preact.md +174 -1
  10. package/docs/ar/intlayer_with_vite+react.md +174 -1
  11. package/docs/ar/intlayer_with_vite+solid.md +174 -1
  12. package/docs/ar/intlayer_with_vite+svelte.md +174 -1
  13. package/docs/ar/intlayer_with_vite+vue.md +174 -1
  14. package/docs/de/compiler.md +83 -48
  15. package/docs/de/configuration.md +434 -212
  16. package/docs/de/intlayer_with_nextjs_16.md +176 -1
  17. package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
  18. package/docs/de/intlayer_with_react_router_v7.md +225 -2
  19. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
  20. package/docs/de/intlayer_with_svelte_kit.md +158 -2
  21. package/docs/de/intlayer_with_tanstack.md +159 -1
  22. package/docs/de/intlayer_with_vite+preact.md +157 -1
  23. package/docs/de/intlayer_with_vite+react.md +157 -1
  24. package/docs/de/intlayer_with_vite+solid.md +159 -3
  25. package/docs/de/intlayer_with_vite+svelte.md +157 -1
  26. package/docs/de/intlayer_with_vite+vue.md +157 -1
  27. package/docs/en/compiler.md +60 -33
  28. package/docs/en/configuration.md +80 -57
  29. package/docs/en/intlayer_with_nextjs_16.md +176 -0
  30. package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
  31. package/docs/en/intlayer_with_react_router_v7.md +159 -0
  32. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
  33. package/docs/en/intlayer_with_svelte_kit.md +159 -0
  34. package/docs/en/intlayer_with_tanstack.md +160 -1
  35. package/docs/en/intlayer_with_vite+preact.md +159 -0
  36. package/docs/en/intlayer_with_vite+react.md +159 -0
  37. package/docs/en/intlayer_with_vite+solid.md +148 -27
  38. package/docs/en/intlayer_with_vite+svelte.md +159 -0
  39. package/docs/en/intlayer_with_vite+vue.md +142 -41
  40. package/docs/en-GB/compiler.md +66 -34
  41. package/docs/en-GB/configuration.md +78 -36
  42. package/docs/es/compiler.md +83 -48
  43. package/docs/es/configuration.md +429 -206
  44. package/docs/es/intlayer_with_adonisjs.md +1 -1
  45. package/docs/es/intlayer_with_express.md +1 -1
  46. package/docs/es/intlayer_with_fastify.md +1 -1
  47. package/docs/es/intlayer_with_hono.md +1 -1
  48. package/docs/es/intlayer_with_nestjs.md +1 -1
  49. package/docs/es/intlayer_with_nextjs_16.md +176 -3
  50. package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
  51. package/docs/es/intlayer_with_nuxt.md +1 -1
  52. package/docs/es/intlayer_with_react_router_v7.md +227 -4
  53. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
  54. package/docs/es/intlayer_with_svelte_kit.md +158 -2
  55. package/docs/es/intlayer_with_tanstack.md +160 -2
  56. package/docs/es/intlayer_with_vite+preact.md +162 -6
  57. package/docs/es/intlayer_with_vite+react.md +160 -4
  58. package/docs/es/intlayer_with_vite+solid.md +163 -7
  59. package/docs/es/intlayer_with_vite+svelte.md +157 -1
  60. package/docs/es/intlayer_with_vite+vue.md +165 -9
  61. package/docs/fr/compiler.md +81 -46
  62. package/docs/fr/configuration.md +355 -134
  63. package/docs/fr/intlayer_with_adonisjs.md +1 -1
  64. package/docs/fr/intlayer_with_express.md +1 -1
  65. package/docs/fr/intlayer_with_fastify.md +1 -1
  66. package/docs/fr/intlayer_with_hono.md +1 -1
  67. package/docs/fr/intlayer_with_nestjs.md +1 -1
  68. package/docs/fr/intlayer_with_nextjs_16.md +183 -7
  69. package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
  70. package/docs/fr/intlayer_with_react_router_v7.md +229 -3
  71. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
  72. package/docs/fr/intlayer_with_svelte_kit.md +158 -2
  73. package/docs/fr/intlayer_with_tanstack.md +159 -1
  74. package/docs/fr/intlayer_with_vite+preact.md +164 -8
  75. package/docs/fr/intlayer_with_vite+react.md +162 -6
  76. package/docs/fr/intlayer_with_vite+solid.md +163 -7
  77. package/docs/fr/intlayer_with_vite+svelte.md +157 -1
  78. package/docs/fr/intlayer_with_vite+vue.md +164 -8
  79. package/docs/hi/compiler.md +81 -46
  80. package/docs/hi/configuration.md +87 -44
  81. package/docs/hi/intlayer_with_nextjs_16.md +174 -1
  82. package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
  83. package/docs/hi/intlayer_with_react_router_v7.md +224 -1
  84. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
  85. package/docs/hi/intlayer_with_svelte_kit.md +158 -2
  86. package/docs/hi/intlayer_with_tanstack.md +159 -1
  87. package/docs/hi/intlayer_with_vite+preact.md +157 -1
  88. package/docs/hi/intlayer_with_vite+react.md +157 -1
  89. package/docs/hi/intlayer_with_vite+solid.md +157 -1
  90. package/docs/hi/intlayer_with_vite+svelte.md +157 -1
  91. package/docs/hi/intlayer_with_vite+vue.md +157 -1
  92. package/docs/id/compiler.md +84 -51
  93. package/docs/id/configuration.md +83 -45
  94. package/docs/id/intlayer_with_nextjs_16.md +174 -1
  95. package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
  96. package/docs/id/intlayer_with_react_router_v7.md +224 -1
  97. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
  98. package/docs/id/intlayer_with_svelte_kit.md +158 -2
  99. package/docs/id/intlayer_with_tanstack.md +159 -1
  100. package/docs/id/intlayer_with_vite+preact.md +157 -1
  101. package/docs/id/intlayer_with_vite+react.md +157 -1
  102. package/docs/id/intlayer_with_vite+solid.md +157 -1
  103. package/docs/id/intlayer_with_vite+svelte.md +157 -1
  104. package/docs/id/intlayer_with_vite+vue.md +157 -1
  105. package/docs/it/compiler.md +81 -46
  106. package/docs/it/configuration.md +426 -204
  107. package/docs/it/intlayer_with_nextjs_16.md +174 -1
  108. package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
  109. package/docs/it/intlayer_with_react_router_v7.md +225 -2
  110. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
  111. package/docs/it/intlayer_with_svelte_kit.md +158 -2
  112. package/docs/it/intlayer_with_tanstack.md +159 -1
  113. package/docs/it/intlayer_with_vite+preact.md +157 -1
  114. package/docs/it/intlayer_with_vite+react.md +157 -1
  115. package/docs/it/intlayer_with_vite+solid.md +159 -3
  116. package/docs/it/intlayer_with_vite+svelte.md +157 -1
  117. package/docs/it/intlayer_with_vite+vue.md +157 -1
  118. package/docs/ja/compiler.md +94 -58
  119. package/docs/ja/configuration.md +88 -45
  120. package/docs/ja/intlayer_with_nextjs_16.md +174 -1
  121. package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
  122. package/docs/ja/intlayer_with_react_router_v7.md +184 -394
  123. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
  124. package/docs/ja/intlayer_with_svelte_kit.md +119 -595
  125. package/docs/ja/intlayer_with_tanstack.md +131 -642
  126. package/docs/ja/intlayer_with_vite+preact.md +111 -1231
  127. package/docs/ja/intlayer_with_vite+react.md +129 -1304
  128. package/docs/ja/intlayer_with_vite+solid.md +159 -3
  129. package/docs/ja/intlayer_with_vite+svelte.md +157 -1
  130. package/docs/ja/intlayer_with_vite+vue.md +157 -1
  131. package/docs/ko/compiler.md +88 -52
  132. package/docs/ko/configuration.md +87 -44
  133. package/docs/ko/intlayer_with_nextjs_16.md +174 -1
  134. package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
  135. package/docs/ko/intlayer_with_react_router_v7.md +225 -2
  136. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
  137. package/docs/ko/intlayer_with_svelte_kit.md +158 -2
  138. package/docs/ko/intlayer_with_tanstack.md +159 -1
  139. package/docs/ko/intlayer_with_vite+preact.md +157 -1
  140. package/docs/ko/intlayer_with_vite+react.md +157 -1
  141. package/docs/ko/intlayer_with_vite+solid.md +159 -3
  142. package/docs/ko/intlayer_with_vite+svelte.md +157 -1
  143. package/docs/ko/intlayer_with_vite+vue.md +157 -1
  144. package/docs/pl/compiler.md +84 -51
  145. package/docs/pl/configuration.md +83 -37
  146. package/docs/pl/intlayer_with_nextjs_16.md +174 -1
  147. package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
  148. package/docs/pl/intlayer_with_react_router_v7.md +224 -1
  149. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
  150. package/docs/pl/intlayer_with_svelte_kit.md +158 -2
  151. package/docs/pl/intlayer_with_tanstack.md +159 -1
  152. package/docs/pl/intlayer_with_vite+preact.md +157 -1
  153. package/docs/pl/intlayer_with_vite+react.md +157 -1
  154. package/docs/pl/intlayer_with_vite+solid.md +157 -1
  155. package/docs/pl/intlayer_with_vite+svelte.md +157 -1
  156. package/docs/pl/intlayer_with_vite+vue.md +157 -1
  157. package/docs/pt/compiler.md +81 -46
  158. package/docs/pt/configuration.md +404 -194
  159. package/docs/pt/intlayer_with_nextjs_16.md +174 -1
  160. package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
  161. package/docs/pt/intlayer_with_react_router_v7.md +224 -1
  162. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
  163. package/docs/pt/intlayer_with_svelte_kit.md +158 -2
  164. package/docs/pt/intlayer_with_tanstack.md +159 -1
  165. package/docs/pt/intlayer_with_vite+preact.md +157 -1
  166. package/docs/pt/intlayer_with_vite+react.md +157 -1
  167. package/docs/pt/intlayer_with_vite+solid.md +157 -1
  168. package/docs/pt/intlayer_with_vite+svelte.md +157 -1
  169. package/docs/pt/intlayer_with_vite+vue.md +157 -1
  170. package/docs/ru/compiler.md +90 -57
  171. package/docs/ru/configuration.md +76 -46
  172. package/docs/ru/intlayer_with_nextjs_16.md +174 -1
  173. package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
  174. package/docs/ru/intlayer_with_react_router_v7.md +224 -1
  175. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
  176. package/docs/ru/intlayer_with_svelte_kit.md +158 -2
  177. package/docs/ru/intlayer_with_tanstack.md +159 -1
  178. package/docs/ru/intlayer_with_vite+preact.md +157 -1
  179. package/docs/ru/intlayer_with_vite+react.md +157 -1
  180. package/docs/ru/intlayer_with_vite+solid.md +157 -1
  181. package/docs/ru/intlayer_with_vite+svelte.md +157 -1
  182. package/docs/ru/intlayer_with_vite+vue.md +157 -1
  183. package/docs/tr/compiler.md +85 -52
  184. package/docs/tr/configuration.md +83 -40
  185. package/docs/tr/intlayer_with_nextjs_16.md +174 -1
  186. package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
  187. package/docs/tr/intlayer_with_react_router_v7.md +224 -1
  188. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
  189. package/docs/tr/intlayer_with_svelte_kit.md +158 -2
  190. package/docs/tr/intlayer_with_tanstack.md +159 -1
  191. package/docs/tr/intlayer_with_vite+preact.md +157 -1
  192. package/docs/tr/intlayer_with_vite+react.md +157 -1
  193. package/docs/tr/intlayer_with_vite+solid.md +157 -1
  194. package/docs/tr/intlayer_with_vite+svelte.md +157 -1
  195. package/docs/tr/intlayer_with_vite+vue.md +157 -1
  196. package/docs/uk/compiler.md +96 -61
  197. package/docs/uk/configuration.md +83 -37
  198. package/docs/uk/intlayer_with_nextjs_16.md +174 -1
  199. package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
  200. package/docs/uk/intlayer_with_react_router_v7.md +224 -1
  201. package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
  202. package/docs/uk/intlayer_with_svelte_kit.md +157 -1
  203. package/docs/uk/intlayer_with_tanstack.md +159 -1
  204. package/docs/uk/intlayer_with_vite+preact.md +157 -1
  205. package/docs/uk/intlayer_with_vite+react.md +157 -1
  206. package/docs/uk/intlayer_with_vite+solid.md +157 -1
  207. package/docs/uk/intlayer_with_vite+svelte.md +157 -1
  208. package/docs/uk/intlayer_with_vite+vue.md +157 -1
  209. package/docs/vi/compiler.md +85 -50
  210. package/docs/vi/configuration.md +85 -39
  211. package/docs/vi/intlayer_with_nextjs_16.md +174 -1
  212. package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
  213. package/docs/vi/intlayer_with_react_router_v7.md +224 -1
  214. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
  215. package/docs/vi/intlayer_with_svelte_kit.md +158 -2
  216. package/docs/vi/intlayer_with_tanstack.md +159 -1
  217. package/docs/vi/intlayer_with_vite+preact.md +157 -1
  218. package/docs/vi/intlayer_with_vite+react.md +157 -1
  219. package/docs/vi/intlayer_with_vite+solid.md +157 -1
  220. package/docs/vi/intlayer_with_vite+svelte.md +157 -1
  221. package/docs/vi/intlayer_with_vite+vue.md +157 -1
  222. package/docs/zh/compiler.md +84 -49
  223. package/docs/zh/configuration.md +80 -37
  224. package/docs/zh/intlayer_with_adonisjs.md +1 -1
  225. package/docs/zh/intlayer_with_express.md +1 -1
  226. package/docs/zh/intlayer_with_fastify.md +1 -1
  227. package/docs/zh/intlayer_with_hono.md +1 -1
  228. package/docs/zh/intlayer_with_nestjs.md +1 -1
  229. package/docs/zh/intlayer_with_nextjs_16.md +174 -1
  230. package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
  231. package/docs/zh/intlayer_with_react_router_v7.md +227 -4
  232. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
  233. package/docs/zh/intlayer_with_svelte_kit.md +158 -2
  234. package/docs/zh/intlayer_with_tanstack.md +159 -1
  235. package/docs/zh/intlayer_with_vite+preact.md +159 -3
  236. package/docs/zh/intlayer_with_vite+react.md +157 -1
  237. package/docs/zh/intlayer_with_vite+solid.md +161 -5
  238. package/docs/zh/intlayer_with_vite+svelte.md +157 -1
  239. package/docs/zh/intlayer_with_vite+vue.md +158 -2
  240. package/package.json +6 -6
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-09-09
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: Tanstack Start i18n - 如何翻译Tanstack Start 应用 2026
5
5
  description: 学习如何使用 Intlayer 为您的 Tanstack Start 应用添加国际化 (i18n)。按照本综合指南,使您的应用支持多语言并具备基于区域设置的路由功能。
6
6
  keywords:
@@ -777,6 +777,164 @@ Intlayer 使用模块增强来利用 TypeScript 的优势,使您的代码库
777
777
 
778
778
  ---
779
779
 
780
+ ### (可选) 步骤 1 : 提取组件内容
781
+
782
+ 如果您有现有的代码库,转换数千个文件可能会非常耗时。
783
+
784
+ 为了简化此过程,Intlayer 提出了 [编译器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/compiler.md) / [提取器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/extract.md) 来转换您的组件并提取内容。
785
+
786
+ 要进行设置,您可以在 `intlayer.config.ts` 文件中添加 `compiler` 部分:
787
+
788
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
789
+ import { type IntlayerConfig } from "intlayer";
790
+
791
+ const config: IntlayerConfig = {
792
+ // ... 您的其他配置
793
+ compiler: {
794
+ /**
795
+ * 指示是否应启用编译器。
796
+ */
797
+ enabled: true,
798
+
799
+ /**
800
+ * 定义输出文件路径
801
+ */
802
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
803
+
804
+ /**
805
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
806
+ */
807
+ saveComponents: false,
808
+
809
+ /**
810
+ * 字典键前缀
811
+ */
812
+ dictionaryKeyPrefix: "",
813
+ },
814
+ };
815
+
816
+ export default config;
817
+ ```
818
+
819
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
820
+ /** @type {import('intlayer').IntlayerConfig} */
821
+ const config = {
822
+ // ... 您的其他配置
823
+ compiler: {
824
+ /**
825
+ * 指示是否应启用编译器。
826
+ */
827
+ enabled: true,
828
+
829
+ /**
830
+ * 定义输出文件路径
831
+ */
832
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
833
+
834
+ /**
835
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
836
+ */
837
+ saveComponents: false,
838
+
839
+ /**
840
+ * 字典键前缀
841
+ */
842
+ dictionaryKeyPrefix: "",
843
+ },
844
+ };
845
+
846
+ export default config;
847
+ ```
848
+
849
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
850
+ /** @type {import('intlayer').IntlayerConfig} */
851
+ const config = {
852
+ // ... 您的其他配置
853
+ compiler: {
854
+ /**
855
+ * 指示是否应启用编译器。
856
+ */
857
+ enabled: true,
858
+
859
+ /**
860
+ * 定义输出文件路径
861
+ */
862
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
863
+
864
+ /**
865
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
866
+ */
867
+ saveComponents: false,
868
+
869
+ /**
870
+ * 字典键前缀
871
+ */
872
+ dictionaryKeyPrefix: "",
873
+ },
874
+ };
875
+
876
+ module.exports = config;
877
+ ```
878
+
879
+ <Tabs>
880
+ <Tab value='提取命令'>
881
+
882
+ 运行提取器以转换组件并提取内容
883
+
884
+ ```bash packageManager="npm"
885
+ npx intlayer extract
886
+ ```
887
+
888
+ ```bash packageManager="pnpm"
889
+ pnpm intlayer extract
890
+ ```
891
+
892
+ ```bash packageManager="yarn"
893
+ yarn intlayer extract
894
+ ```
895
+
896
+ ```bash packageManager="bun"
897
+ bunx intlayer extract
898
+ ```
899
+
900
+ </Tab>
901
+ <Tab value='Babel 编译器'>
902
+
903
+ 更新您的 `vite.config.ts` 以包含 `intlayerCompiler` 插件:
904
+
905
+ ```ts fileName="vite.config.ts"
906
+ import { defineConfig } from "vite";
907
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
908
+
909
+ export default defineConfig({
910
+ plugins: [
911
+ intlayer(),
912
+ intlayerCompiler(), // 添加编译器插件
913
+ ],
914
+ });
915
+ ```
916
+
917
+ ```bash packageManager="npm"
918
+ npm run build # 或 npm run dev
919
+ ```
920
+
921
+ ```bash packageManager="pnpm"
922
+ pnpm run build # 或 pnpm run dev
923
+ ```
924
+
925
+ ```bash packageManager="yarn"
926
+ yarn build # 或 yarn dev
927
+ ```
928
+
929
+ ```bash packageManager="bun"
930
+ bun run build # Or bun run dev
931
+ ```
932
+
933
+ </Tab>
934
+ </Tabs>
935
+
936
+ ---
937
+
780
938
  ### Git 配置
781
939
 
782
940
  建议忽略 Intlayer 生成的文件。这样可以避免将它们提交到您的 Git 仓库中。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: Vite + Preact i18n - 如何翻译Preact 应用 2026
5
5
  description: 了解如何使您的 Vite 和 Preact 网站支持多语言。按照文档进行国际化(i18n)和翻译。
6
6
  keywords:
@@ -27,7 +27,7 @@ history:
27
27
  # 使用 Intlayer 翻译您的 Vite 和 Preact 网站 | 国际化 (i18n)
28
28
 
29
29
  <Tabs defaultTab="video">
30
- <Tab label="Video" value="video">
30
+ <Tab label="视频" value="video">
31
31
 
32
32
  <iframe title="The best i18n solution for Vite and Preact? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
33
33
 
@@ -37,7 +37,7 @@ history:
37
37
  <iframe
38
38
  src="https://stackblitz.com/github/aymericzip/intlayer-vite-preact-template?embed=1&ctl=1&file=intlayer.config.ts"
39
39
  className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
40
- title="Demo CodeSandbox - How to Internationalize your application using Intlayer"
40
+ title="Demo CodeSandbox - 如何使用 Intlayer 实现应用国际化"
41
41
  sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
42
42
  loading="lazy"
43
43
  />
@@ -1361,6 +1361,162 @@ Intlayer 使用模块增强来利用 TypeScript 的优势,使您的代码库
1361
1361
 
1362
1362
  ---
1363
1363
 
1364
+ ### (可选) 步骤 1 : 提取组件内容
1365
+
1366
+ 如果您有现有的代码库,转换数千个文件可能会非常耗时。
1367
+
1368
+ 为了简化此过程,Intlayer 提出了 [编译器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/compiler.md) / [提取器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/extract.md) 来转换您的组件并提取内容。
1369
+
1370
+ 要进行设置,您可以在 `intlayer.config.ts` 文件中添加 `compiler` 部分:
1371
+
1372
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
1373
+ import { type IntlayerConfig } from "intlayer";
1374
+
1375
+ const config: IntlayerConfig = {
1376
+ // ... 您的其他配置
1377
+ compiler: {
1378
+ /**
1379
+ * 指示是否应启用编译器。
1380
+ */
1381
+ enabled: true,
1382
+
1383
+ /**
1384
+ * 定义输出文件路径
1385
+ */
1386
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1387
+
1388
+ /**
1389
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
1390
+ */
1391
+ saveComponents: false,
1392
+
1393
+ /**
1394
+ * 字典键前缀
1395
+ */
1396
+ dictionaryKeyPrefix: "",
1397
+ },
1398
+ };
1399
+
1400
+ export default config;
1401
+ ```
1402
+
1403
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
1404
+ /** @type {import('intlayer').IntlayerConfig} */
1405
+ const config = {
1406
+ // ... 您的其他配置
1407
+ compiler: {
1408
+ /**
1409
+ * 指示是否应启用编译器。
1410
+ */
1411
+ enabled: true,
1412
+
1413
+ /**
1414
+ * 定义输出文件路径
1415
+ */
1416
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1417
+
1418
+ /**
1419
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
1420
+ */
1421
+ saveComponents: false,
1422
+
1423
+ /**
1424
+ * 字典键前缀
1425
+ */
1426
+ dictionaryKeyPrefix: "",
1427
+ },
1428
+ };
1429
+
1430
+ export default config;
1431
+ ```
1432
+
1433
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
1434
+ /** @type {import('intlayer').IntlayerConfig} */
1435
+ const config = {
1436
+ // ... 您的其他配置
1437
+ compiler: {
1438
+ /**
1439
+ * 指示是否应启用编译器。
1440
+ */
1441
+ enabled: true,
1442
+
1443
+ /**
1444
+ * 定义输出文件路径
1445
+ */
1446
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1447
+
1448
+ /**
1449
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
1450
+ */
1451
+ saveComponents: false,
1452
+
1453
+ /**
1454
+ * 字典键前缀
1455
+ */
1456
+ dictionaryKeyPrefix: "",
1457
+ },
1458
+ };
1459
+
1460
+ module.exports = config;
1461
+ ```
1462
+
1463
+ <Tabs>
1464
+ <Tab value='提取命令'>
1465
+
1466
+ 运行提取器以转换组件并提取内容
1467
+
1468
+ ```bash packageManager="npm"
1469
+ npx intlayer extract
1470
+ ```
1471
+
1472
+ ```bash packageManager="pnpm"
1473
+ pnpm intlayer extract
1474
+ ```
1475
+
1476
+ ```bash packageManager="yarn"
1477
+ yarn intlayer extract
1478
+ ```
1479
+
1480
+ ```bash packageManager="bun"
1481
+ bunx intlayer extract
1482
+ ```
1483
+
1484
+ </Tab>
1485
+ <Tab value='Babel 编译器'>
1486
+
1487
+ 更新您的 `vite.config.ts` 以包含 `intlayerCompiler` 插件:
1488
+
1489
+ ```ts fileName="vite.config.ts"
1490
+ import { defineConfig } from "vite";
1491
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
1492
+
1493
+ export default defineConfig({
1494
+ plugins: [
1495
+ intlayer(),
1496
+ intlayerCompiler(), // 添加编译器插件
1497
+ ],
1498
+ });
1499
+ ```
1500
+
1501
+ ```bash packageManager="npm"
1502
+ npm run build # 或 npm run dev
1503
+ ```
1504
+
1505
+ ```bash packageManager="pnpm"
1506
+ pnpm run build # 或 pnpm run dev
1507
+ ```
1508
+
1509
+ ```bash packageManager="yarn"
1510
+ yarn build # 或 yarn dev
1511
+ ```
1512
+
1513
+ ```bash packageManager="bun"
1514
+ bun run build # Or bun run dev
1515
+ ```
1516
+
1517
+ </Tab>
1518
+ </Tabs>
1519
+
1364
1520
  ### 深入了解
1365
1521
 
1366
1522
  要进一步了解,您可以实现 [可视化编辑器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_visual_editor.md) 或使用 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_CMS.md) 将内容外部化。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-03-07
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: Vite + React i18n - 如何翻译React 应用 2026
5
5
  description: 学习如何使用 Intlayer 为您的 Vite 和 React 应用添加国际化 (i18n)。按照本指南使您的应用支持多语言。
6
6
  keywords:
@@ -1405,6 +1405,162 @@ Intlayer 使用模块增强(module augmentation)来利用 TypeScript 的优
1405
1405
 
1406
1406
  ---
1407
1407
 
1408
+ ### (可选) 步骤 1 : 提取组件内容
1409
+
1410
+ 如果您有现有的代码库,转换数千个文件可能会非常耗时。
1411
+
1412
+ 为了简化此过程,Intlayer 提出了 [编译器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/compiler.md) / [提取器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/extract.md) 来转换您的组件并提取内容。
1413
+
1414
+ 要进行设置,您可以在 `intlayer.config.ts` 文件中添加 `compiler` 部分:
1415
+
1416
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
1417
+ import { type IntlayerConfig } from "intlayer";
1418
+
1419
+ const config: IntlayerConfig = {
1420
+ // ... 您的其他配置
1421
+ compiler: {
1422
+ /**
1423
+ * 指示是否应启用编译器。
1424
+ */
1425
+ enabled: true,
1426
+
1427
+ /**
1428
+ * 定义输出文件路径
1429
+ */
1430
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1431
+
1432
+ /**
1433
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
1434
+ */
1435
+ saveComponents: false,
1436
+
1437
+ /**
1438
+ * 字典键前缀
1439
+ */
1440
+ dictionaryKeyPrefix: "",
1441
+ },
1442
+ };
1443
+
1444
+ export default config;
1445
+ ```
1446
+
1447
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
1448
+ /** @type {import('intlayer').IntlayerConfig} */
1449
+ const config = {
1450
+ // ... 您的其他配置
1451
+ compiler: {
1452
+ /**
1453
+ * 指示是否应启用编译器。
1454
+ */
1455
+ enabled: true,
1456
+
1457
+ /**
1458
+ * 定义输出文件路径
1459
+ */
1460
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1461
+
1462
+ /**
1463
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
1464
+ */
1465
+ saveComponents: false,
1466
+
1467
+ /**
1468
+ * 字典键前缀
1469
+ */
1470
+ dictionaryKeyPrefix: "",
1471
+ },
1472
+ };
1473
+
1474
+ export default config;
1475
+ ```
1476
+
1477
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
1478
+ /** @type {import('intlayer').IntlayerConfig} */
1479
+ const config = {
1480
+ // ... 您的其他配置
1481
+ compiler: {
1482
+ /**
1483
+ * 指示是否应启用编译器。
1484
+ */
1485
+ enabled: true,
1486
+
1487
+ /**
1488
+ * 定义输出文件路径
1489
+ */
1490
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1491
+
1492
+ /**
1493
+ * 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
1494
+ */
1495
+ saveComponents: false,
1496
+
1497
+ /**
1498
+ * 字典键前缀
1499
+ */
1500
+ dictionaryKeyPrefix: "",
1501
+ },
1502
+ };
1503
+
1504
+ module.exports = config;
1505
+ ```
1506
+
1507
+ <Tabs>
1508
+ <Tab value='提取命令'>
1509
+
1510
+ 运行提取器以转换组件并提取内容
1511
+
1512
+ ```bash packageManager="npm"
1513
+ npx intlayer extract
1514
+ ```
1515
+
1516
+ ```bash packageManager="pnpm"
1517
+ pnpm intlayer extract
1518
+ ```
1519
+
1520
+ ```bash packageManager="yarn"
1521
+ yarn intlayer extract
1522
+ ```
1523
+
1524
+ ```bash packageManager="bun"
1525
+ bunx intlayer extract
1526
+ ```
1527
+
1528
+ </Tab>
1529
+ <Tab value='Babel 编译器'>
1530
+
1531
+ 更新您的 `vite.config.ts` 以包含 `intlayerCompiler` 插件:
1532
+
1533
+ ```ts fileName="vite.config.ts"
1534
+ import { defineConfig } from "vite";
1535
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
1536
+
1537
+ export default defineConfig({
1538
+ plugins: [
1539
+ intlayer(),
1540
+ intlayerCompiler(), // 添加编译器插件
1541
+ ],
1542
+ });
1543
+ ```
1544
+
1545
+ ```bash packageManager="npm"
1546
+ npm run build # 或 npm run dev
1547
+ ```
1548
+
1549
+ ```bash packageManager="pnpm"
1550
+ pnpm run build # 或 pnpm run dev
1551
+ ```
1552
+
1553
+ ```bash packageManager="yarn"
1554
+ yarn build # 或 yarn dev
1555
+ ```
1556
+
1557
+ ```bash packageManager="bun"
1558
+ bun run build # Or bun run dev
1559
+ ```
1560
+
1561
+ </Tab>
1562
+ </Tabs>
1563
+
1408
1564
  ### 深入了解
1409
1565
 
1410
1566
  要进一步使用,您可以实现[可视化编辑器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_visual_editor.md)或使用[内容管理系统(CMS)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_CMS.md)将内容外部化。