@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: 2024-12-06
3
- updatedAt: 2025-12-30
3
+ updatedAt: 2026-03-12
4
4
  title: Next.js i18n - Как перевести приложение Next.js 16 в 2026
5
5
  description: Узнайте, как сделать ваш сайт на Next.js 16 многоязычным. Следуйте документации для интернационализации (i18n) и перевода.
6
6
  keywords:
@@ -1695,6 +1695,179 @@ Intlayer использует расширение модулей (module augmen
1695
1695
 
1696
1696
  Более подробную информацию о том, как использовать расширение, можно найти в [документации расширения Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
1697
1697
 
1698
+ ### (Опционально) Шаг 1 : Извлечение содержимого ваших компонентов
1699
+
1700
+ Если у вас есть существующая кодовая база, преобразование тысяч файлов может занять много времени.
1701
+
1702
+ Чтобы упростить этот процесс, 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) для преобразования ваших компонентов и извлечения содержимого.
1703
+
1704
+ Чтобы настроить его, вы можете добавить раздел `compiler` в ваш файл `intlayer.config.ts`:
1705
+
1706
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
1707
+ import { type IntlayerConfig } from "intlayer";
1708
+
1709
+ const config: IntlayerConfig = {
1710
+ // ... Остальная часть вашей конфигурации
1711
+ compiler: {
1712
+ /**
1713
+ * Указывает, должен ли быть включен компилятор.
1714
+ */
1715
+ enabled: true,
1716
+
1717
+ /**
1718
+ * Определяет путь к выходным файлам
1719
+ */
1720
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1721
+
1722
+ /**
1723
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
1724
+ */
1725
+ saveComponents: false,
1726
+
1727
+ /**
1728
+ * Префикс ключа словаря
1729
+ */
1730
+ dictionaryKeyPrefix: "",
1731
+ },
1732
+ };
1733
+
1734
+ export default config;
1735
+ ```
1736
+
1737
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
1738
+ /** @type {import('intlayer').IntlayerConfig} */
1739
+ const config = {
1740
+ // ... Остальная часть вашей конфигурации
1741
+ compiler: {
1742
+ /**
1743
+ * Указывает, должен ли быть включен компилятор.
1744
+ */
1745
+ enabled: true,
1746
+
1747
+ /**
1748
+ * Определяет путь к выходным файлам
1749
+ */
1750
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1751
+
1752
+ /**
1753
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
1754
+ */
1755
+ saveComponents: false,
1756
+
1757
+ /**
1758
+ * Префикс ключа словаря
1759
+ */
1760
+ dictionaryKeyPrefix: "",
1761
+ },
1762
+ };
1763
+
1764
+ export default config;
1765
+ ```
1766
+
1767
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
1768
+ /** @type {import('intlayer').IntlayerConfig} */
1769
+ const config = {
1770
+ // ... Остальная часть вашей конфигурации
1771
+ compiler: {
1772
+ /**
1773
+ * Указывает, должен ли быть включен компилятор.
1774
+ */
1775
+ enabled: true,
1776
+
1777
+ /**
1778
+ * Определяет путь к выходным файлам
1779
+ */
1780
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1781
+
1782
+ /**
1783
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
1784
+ */
1785
+ saveComponents: false,
1786
+
1787
+ /**
1788
+ * Префикс ключа словаря
1789
+ */
1790
+ dictionaryKeyPrefix: "",
1791
+ },
1792
+ };
1793
+
1794
+ module.exports = config;
1795
+ ```
1796
+
1797
+ <Tabs>
1798
+ <Tab value='Команда извлечения'>
1799
+
1800
+ Запустите экстрактор для преобразования компонентов и извлечения содержимого
1801
+
1802
+ ```bash packageManager="npm"
1803
+ npx intlayer extract
1804
+ ```
1805
+
1806
+ ```bash packageManager="pnpm"
1807
+ pnpm intlayer extract
1808
+ ```
1809
+
1810
+ ```bash packageManager="yarn"
1811
+ yarn intlayer extract
1812
+ ```
1813
+
1814
+ ```bash packageManager="bun"
1815
+ bunx intlayer extract
1816
+ ```
1817
+
1818
+ </Tab>
1819
+ <Tab value='Компилятор Babel'>
1820
+
1821
+ ```bash packageManager="npm"
1822
+ npm install @intlayer/babel --save-dev
1823
+ ```
1824
+
1825
+ ```bash packageManager="pnpm"
1826
+ pnpm add @intlayer/babel --save-dev
1827
+ ```
1828
+
1829
+ ```bash packageManager="yarn"
1830
+ yarn add @intlayer/babel --save-dev
1831
+ ```
1832
+
1833
+ ```bash packageManager="bun"
1834
+ bun add @intlayer/babel --dev
1835
+ ```
1836
+
1837
+ ```js fileName="babel.config.js"
1838
+ const {
1839
+ intlayerExtractBabelPlugin,
1840
+ getExtractPluginOptions,
1841
+ } = require("@intlayer/babel");
1842
+
1843
+ module.exports = {
1844
+ presets: ["next/babel"],
1845
+ plugins: [
1846
+ // Извлечение содержимого из компонентов в словари
1847
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
1848
+ ],
1849
+ };
1850
+ ```
1851
+
1852
+ ```bash packageManager="npm"
1853
+ npm run build # Или npm run dev
1854
+ ```
1855
+
1856
+ ```bash packageManager="pnpm"
1857
+ pnpm run build # Or pnpm run dev
1858
+ ```
1859
+
1860
+ ```bash packageManager="yarn"
1861
+ yarn build # Or yarn dev
1862
+ ```
1863
+
1864
+ ```bash packageManager="bun"
1865
+ bun run build # Or bun run dev
1866
+ ```
1867
+
1868
+ </Tab>
1869
+ </Tabs>
1870
+
1698
1871
  ### Идите дальше
1699
1872
 
1700
1873
  Чтобы пойти дальше, вы можете внедрить [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) или экстернализировать ваш контент с помощью [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-01-10
3
- updatedAt: 2026-01-10
3
+ updatedAt: 2026-03-12
4
4
  title: Next.js i18n - Превращение существующего приложения Next.js в многоязычное приложение в 2026
5
5
  description: Узнайте, как сделать ваше существующее приложение Next.js многоязычным с помощью компилятора Intlayer. Следуйте документации для интернационализации (i18n) и перевода вашего приложения с помощью ИИ.
6
6
  keywords:
@@ -501,6 +501,179 @@ Intlayer использует расширение модулей (module augmen
501
501
 
502
502
  Для получения подробной информации об использовании расширения см. [документацию расширения Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
503
503
 
504
+ ### (Опционально) Шаг 1 : Извлечение содержимого ваших компонентов
505
+
506
+ Если у вас есть существующая кодовая база, преобразование тысяч файлов может занять много времени.
507
+
508
+ Чтобы упростить этот процесс, 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) для преобразования ваших компонентов и извлечения содержимого.
509
+
510
+ Чтобы настроить его, вы можете добавить раздел `compiler` в ваш файл `intlayer.config.ts`:
511
+
512
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
513
+ import { type IntlayerConfig } from "intlayer";
514
+
515
+ const config: IntlayerConfig = {
516
+ // ... Остальная часть вашей конфигурации
517
+ compiler: {
518
+ /**
519
+ * Указывает, должен ли быть включен компилятор.
520
+ */
521
+ enabled: true,
522
+
523
+ /**
524
+ * Определяет путь к выходным файлам
525
+ */
526
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
527
+
528
+ /**
529
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
530
+ */
531
+ saveComponents: false,
532
+
533
+ /**
534
+ * Префикс ключа словаря
535
+ */
536
+ dictionaryKeyPrefix: "",
537
+ },
538
+ };
539
+
540
+ export default config;
541
+ ```
542
+
543
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
544
+ /** @type {import('intlayer').IntlayerConfig} */
545
+ const config = {
546
+ // ... Остальная часть вашей конфигурации
547
+ compiler: {
548
+ /**
549
+ * Указывает, должен ли быть включен компилятор.
550
+ */
551
+ enabled: true,
552
+
553
+ /**
554
+ * Определяет путь к выходным файлам
555
+ */
556
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
557
+
558
+ /**
559
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
560
+ */
561
+ saveComponents: false,
562
+
563
+ /**
564
+ * Префикс ключа словаря
565
+ */
566
+ dictionaryKeyPrefix: "",
567
+ },
568
+ };
569
+
570
+ export default config;
571
+ ```
572
+
573
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
574
+ /** @type {import('intlayer').IntlayerConfig} */
575
+ const config = {
576
+ // ... Остальная часть вашей конфигурации
577
+ compiler: {
578
+ /**
579
+ * Указывает, должен ли быть включен компилятор.
580
+ */
581
+ enabled: true,
582
+
583
+ /**
584
+ * Определяет путь к выходным файлам
585
+ */
586
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
587
+
588
+ /**
589
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
590
+ */
591
+ saveComponents: false,
592
+
593
+ /**
594
+ * Префикс ключа словаря
595
+ */
596
+ dictionaryKeyPrefix: "",
597
+ },
598
+ };
599
+
600
+ module.exports = config;
601
+ ```
602
+
603
+ <Tabs>
604
+ <Tab value='Команда извлечения'>
605
+
606
+ Запустите экстрактор для преобразования компонентов и извлечения содержимого
607
+
608
+ ```bash packageManager="npm"
609
+ npx intlayer extract
610
+ ```
611
+
612
+ ```bash packageManager="pnpm"
613
+ pnpm intlayer extract
614
+ ```
615
+
616
+ ```bash packageManager="yarn"
617
+ yarn intlayer extract
618
+ ```
619
+
620
+ ```bash packageManager="bun"
621
+ bunx intlayer extract
622
+ ```
623
+
624
+ </Tab>
625
+ <Tab value='Компилятор Babel'>
626
+
627
+ ```bash packageManager="npm"
628
+ npm install @intlayer/babel --save-dev
629
+ ```
630
+
631
+ ```bash packageManager="pnpm"
632
+ pnpm add @intlayer/babel --save-dev
633
+ ```
634
+
635
+ ```bash packageManager="yarn"
636
+ yarn add @intlayer/babel --save-dev
637
+ ```
638
+
639
+ ```bash packageManager="bun"
640
+ bun add @intlayer/babel --dev
641
+ ```
642
+
643
+ ```js fileName="babel.config.js"
644
+ const {
645
+ intlayerExtractBabelPlugin,
646
+ getExtractPluginOptions,
647
+ } = require("@intlayer/babel");
648
+
649
+ module.exports = {
650
+ presets: ["next/babel"],
651
+ plugins: [
652
+ // Извлечение содержимого из компонентов в словари
653
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
654
+ ],
655
+ };
656
+ ```
657
+
658
+ ```bash packageManager="npm"
659
+ npm run build # Или npm run dev
660
+ ```
661
+
662
+ ```bash packageManager="pnpm"
663
+ pnpm run build # Or pnpm run dev
664
+ ```
665
+
666
+ ```bash packageManager="yarn"
667
+ yarn build # Or yarn dev
668
+ ```
669
+
670
+ ```bash packageManager="bun"
671
+ bun run build # Or bun run dev
672
+ ```
673
+
674
+ </Tab>
675
+ </Tabs>
676
+
504
677
  ### Идите дальше
505
678
 
506
679
  Чтобы пойти еще дальше, вы можете внедрить [визуальный редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_visual_editor.md) или вынести свой контент во внешнюю среду с помощью [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-09-04
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:
@@ -506,6 +506,229 @@ export default function RootLayout() {
506
506
  }
507
507
  ```
508
508
 
509
+ ### (Опционально) Шаг 1 : Извлечение содержимого ваших компонентов
510
+
511
+ Если у вас есть существующая кодовая база, преобразование тысяч файлов может занять много времени.
512
+
513
+ Чтобы упростить этот процесс, 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) для преобразования ваших компонентов и извлечения содержимого.
514
+
515
+ Чтобы настроить его, вы можете добавить раздел `compiler` в ваш файл `intlayer.config.ts`:
516
+
517
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
518
+ import { type IntlayerConfig } from "intlayer";
519
+
520
+ const config: IntlayerConfig = {
521
+ // ... Остальная часть вашей конфигурации
522
+ compiler: {
523
+ /**
524
+ * Указывает, должен ли быть включен компилятор.
525
+ */
526
+ enabled: true,
527
+
528
+ /**
529
+ * Определяет путь к выходным файлам
530
+ */
531
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
532
+
533
+ /**
534
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
535
+ */
536
+ saveComponents: false,
537
+
538
+ /**
539
+ * Префикс ключа словаря
540
+ */
541
+ dictionaryKeyPrefix: "",
542
+ },
543
+ };
544
+
545
+ export default config;
546
+ ```
547
+
548
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
549
+ /** @type {import('intlayer').IntlayerConfig} */
550
+ const config = {
551
+ // ... Остальная часть вашей конфигурации
552
+ compiler: {
553
+ /**
554
+ * Указывает, должен ли быть включен компилятор.
555
+ */
556
+ enabled: true,
557
+
558
+ /**
559
+ * Определяет путь к выходным файлам
560
+ */
561
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
562
+
563
+ /**
564
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
565
+ */
566
+ saveComponents: false,
567
+
568
+ /**
569
+ * Префикс ключа словаря
570
+ */
571
+ dictionaryKeyPrefix: "",
572
+ },
573
+ };
574
+
575
+ export default config;
576
+ ```
577
+
578
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
579
+ /** @type {import('intlayer').IntlayerConfig} */
580
+ const config = {
581
+ // ... Остальная часть вашей конфигурации
582
+ compiler: {
583
+ /**
584
+ * Указывает, должен ли быть включен компилятор.
585
+ */
586
+ enabled: true,
587
+
588
+ /**
589
+ * Определяет путь к выходным файлам
590
+ */
591
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
592
+
593
+ /**
594
+ * Указывает, должны ли компоненты сохраняться после преобразования. Таким образом, компилятор можно запустить только один раз для преобразования приложения, а затем удалить.
595
+ */
596
+ saveComponents: false,
597
+
598
+ /**
599
+ * Префикс ключа словаря
600
+ */
601
+ dictionaryKeyPrefix: "",
602
+ },
603
+ };
604
+
605
+ module.exports = config;
606
+ ```
607
+
608
+ <Tabs>
609
+ <Tab value='Команда извлечения'>
610
+
611
+ Запустите экстрактор для преобразования компонентов и извлечения содержимого
612
+
613
+ ```bash packageManager="npm"
614
+ npx intlayer extract
615
+ ```
616
+
617
+ ```bash packageManager="pnpm"
618
+ pnpm intlayer extract
619
+ ```
620
+
621
+ ```bash packageManager="yarn"
622
+ yarn intlayer extract
623
+ ```
624
+
625
+ ```bash packageManager="bun"
626
+ bunx intlayer extract
627
+ ```
628
+
629
+ </Tab>
630
+ <Tab value='Компилятор Babel'>
631
+
632
+ Обновите ваш `vite.config.ts`, чтобы включить плагин `intlayerCompiler`:
633
+
634
+ ```ts fileName="vite.config.ts"
635
+ import { defineConfig } from "vite";
636
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
637
+
638
+ export default defineConfig({
639
+ plugins: [
640
+ intlayer(),
641
+ intlayerCompiler(), // Добавляет плагин компилятора
642
+ ],
643
+ });
644
+ ```
645
+
646
+ ```bash packageManager="npm"
647
+ npm run build # Или npm run dev
648
+ ```
649
+
650
+ ```bash packageManager="pnpm"
651
+ pnpm run build # Or pnpm run dev
652
+ ```
653
+
654
+ ```bash packageManager="yarn"
655
+ yarn build # Or yarn dev
656
+ ```
657
+
658
+ ```bash packageManager="bun"
659
+ bun run build # Or bun run dev
660
+ ```
661
+
662
+ </Tab>
663
+ </Tabs>
664
+
665
+ ---
666
+
667
+ ## Configure TypeScript
668
+
669
+ Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
670
+
671
+ Ensure your TypeScript configuration includes the autogenerated types:
672
+
673
+ ```json5 fileName="tsconfig.json"
674
+ {
675
+ // ... your existing configurations
676
+ include: [
677
+ // ... your existing includes
678
+ ".intlayer/**/*.ts", // Include the auto-generated types
679
+ ],
680
+ }
681
+ ```
682
+
683
+ ---
684
+
685
+ ## Git Configuration
686
+
687
+ It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
688
+
689
+ To do this, you can add the following instructions to your `.gitignore` file:
690
+
691
+ ```plaintext fileName=".gitignore"
692
+ # Ignore the files generated by Intlayer
693
+ .intlayer
694
+ ```
695
+
696
+ ---
697
+
698
+ ## VS Code Extension
699
+
700
+ To improve your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
701
+
702
+ [Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
703
+
704
+ This extension provides:
705
+
706
+ - **Autocompletion** for translation keys.
707
+ - **Real-time error detection** for missing translations.
708
+ - **Inline previews** of translated content.
709
+ - **Quick actions** to easily create and update translations.
710
+
711
+ For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
712
+
713
+ ---
714
+
715
+ ## Go Further
716
+
717
+ 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).
718
+
719
+ ---
720
+
721
+ ## Documentation References
722
+
723
+ - [Intlayer Documentation](https://intlayer.org)
724
+ - [React Router v7 Documentation](https://reactrouter.com/)
725
+ - [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
726
+ - [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
727
+ - [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
728
+ - [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
729
+
730
+ This comprehensive guide provides everything you need to integrate Intlayer with React Router v7 for a fully internationalized application with locale-aware routing and TypeScript support.
731
+
509
732
  ### Шаг 11: Добавьте middleware (необязательно)
510
733
 
511
734
  Вы также можете использовать `intlayerProxy` для добавления маршрутизации на стороне сервера в ваше приложение. Этот плагин автоматически определит текущую локаль на основе URL и установит соответствующее cookie с локалью. Если локаль не указана, плагин определит наиболее подходящую локаль на основе языковых предпочтений браузера пользователя. Если локаль не будет обнаружена, произойдет перенаправление на локаль по умолчанию.