@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-04-18
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: Vite + Svelte i18n - Як перекласти додаток Svelte у 2026
5
5
  description: "Дізнайтеся, як зробити ваш вебсайт на Vite та Svelte багатомовним. Дотримуйтеся документації, щоб інтернаціоналізувати (i18n) і перекласти його."
6
6
  keywords:
@@ -517,6 +517,162 @@ const changeLocale = (event: Event) => {
517
517
 
518
518
  ---
519
519
 
520
+ ### (Необов'язково) Крок 1 : Витягніть вміст ваших компонентів
521
+
522
+ Якщо у вас є існуюча кодова база, перетворення тисяч файлів може зайняти багато часу.
523
+
524
+ Щоб спростити цей процес, Intlayer пропонує [компілятор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compiler.md) / [екстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/extract.md) для перетворення ваших компонентів і витягування вмісту.
525
+
526
+ Щоб налаштувати його, ви можете додати розділ `compiler` у свій файл `intlayer.config.ts`:
527
+
528
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
529
+ import { type IntlayerConfig } from "intlayer";
530
+
531
+ const config: IntlayerConfig = {
532
+ // ... Інша частина вашої конфігурації
533
+ compiler: {
534
+ /**
535
+ * Вказує, чи повинен бути включений компілятор.
536
+ */
537
+ enabled: true,
538
+
539
+ /**
540
+ * Визначає шлях до вихідних файлів
541
+ */
542
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
543
+
544
+ /**
545
+ * Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
546
+ */
547
+ saveComponents: false,
548
+
549
+ /**
550
+ * Префікс ключа словника
551
+ */
552
+ dictionaryKeyPrefix: "",
553
+ },
554
+ };
555
+
556
+ export default config;
557
+ ```
558
+
559
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
560
+ /** @type {import('intlayer').IntlayerConfig} */
561
+ const config = {
562
+ // ... Інша частина вашої конфігурації
563
+ compiler: {
564
+ /**
565
+ * Вказує, чи повинен бути включений компілятор.
566
+ */
567
+ enabled: true,
568
+
569
+ /**
570
+ * Визначає шлях до вихідних файлів
571
+ */
572
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
573
+
574
+ /**
575
+ * Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
576
+ */
577
+ saveComponents: false,
578
+
579
+ /**
580
+ * Префікс ключа словника
581
+ */
582
+ dictionaryKeyPrefix: "",
583
+ },
584
+ };
585
+
586
+ export default config;
587
+ ```
588
+
589
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
590
+ /** @type {import('intlayer').IntlayerConfig} */
591
+ const config = {
592
+ // ... Інша частина вашої конфігурації
593
+ compiler: {
594
+ /**
595
+ * Вказує, чи повинен бути включений компілятор.
596
+ */
597
+ enabled: true,
598
+
599
+ /**
600
+ * Визначає шлях до вихідних файлів
601
+ */
602
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
603
+
604
+ /**
605
+ * Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
606
+ */
607
+ saveComponents: false,
608
+
609
+ /**
610
+ * Префікс ключа словника
611
+ */
612
+ dictionaryKeyPrefix: "",
613
+ },
614
+ };
615
+
616
+ module.exports = config;
617
+ ```
618
+
619
+ <Tabs>
620
+ <Tab value='Команда витягування'>
621
+
622
+ Запустіть екстрактор для перетворення компонентів і витягування вмісту
623
+
624
+ ```bash packageManager="npm"
625
+ npx intlayer extract
626
+ ```
627
+
628
+ ```bash packageManager="pnpm"
629
+ pnpm intlayer extract
630
+ ```
631
+
632
+ ```bash packageManager="yarn"
633
+ yarn intlayer extract
634
+ ```
635
+
636
+ ```bash packageManager="bun"
637
+ bunx intlayer extract
638
+ ```
639
+
640
+ </Tab>
641
+ <Tab value='Компілятор Babel'>
642
+
643
+ Оновіть свій `vite.config.ts`, щоб включити плагін `intlayerCompiler`:
644
+
645
+ ```ts fileName="vite.config.ts"
646
+ import { defineConfig } from "vite";
647
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
648
+
649
+ export default defineConfig({
650
+ plugins: [
651
+ intlayer(),
652
+ intlayerCompiler(), // Додає плагін компілятора
653
+ ],
654
+ });
655
+ ```
656
+
657
+ ```bash packageManager="npm"
658
+ npm run build # Або npm run dev
659
+ ```
660
+
661
+ ```bash packageManager="pnpm"
662
+ pnpm run build # Or pnpm run dev
663
+ ```
664
+
665
+ ```bash packageManager="yarn"
666
+ yarn build # Or yarn dev
667
+ ```
668
+
669
+ ```bash packageManager="bun"
670
+ bun run build # Or bun run dev
671
+ ```
672
+
673
+ </Tab>
674
+ </Tabs>
675
+
520
676
  ### Розширені можливості
521
677
 
522
678
  Щоб рухатися далі, ви можете реалізувати [візуальний редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_visual_editor.md) або винести свій контент у зовнішню систему за допомогою [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_CMS.md).
@@ -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 + Vue i18n - Як перекласти додаток Vue у 2026
5
5
  description: Дізнайтеся, як зробити свій вебсайт на Vite і Vue багатомовним. Дотримуйтеся документації, щоб інтернаціоналізувати (i18n) та перекласти його.
6
6
  keywords:
@@ -1108,6 +1108,162 @@ Intlayer використовує module augmentation, щоб скористат
1108
1108
 
1109
1109
  ---
1110
1110
 
1111
+ ### (Необов'язково) Крок 1 : Витягніть вміст ваших компонентів
1112
+
1113
+ Якщо у вас є існуюча кодова база, перетворення тисяч файлів може зайняти багато часу.
1114
+
1115
+ Щоб спростити цей процес, Intlayer пропонує [компілятор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compiler.md) / [екстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/extract.md) для перетворення ваших компонентів і витягування вмісту.
1116
+
1117
+ Щоб налаштувати його, ви можете додати розділ `compiler` у свій файл `intlayer.config.ts`:
1118
+
1119
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
1120
+ import { type IntlayerConfig } from "intlayer";
1121
+
1122
+ const config: IntlayerConfig = {
1123
+ // ... Інша частина вашої конфігурації
1124
+ compiler: {
1125
+ /**
1126
+ * Вказує, чи повинен бути включений компілятор.
1127
+ */
1128
+ enabled: true,
1129
+
1130
+ /**
1131
+ * Визначає шлях до вихідних файлів
1132
+ */
1133
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1134
+
1135
+ /**
1136
+ * Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
1137
+ */
1138
+ saveComponents: false,
1139
+
1140
+ /**
1141
+ * Префікс ключа словника
1142
+ */
1143
+ dictionaryKeyPrefix: "",
1144
+ },
1145
+ };
1146
+
1147
+ export default config;
1148
+ ```
1149
+
1150
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
1151
+ /** @type {import('intlayer').IntlayerConfig} */
1152
+ const config = {
1153
+ // ... Інша частина вашої конфігурації
1154
+ compiler: {
1155
+ /**
1156
+ * Вказує, чи повинен бути включений компілятор.
1157
+ */
1158
+ enabled: true,
1159
+
1160
+ /**
1161
+ * Визначає шлях до вихідних файлів
1162
+ */
1163
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1164
+
1165
+ /**
1166
+ * Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
1167
+ */
1168
+ saveComponents: false,
1169
+
1170
+ /**
1171
+ * Префікс ключа словника
1172
+ */
1173
+ dictionaryKeyPrefix: "",
1174
+ },
1175
+ };
1176
+
1177
+ export default config;
1178
+ ```
1179
+
1180
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
1181
+ /** @type {import('intlayer').IntlayerConfig} */
1182
+ const config = {
1183
+ // ... Інша частина вашої конфігурації
1184
+ compiler: {
1185
+ /**
1186
+ * Вказує, чи повинен бути включений компілятор.
1187
+ */
1188
+ enabled: true,
1189
+
1190
+ /**
1191
+ * Визначає шлях до вихідних файлів
1192
+ */
1193
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1194
+
1195
+ /**
1196
+ * Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
1197
+ */
1198
+ saveComponents: false,
1199
+
1200
+ /**
1201
+ * Префікс ключа словника
1202
+ */
1203
+ dictionaryKeyPrefix: "",
1204
+ },
1205
+ };
1206
+
1207
+ module.exports = config;
1208
+ ```
1209
+
1210
+ <Tabs>
1211
+ <Tab value='Команда витягування'>
1212
+
1213
+ Запустіть екстрактор для перетворення компонентів і витягування вмісту
1214
+
1215
+ ```bash packageManager="npm"
1216
+ npx intlayer extract
1217
+ ```
1218
+
1219
+ ```bash packageManager="pnpm"
1220
+ pnpm intlayer extract
1221
+ ```
1222
+
1223
+ ```bash packageManager="yarn"
1224
+ yarn intlayer extract
1225
+ ```
1226
+
1227
+ ```bash packageManager="bun"
1228
+ bunx intlayer extract
1229
+ ```
1230
+
1231
+ </Tab>
1232
+ <Tab value='Компілятор Babel'>
1233
+
1234
+ Оновіть свій `vite.config.ts`, щоб включити плагін `intlayerCompiler`:
1235
+
1236
+ ```ts fileName="vite.config.ts"
1237
+ import { defineConfig } from "vite";
1238
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
1239
+
1240
+ export default defineConfig({
1241
+ plugins: [
1242
+ intlayer(),
1243
+ intlayerCompiler(), // Додає плагін компілятора
1244
+ ],
1245
+ });
1246
+ ```
1247
+
1248
+ ```bash packageManager="npm"
1249
+ npm run build # Або npm run dev
1250
+ ```
1251
+
1252
+ ```bash packageManager="pnpm"
1253
+ pnpm run build # Or pnpm run dev
1254
+ ```
1255
+
1256
+ ```bash packageManager="yarn"
1257
+ yarn build # Or yarn dev
1258
+ ```
1259
+
1260
+ ```bash packageManager="bun"
1261
+ bun run build # Or bun run dev
1262
+ ```
1263
+
1264
+ </Tab>
1265
+ </Tabs>
1266
+
1111
1267
  ### Щоб піти далі
1112
1268
 
1113
1269
  Щоб рухатися далі, ви можете реалізувати [візуальний редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_visual_editor.md) або винести свій контент за допомогою [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_CMS.md).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-09-09
3
- updatedAt: 2026-03-10
3
+ updatedAt: 2026-03-12
4
4
  title: Trình Biên Dịch Intlayer | Trích Xuất Nội Dung Tự Động cho i18n
5
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
6
  keywords:
@@ -22,7 +22,7 @@ slugs:
22
22
  history:
23
23
  - version: 8.2.0
24
24
  date: 2026-03-09
25
- changes: Update compiler options, add FilePathPattern support
25
+ changes: Cập nhật các tùy chọn trình biên dịch, thêm hỗ trợ FilePathPattern
26
26
  - version: 8.1.7
27
27
  date: 2026-02-25
28
28
  changes: Cập nhật các tùy chọn trình biên dịch
@@ -136,9 +136,9 @@ const {
136
136
  module.exports = {
137
137
  presets: ["next/babel"],
138
138
  plugins: [
139
- // Extract content from components into dictionaries
139
+ // Trích xuất nội dung từ các component vào từ điển
140
140
  [intlayerExtractBabelPlugin, getExtractPluginOptions()],
141
- // Optimize imports by replacing useIntlayer with direct dictionary imports
141
+ // Tối ưu hóa việc import bằng cách thay thế useIntlayer bằng việc import trực tiếp từ điển
142
142
  [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
143
143
  ],
144
144
  };
@@ -149,73 +149,85 @@ Cấu hình này đảm bảo rằng nội dung được khai báo trong các co
149
149
  See complete tutorial: [Intlayer Compiler with Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_nextjs_compiler.md)
150
150
 
151
151
  </Tab>
152
+ </Tabs>
152
153
 
153
154
  ### Cấu hình tùy chỉnh
154
155
 
155
156
  Để tùy chỉnh hành vi của trình biên dịch, bạn có thể cập nhật tệp `intlayer.config.ts` trong thư mục gốc của dự án.
156
157
 
157
- ```ts fileName="intlayer.config.ts"
158
+ ````ts fileName="intlayer.config.ts"
158
159
  import { type IntlayerConfig, Locales } from "intlayer";
159
160
 
160
161
  const config: IntlayerConfig = {
161
162
  compiler: {
162
163
  /**
164
+ * Cho biết trình biên dịch có nên được bật hay không.
163
165
  * Đặt thành 'build-only' để bỏ qua trình biên dịch trong quá trình phát triển và tăng tốc thời gian khởi động.
164
166
  */
165
167
  enabled: true,
166
168
 
167
169
  /**
168
- * Pattern to traverse the code to optimize.
170
+ * Xác định đường dẫn tệp đầu ra. Thay thế `outputDir`.
171
+ *
172
+ * - Các đường dẫn bắt đầu bằng `./` được giải quyết tương đối so với thư mục component.
173
+ * - Các đường dẫn bắt đầu bằng `/` được giải quyết tương đối so với thư mục gốc của dự án (`baseDir`).
174
+ *
175
+ * - Việc bao gồm biến `{{locale}}` trong đường dẫn sẽ cho phép tạo các từ điển được tách biệt theo ngôn ngữ.
176
+ *
177
+ * Ví dụ:
178
+ * ```ts
179
+ * {
180
+ * // Tạo tệp .content.ts đa ngôn ngữ bên cạnh component
181
+ * output: ({ fileName, extension }) => `./${fileName}${extension}`,
182
+ *
183
+ * // output: './{{fileName}}{{extension}}', // Cách viết tương đương bằng template string
184
+ * }
185
+ * ```
186
+ *
187
+ * ```ts
188
+ * {
189
+ * // Tạo tệp JSON tập trung theo ngôn ngữ trong thư mục gốc của dự án
190
+ * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
191
+ *
192
+ * // output: '/locales/{{locale}}/{{key}}.content.json', // Cách viết tương đương bằng template string
193
+ * }
194
+ * ```
195
+ *
196
+ * Danh sách biến:
197
+ * - `fileName`: Tên tệp.
198
+ * - `key`: Khóa nội dung.
199
+ * - `locale`: Ngôn ngữ nội dung.
200
+ * - `extension`: Phần mở rộng tệp.
201
+ * - `componentFileName`: Tên tệp component.
202
+ * - `componentExtension`: Phần mở rộng tệp component.
203
+ * - `format`: Định dạng từ điển.
204
+ * - `componentFormat`: Định dạng từ điển component.
205
+ * - `componentDirPath`: Đường dẫn thư mục component.
169
206
  */
170
- transformPattern: [
171
- "**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}",
172
- "!**/node_modules/**",
173
- ],
207
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
174
208
 
175
209
  /**
176
- * Pattern to exclude from the optimization.
177
- */
178
- excludePattern: ["**/node_modules/**"],
179
-
180
- /**
181
- * Thư mục đầu ra cho các từ điển được tối ưu hóa.
210
+ * Cho biết liệu các component có nên được lưu sau khi được chuyển đổi hay không.
211
+ * Bằng cách đó, trình biên dịch có thể được chạy một lần duy nhất để chuyển đổi ứng dụng, và sau đó nó có thể được gỡ bỏ.
182
212
  */
183
- output: ({ key }) => `compiler/${key}.content.json`,
213
+ saveComponents: false,
184
214
 
185
215
  /**
186
- * Chỉ chèn nội dung vào tệp đã tạo, không khóa.
216
+ * Chỉ chèn nội dung vào tệp đã tạo. Hữu ích cho đầu ra JSON i18next hoặc ICU MessageFormat cho mỗi ngôn ngữ.
217
+ *
218
+ * - `output: ({ locale, key }) => `./locale/${locale}/${key}.json`,`
187
219
  */
188
220
  noMetadata: false,
189
221
 
190
222
  /**
191
223
  * Tiền tố khóa từ điển
192
224
  */
193
- dictionaryKeyPrefix: "", // Remove base prefix
194
-
195
- /**
196
- * Cho biết liệu các thành phần có nên được lưu sau khi được chuyển đổi hay không.
197
- * Bằng cách đó, trình biên dịch có thể được chạy một lần duy nhất để chuyển đổi ứng dụng, và sau đó nó có thể được gỡ bỏ.
198
- */
199
- saveComponents: false,
225
+ dictionaryKeyPrefix: "", // Thêm một tiền tố tùy chọn cho các khóa từ điển được trích xuất
200
226
  },
201
227
  };
202
228
 
203
229
  export default config;
204
- ```
205
-
206
- ### Điền các bản dịch còn thiếu
207
-
208
- Intlayer cung cấp một công cụ CLI để giúp bạn điền các bản dịch còn thiếu. Bạn có thể sử dụng lệnh `intlayer` để kiểm tra và điền các bản dịch còn thiếu từ mã của mình.
209
-
210
- ```bash
211
- npx intlayer test # Kiểm tra xem có thiếu bản dịch không
212
- ```
213
-
214
- ```bash
215
- npx intlayer fill # Điền các bản dịch còn thiếu
216
- ```
217
-
218
- > Để biết thêm chi tiết, hãy tham khảo [tài liệu CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/ci.md)
230
+ ````
219
231
 
220
232
  ### Tham khảo cấu hình trình biên dịch
221
233
 
@@ -225,36 +237,37 @@ Các thuộc tính sau có thể được cấu hình trong khối `compiler` c
225
237
  - _Loại_: `boolean | 'build-only'`
226
238
  - _Mặc định_: `true`
227
239
  - _Mô tả_: Cho biết trình biên dịch có nên được bật hay không.
240
+
228
241
  - **dictionaryKeyPrefix**:
229
242
  - _Loại_: `string`
230
- - _Mặc định_: `'comp-'`
243
+ - _Mặc định_: `''`
231
244
  - _Mô tả_: Tiền tố cho các khóa từ điển được trích xuất.
245
+
232
246
  - **transformPattern**:
233
247
  - _Loại_: `string | string[]`
234
248
  - _Mặc định_: `['**/*.{js,ts,mjs,cjs,jsx,tsx,vue,svelte}', '!**/node_modules/**']`
235
- - _Mô tả_: Các mẫu để duyệt mã để tối ưu hóa.
249
+ - _Mô tả_: (Đã lỗi thời: hãy sử dụng `build.traversePattern` thay thế) Các mẫu để duyệt mã để tối ưu hóa.
250
+
236
251
  - **excludePattern**:
237
252
  - _Loại_: `string | string[]`
238
253
  - _Mặc định_: `['**/node_modules/**']`
239
- - _Mô tả_: Các mẫu để loại trừ khỏi quá trình tối ưu hóa.
240
- - **outputDir** (Deprecated):
241
- - _Loại_: `string`
242
- - _Mặc định_: `'compiler'`
243
- - _Mô tả_: Thư mục nơi lưu trữ các từ điển được trích xuất.
254
+ - _Mô tả_: (Đã lỗi thời: hãy sử dụng `build.traversePattern` thay thế) Các mẫu để loại trừ khỏi quá trình tối ưu hóa.
244
255
 
245
256
  - **output**:
246
257
  - _Loại_: `FilePathPattern`
247
258
  - _Mặc định_: `({ key }) => 'compiler/${key}.content.json'`
248
259
  - _Mô tả_: Xác định đường dẫn tệp đầu ra. Thay thế `outputDir`. Xử lý các biến động như `{{locale}}`, `{{key}}`, `{{fileName}}`, `{{extension}}`, `{{format}}`, `{{dirPath}}`, `{{componentFileName}}`, `{{componentExtension}}` và `{{componentFormat}}`. Có thể được đặt dưới dạng chuỗi bằng định dạng `'my/{{var}}/path'` hoặc dưới dạng hàm.
249
260
  - _Ghi chú_: Các đường dẫn `./**/*` được giải quyết tương đối so với component. Các đường dẫn `/**/*` được giải quyết tương đối so với `baseDir` của Intlayer.
261
+ - _Ghi chú_: Nếu ngôn ngữ được xác định trong đường dẫn, các từ điển sẽ được tạo cho mỗi ngôn ngữ.
250
262
  - _Ví dụ_: `output: ({ locale, key }) => 'compiler/${locale}/${key}.json'`
251
263
 
252
264
  - **noMetadata**:
253
265
  - _Loại_: `boolean`
254
266
  - _Mặc định_: `false`
255
- - _Mô tả_: Cho biết liệu siêu dữ liệu có nên được lưu trong tệp hay không. Nếu true, trình biên dịch sẽ không lưu siêu dữ liệu của từ điển (khóa, trình bao bọc nội dung).
267
+ - _Mô tả_: Cho biết liệu siêu dữ liệu có nên được lưu trong tệp hay không. Nếu true, trình biên dịch sẽ không lưu siêu dữ liệu của từ điển (khóa, trình bao bọc nội dung). Hữu ích cho đầu ra JSON i18next hoặc ICU MessageFormat cho mỗi ngôn ngữ.
256
268
  - _Ghi chú_: Hữu ích nếu được sử dụng với plugin `loadJSON`.
257
- - _Ví dụ_: Nếu `true`:
269
+ - _Ví dụ_:
270
+ Nếu `true`:
258
271
  ```json
259
272
  {
260
273
  "key": "value"
@@ -273,4 +286,26 @@ Các thuộc tính sau có thể được cấu hình trong khối `compiler` c
273
286
  - **saveComponents**:
274
287
  - _Loại_: `boolean`
275
288
  - _Mặc định_: `false`
276
- - _Mô tả_: Cho biết liệu các thành phần có nên được lưu sau khi được chuyển đổi hay không.
289
+ - _Mô tả_: Cho biết liệu các component có nên được lưu sau khi được chuyển đổi hay không.
290
+
291
+ ### Điền các bản dịch còn thiếu
292
+
293
+ Intlayer cung cấp một công cụ CLI để giúp bạn điền các bản dịch còn thiếu. Bạn có thể sử dụng lệnh `intlayer` để kiểm tra và điền các bản dịch còn thiếu từ mã của mình.
294
+
295
+ ```bash
296
+ npx intlayer test # Kiểm tra xem có thiếu bản dịch không
297
+ ```
298
+
299
+ ```bash
300
+ npx intlayer fill # Điền các bản dịch còn thiếu
301
+ ```
302
+
303
+ ### Trích xuất
304
+
305
+ Intlayer cung cấp một công cụ CLI để giúp bạn trích xuất nội dung từ mã của mình. Bạn có thể sử dụng lệnh `intlayer extract` để trích xuất nội dung từ mã của mình.
306
+
307
+ ```bash
308
+ npx intlayer extract
309
+ ```
310
+
311
+ > Để biết thêm chi tiết, hãy tham khảo [tài liệu CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/index.md)