@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-12-07
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: React Router v7 i18n - Как перевести приложение React Router v7 в 2026
5
5
  description: Узнайте, как добавить интернационализацию (i18n) в ваше приложение на React Router v7 с помощью Intlayer с маршрутизацией на основе файловой системы. Следуйте этому подробному руководству, чтобы сделать ваше приложение многоязычным с маршрутизацией, учитывающей локаль.
6
6
  keywords:
@@ -571,6 +571,230 @@ export const useI18nHTMLAttributes = () => {
571
571
 
572
572
  Этот хук уже используется в компоненте layout (`root.tsx`), показанном в Шаге 5.
573
573
 
574
+ ### (Опционально) Шаг 1 : Извлечение содержимого ваших компонентов
575
+
576
+ Если у вас есть существующая кодовая база, преобразование тысяч файлов может занять много времени.
577
+
578
+ Чтобы упростить этот процесс, Intlayer предлагает [компилятор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compiler.md) / [экстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/extract.md) для преобразования ваших компонентов и извлечения содержимого.
579
+
580
+ Чтобы настроить его, вы можете добавить раздел `compiler` в ваш файл `intlayer.config.ts`:
581
+
582
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
583
+ import { type IntlayerConfig } from "intlayer";
584
+
585
+ const config: IntlayerConfig = {
586
+ // ... Остальная часть вашей конфигурации
587
+ compiler: {
588
+ /**
589
+ * Указывает, должен ли быть включен компилятор.
590
+ */
591
+ enabled: true,
592
+
593
+ /**
594
+ * Определяет путь к выходным файлам
595
+ */
596
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
597
+
598
+ /**
599
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
600
+ */
601
+ saveComponents: false,
602
+
603
+ /**
604
+ * Префикс ключа словаря
605
+ */
606
+ dictionaryKeyPrefix: "",
607
+ },
608
+ };
609
+
610
+ export default config;
611
+ ```
612
+
613
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
614
+ /** @type {import('intlayer').IntlayerConfig} */
615
+ const config = {
616
+ // ... Остальная часть вашей конфигурации
617
+ compiler: {
618
+ /**
619
+ * Указывает, должен ли быть включен компилятор.
620
+ */
621
+ enabled: true,
622
+
623
+ /**
624
+ * Определяет путь к выходным файлам
625
+ */
626
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
627
+
628
+ /**
629
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
630
+ */
631
+ saveComponents: false,
632
+
633
+ /**
634
+ * Префикс ключа словаря
635
+ */
636
+ dictionaryKeyPrefix: "",
637
+ },
638
+ };
639
+
640
+ export default config;
641
+ ```
642
+
643
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
644
+ /** @type {import('intlayer').IntlayerConfig} */
645
+ const config = {
646
+ // ... Остальная часть вашей конфигурации
647
+ compiler: {
648
+ /**
649
+ * Указывает, должен ли быть включен компилятор.
650
+ */
651
+ enabled: true,
652
+
653
+ /**
654
+ * Определяет путь к выходным файлам
655
+ */
656
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
657
+
658
+ /**
659
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
660
+ */
661
+ saveComponents: false,
662
+
663
+ /**
664
+ * Префикс ключа словаря
665
+ */
666
+ dictionaryKeyPrefix: "",
667
+ },
668
+ };
669
+
670
+ module.exports = config;
671
+ ```
672
+
673
+ <Tabs>
674
+ <Tab value='Команда извлечения'>
675
+
676
+ Запустите экстрактор для преобразования компонентов и извлечения содержимого
677
+
678
+ ```bash packageManager="npm"
679
+ npx intlayer extract
680
+ ```
681
+
682
+ ```bash packageManager="pnpm"
683
+ pnpm intlayer extract
684
+ ```
685
+
686
+ ```bash packageManager="yarn"
687
+ yarn intlayer extract
688
+ ```
689
+
690
+ ```bash packageManager="bun"
691
+ bunx intlayer extract
692
+ ```
693
+
694
+ </Tab>
695
+ <Tab value='Компилятор Babel'>
696
+
697
+ Обновите ваш `vite.config.ts`, чтобы включить плагин `intlayerCompiler`:
698
+
699
+ ```ts fileName="vite.config.ts"
700
+ import { defineConfig } from "vite";
701
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
702
+
703
+ export default defineConfig({
704
+ plugins: [
705
+ intlayer(),
706
+ intlayerCompiler(), // Добавляет плагин компилятора
707
+ ],
708
+ });
709
+ ```
710
+
711
+ ```bash packageManager="npm"
712
+ npm run build # Или npm run dev
713
+ ```
714
+
715
+ ```bash packageManager="pnpm"
716
+ pnpm run build # Or pnpm run dev
717
+ ```
718
+
719
+ ```bash packageManager="yarn"
720
+ yarn build # Or yarn dev
721
+ ```
722
+
723
+ ```bash packageManager="bun"
724
+ bun run build # Or bun run dev
725
+ ```
726
+
727
+ </Tab>
728
+ </Tabs>
729
+
730
+ ---
731
+
732
+ ## Configure TypeScript
733
+
734
+ Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
735
+
736
+ Ensure your TypeScript configuration includes the autogenerated types:
737
+
738
+ ```json5 fileName="tsconfig.json"
739
+ {
740
+ // ... your existing configurations
741
+ include: [
742
+ // ... your existing includes
743
+ ".intlayer/**/*.ts", // Include the auto-generated types
744
+ ],
745
+ }
746
+ ```
747
+
748
+ ---
749
+
750
+ ## Git Configuration
751
+
752
+ It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
753
+
754
+ To do this, you can add the following instructions to your `.gitignore` file:
755
+
756
+ ```plaintext fileName=".gitignore"
757
+ # Ignore the files generated by Intlayer
758
+ .intlayer
759
+ ```
760
+
761
+ ---
762
+
763
+ ## VS Code Extension
764
+
765
+ To improve your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
766
+
767
+ [Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
768
+
769
+ This extension provides:
770
+
771
+ - **Autocompletion** for translation keys.
772
+ - **Real-time error detection** for missing translations.
773
+ - **Inline previews** of translated content.
774
+ - **Quick actions** to easily create and update translations.
775
+
776
+ For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
777
+
778
+ ---
779
+
780
+ ## Go Further
781
+
782
+ To go further, you can implement the [visual editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) or externalize your content using the [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
783
+
784
+ ---
785
+
786
+ ## Documentation References
787
+
788
+ - [Intlayer Documentation](https://intlayer.org)
789
+ - [React Router v7 Documentation](https://reactrouter.com/)
790
+ - [React Router fs-routes Documentation](https://reactrouter.com/how-to/file-route-conventions)
791
+ - [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
792
+ - [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
793
+ - [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
794
+ - [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
795
+
796
+ This comprehensive guide provides everything you need to integrate Intlayer with React Router v7 using file-system based routing for a fully internationalized application with locale-aware routing and TypeScript support.
797
+
574
798
  ### Шаг 10: Добавьте middleware (необязательно)
575
799
 
576
800
  Вы также можете использовать `intlayerProxy` для добавления маршрутизации на стороне сервера в ваше приложение. Этот плагин автоматически определит текущую локаль на основе URL и установит соответствующее cookie с локалью. Если локаль не указана, плагин определит наиболее подходящую локаль на основе языковых предпочтений браузера пользователя. Если локаль не будет обнаружена, произойдет перенаправление на локаль по умолчанию.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-11-20
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: SvelteKit i18n - Как перевести приложение SvelteKit в 2026
5
5
  description: Узнайте, как сделать ваш сайт на SvelteKit многоязычным. Следуйте документации по интернационализации (i18n) и переводу с использованием серверного рендеринга (SSR).
6
6
  keywords:
@@ -185,7 +185,7 @@ export default heroContent;
185
185
 
186
186
  > **Примечание:** `useIntlayer` возвращает Svelte store, поэтому для доступа к его реактивному значению нужно использовать префикс `---
187
187
  > createdAt: 2025-11-20
188
- > updatedAt: 2025-11-20
188
+ > updatedAt: 2026-03-12
189
189
  > title: Как перевести ваше приложение SvelteKit – руководство по i18n 2026
190
190
  > description: Узнайте, как сделать ваш сайт на SvelteKit многоязычным. Следуйте документации по интернационализации (i18n) и переводу с использованием серверного рендеринга (SSR).
191
191
  > keywords:
@@ -744,6 +744,162 @@ export default defineConfig({
744
744
 
745
745
  ---
746
746
 
747
+ ### (Опционально) Шаг 1 : Извлечение содержимого ваших компонентов
748
+
749
+ Если у вас есть существующая кодовая база, преобразование тысяч файлов может занять много времени.
750
+
751
+ Чтобы упростить этот процесс, Intlayer предлагает [компилятор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compiler.md) / [экстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/extract.md) для преобразования ваших компонентов и извлечения содержимого.
752
+
753
+ Чтобы настроить его, вы можете добавить раздел `compiler` в ваш файл `intlayer.config.ts`:
754
+
755
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
756
+ import { type IntlayerConfig } from "intlayer";
757
+
758
+ const config: IntlayerConfig = {
759
+ // ... Остальная часть вашей конфигурации
760
+ compiler: {
761
+ /**
762
+ * Указывает, должен ли быть включен компилятор.
763
+ */
764
+ enabled: true,
765
+
766
+ /**
767
+ * Определяет путь к выходным файлам
768
+ */
769
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
770
+
771
+ /**
772
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
773
+ */
774
+ saveComponents: false,
775
+
776
+ /**
777
+ * Префикс ключа словаря
778
+ */
779
+ dictionaryKeyPrefix: "",
780
+ },
781
+ };
782
+
783
+ export default config;
784
+ ```
785
+
786
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
787
+ /** @type {import('intlayer').IntlayerConfig} */
788
+ const config = {
789
+ // ... Остальная часть вашей конфигурации
790
+ compiler: {
791
+ /**
792
+ * Указывает, должен ли быть включен компилятор.
793
+ */
794
+ enabled: true,
795
+
796
+ /**
797
+ * Определяет путь к выходным файлам
798
+ */
799
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
800
+
801
+ /**
802
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
803
+ */
804
+ saveComponents: false,
805
+
806
+ /**
807
+ * Префикс ключа словаря
808
+ */
809
+ dictionaryKeyPrefix: "",
810
+ },
811
+ };
812
+
813
+ export default config;
814
+ ```
815
+
816
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
817
+ /** @type {import('intlayer').IntlayerConfig} */
818
+ const config = {
819
+ // ... Остальная часть вашей конфигурации
820
+ compiler: {
821
+ /**
822
+ * Указывает, должен ли быть включен компилятор.
823
+ */
824
+ enabled: true,
825
+
826
+ /**
827
+ * Определяет путь к выходным файлам
828
+ */
829
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
830
+
831
+ /**
832
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
833
+ */
834
+ saveComponents: false,
835
+
836
+ /**
837
+ * Префикс ключа словаря
838
+ */
839
+ dictionaryKeyPrefix: "",
840
+ },
841
+ };
842
+
843
+ module.exports = config;
844
+ ```
845
+
846
+ <Tabs>
847
+ <Tab value='Команда извлечения'>
848
+
849
+ Запустите экстрактор для преобразования компонентов и извлечения содержимого
850
+
851
+ ```bash packageManager="npm"
852
+ npx intlayer extract
853
+ ```
854
+
855
+ ```bash packageManager="pnpm"
856
+ pnpm intlayer extract
857
+ ```
858
+
859
+ ```bash packageManager="yarn"
860
+ yarn intlayer extract
861
+ ```
862
+
863
+ ```bash packageManager="bun"
864
+ bunx intlayer extract
865
+ ```
866
+
867
+ </Tab>
868
+ <Tab value='Компилятор Babel'>
869
+
870
+ Обновите ваш `vite.config.ts`, чтобы включить плагин `intlayerCompiler`:
871
+
872
+ ```ts fileName="vite.config.ts"
873
+ import { defineConfig } from "vite";
874
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
875
+
876
+ export default defineConfig({
877
+ plugins: [
878
+ intlayer(),
879
+ intlayerCompiler(), // Добавляет плагин компилятора
880
+ ],
881
+ });
882
+ ```
883
+
884
+ ```bash packageManager="npm"
885
+ npm run build # Или npm run dev
886
+ ```
887
+
888
+ ```bash packageManager="pnpm"
889
+ pnpm run build # Or pnpm run dev
890
+ ```
891
+
892
+ ```bash packageManager="yarn"
893
+ yarn build # Or yarn dev
894
+ ```
895
+
896
+ ```bash packageManager="bun"
897
+ bun run build # Or bun run dev
898
+ ```
899
+
900
+ </Tab>
901
+ </Tabs>
902
+
747
903
  ### Дальнейшие шаги
748
904
 
749
905
  - **Визуальный редактор**: Интегрируйте [Визуальный редактор Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md), чтобы редактировать переводы напрямую из пользовательского интерфейса.
@@ -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: Узнайте, как добавить интернационализацию (i18n) в ваше приложение Tanstack Start с помощью Intlayer. Следуйте этому подробному руководству, чтобы сделать ваше приложение многоязычным с маршрутизацией, учитывающей локаль.
6
6
  keywords:
@@ -773,6 +773,164 @@ Intlayer использует расширение модулей (module augmen
773
773
 
774
774
  ---
775
775
 
776
+ ### (Опционально) Шаг 1 : Извлечение содержимого ваших компонентов
777
+
778
+ Если у вас есть существующая кодовая база, преобразование тысяч файлов может занять много времени.
779
+
780
+ Чтобы упростить этот процесс, Intlayer предлагает [компилятор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/compiler.md) / [экстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/cli/extract.md) для преобразования ваших компонентов и извлечения содержимого.
781
+
782
+ Чтобы настроить его, вы можете добавить раздел `compiler` в ваш файл `intlayer.config.ts`:
783
+
784
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
785
+ import { type IntlayerConfig } from "intlayer";
786
+
787
+ const config: IntlayerConfig = {
788
+ // ... Остальная часть вашей конфигурации
789
+ compiler: {
790
+ /**
791
+ * Указывает, должен ли быть включен компилятор.
792
+ */
793
+ enabled: true,
794
+
795
+ /**
796
+ * Определяет путь к выходным файлам
797
+ */
798
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
799
+
800
+ /**
801
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
802
+ */
803
+ saveComponents: false,
804
+
805
+ /**
806
+ * Префикс ключа словаря
807
+ */
808
+ dictionaryKeyPrefix: "",
809
+ },
810
+ };
811
+
812
+ export default config;
813
+ ```
814
+
815
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
816
+ /** @type {import('intlayer').IntlayerConfig} */
817
+ const config = {
818
+ // ... Остальная часть вашей конфигурации
819
+ compiler: {
820
+ /**
821
+ * Указывает, должен ли быть включен компилятор.
822
+ */
823
+ enabled: true,
824
+
825
+ /**
826
+ * Определяет путь к выходным файлам
827
+ */
828
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
829
+
830
+ /**
831
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
832
+ */
833
+ saveComponents: false,
834
+
835
+ /**
836
+ * Префикс ключа словаря
837
+ */
838
+ dictionaryKeyPrefix: "",
839
+ },
840
+ };
841
+
842
+ export default config;
843
+ ```
844
+
845
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
846
+ /** @type {import('intlayer').IntlayerConfig} */
847
+ const config = {
848
+ // ... Остальная часть вашей конфигурации
849
+ compiler: {
850
+ /**
851
+ * Указывает, должен ли быть включен компилятор.
852
+ */
853
+ enabled: true,
854
+
855
+ /**
856
+ * Определяет путь к выходным файлам
857
+ */
858
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
859
+
860
+ /**
861
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
862
+ */
863
+ saveComponents: false,
864
+
865
+ /**
866
+ * Префикс ключа словаря
867
+ */
868
+ dictionaryKeyPrefix: "",
869
+ },
870
+ };
871
+
872
+ module.exports = config;
873
+ ```
874
+
875
+ <Tabs>
876
+ <Tab value='Команда извлечения'>
877
+
878
+ Запустите экстрактор для преобразования компонентов и извлечения содержимого
879
+
880
+ ```bash packageManager="npm"
881
+ npx intlayer extract
882
+ ```
883
+
884
+ ```bash packageManager="pnpm"
885
+ pnpm intlayer extract
886
+ ```
887
+
888
+ ```bash packageManager="yarn"
889
+ yarn intlayer extract
890
+ ```
891
+
892
+ ```bash packageManager="bun"
893
+ bunx intlayer extract
894
+ ```
895
+
896
+ </Tab>
897
+ <Tab value='Компилятор Babel'>
898
+
899
+ Обновите ваш `vite.config.ts`, чтобы включить плагин `intlayerCompiler`:
900
+
901
+ ```ts fileName="vite.config.ts"
902
+ import { defineConfig } from "vite";
903
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
904
+
905
+ export default defineConfig({
906
+ plugins: [
907
+ intlayer(),
908
+ intlayerCompiler(), // Добавляет плагин компилятора
909
+ ],
910
+ });
911
+ ```
912
+
913
+ ```bash packageManager="npm"
914
+ npm run build # Или npm run dev
915
+ ```
916
+
917
+ ```bash packageManager="pnpm"
918
+ pnpm run build # Or pnpm run dev
919
+ ```
920
+
921
+ ```bash packageManager="yarn"
922
+ yarn build # Or yarn dev
923
+ ```
924
+
925
+ ```bash packageManager="bun"
926
+ bun run build # Or bun run dev
927
+ ```
928
+
929
+ </Tab>
930
+ </Tabs>
931
+
932
+ ---
933
+
776
934
  ### Конфигурация Git
777
935
 
778
936
  Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их коммита в ваш Git-репозиторий.