@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 - Come tradurre un'app Next.js 16 nel 2026
5
5
  description: Scopri come rendere il tuo sito Next.js 16 multilingue. Segui la documentazione per internazionalizzare (i18n) e tradurlo.
6
6
  keywords:
@@ -1440,6 +1440,179 @@ return (
1440
1440
  > - [`dir` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir)
1441
1441
  > - [`aria-current` attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)
1442
1442
 
1443
+ ### (Opzionale) Passaggio 1 : Estrarre il contenuto dei tuoi componenti
1444
+
1445
+ Se hai una base di codice esistente, trasformare migliaia di file può richiedere molto tempo.
1446
+
1447
+ Per facilitare questo processo, Intlayer propone un [compilatore](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/compiler.md) / [estrattore](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/extract.md) per trasformare i tuoi componenti ed estrarre il contenuto.
1448
+
1449
+ Per configurarlo, puoi aggiungere una sezione `compiler` nel tuo file `intlayer.config.ts`:
1450
+
1451
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
1452
+ import { type IntlayerConfig } from "intlayer";
1453
+
1454
+ const config: IntlayerConfig = {
1455
+ // ... Resto della tua configurazione
1456
+ compiler: {
1457
+ /**
1458
+ * Indica se il compilatore deve essere abilitato.
1459
+ */
1460
+ enabled: true,
1461
+
1462
+ /**
1463
+ * Definisce il percorso dei file di output
1464
+ */
1465
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1466
+
1467
+ /**
1468
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
1469
+ */
1470
+ saveComponents: false,
1471
+
1472
+ /**
1473
+ * Prefisso chiave dizionario
1474
+ */
1475
+ dictionaryKeyPrefix: "",
1476
+ },
1477
+ };
1478
+
1479
+ export default config;
1480
+ ```
1481
+
1482
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
1483
+ /** @type {import('intlayer').IntlayerConfig} */
1484
+ const config = {
1485
+ // ... Resto della tua configurazione
1486
+ compiler: {
1487
+ /**
1488
+ * Indica se il compilatore deve essere abilitato.
1489
+ */
1490
+ enabled: true,
1491
+
1492
+ /**
1493
+ * Definisce il percorso dei file di output
1494
+ */
1495
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1496
+
1497
+ /**
1498
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
1499
+ */
1500
+ saveComponents: false,
1501
+
1502
+ /**
1503
+ * Prefisso chiave dizionario
1504
+ */
1505
+ dictionaryKeyPrefix: "",
1506
+ },
1507
+ };
1508
+
1509
+ export default config;
1510
+ ```
1511
+
1512
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
1513
+ /** @type {import('intlayer').IntlayerConfig} */
1514
+ const config = {
1515
+ // ... Resto della tua configurazione
1516
+ compiler: {
1517
+ /**
1518
+ * Indica se il compilatore deve essere abilitato.
1519
+ */
1520
+ enabled: true,
1521
+
1522
+ /**
1523
+ * Definisce il percorso dei file di output
1524
+ */
1525
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
1526
+
1527
+ /**
1528
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
1529
+ */
1530
+ saveComponents: false,
1531
+
1532
+ /**
1533
+ * Prefisso chiave dizionario
1534
+ */
1535
+ dictionaryKeyPrefix: "",
1536
+ },
1537
+ };
1538
+
1539
+ module.exports = config;
1540
+ ```
1541
+
1542
+ <Tabs>
1543
+ <Tab value='Comando di estrazione'>
1544
+
1545
+ Esegui l'estrattore per trasformare i tuoi componenti ed estrarre il contenuto
1546
+
1547
+ ```bash packageManager="npm"
1548
+ npx intlayer extract
1549
+ ```
1550
+
1551
+ ```bash packageManager="pnpm"
1552
+ pnpm intlayer extract
1553
+ ```
1554
+
1555
+ ```bash packageManager="yarn"
1556
+ yarn intlayer extract
1557
+ ```
1558
+
1559
+ ```bash packageManager="bun"
1560
+ bunx intlayer extract
1561
+ ```
1562
+
1563
+ </Tab>
1564
+ <Tab value='Compilatore Babel'>
1565
+
1566
+ ```bash packageManager="npm"
1567
+ npm install @intlayer/babel --save-dev
1568
+ ```
1569
+
1570
+ ```bash packageManager="pnpm"
1571
+ pnpm add @intlayer/babel --save-dev
1572
+ ```
1573
+
1574
+ ```bash packageManager="yarn"
1575
+ yarn add @intlayer/babel --save-dev
1576
+ ```
1577
+
1578
+ ```bash packageManager="bun"
1579
+ bun add @intlayer/babel --dev
1580
+ ```
1581
+
1582
+ ```js fileName="babel.config.js"
1583
+ const {
1584
+ intlayerExtractBabelPlugin,
1585
+ getExtractPluginOptions,
1586
+ } = require("@intlayer/babel");
1587
+
1588
+ module.exports = {
1589
+ presets: ["next/babel"],
1590
+ plugins: [
1591
+ // Estrai il contenuto dai componenti nei dizionari
1592
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
1593
+ ],
1594
+ };
1595
+ ```
1596
+
1597
+ ```bash packageManager="npm"
1598
+ npm run build # Oppure npm run dev
1599
+ ```
1600
+
1601
+ ```bash packageManager="pnpm"
1602
+ pnpm run build # O pnpm run dev
1603
+ ```
1604
+
1605
+ ```bash packageManager="yarn"
1606
+ yarn build # O yarn dev
1607
+ ```
1608
+
1609
+ ```bash packageManager="bun"
1610
+ bun run build # Or bun run dev
1611
+ ```
1612
+
1613
+ </Tab>
1614
+ </Tabs>
1615
+
1443
1616
  ### (Opzionale) Passo 11: Creazione di un componente Link localizzato
1444
1617
 
1445
1618
  Per garantire che la navigazione della tua applicazione rispetti la lingua corrente, puoi creare un componente `Link` personalizzato. Questo componente aggiunge automaticamente il prefisso della lingua corrente agli URL interni. Ad esempio, quando un utente francofono clicca su un link alla pagina "About", viene reindirizzato a `/fr/about` invece che a `/about`.
@@ -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 - Trasforma un'app Next.js esistente in un'app multilingue nel 2026
5
5
  description: Scopri come rendere multilingue la tua applicazione Next.js esistente utilizzando Intlayer Compiler. Segui la documentazione per internazionalizzarla (i18n) e tradurla con l'IA.
6
6
  keywords:
@@ -501,6 +501,179 @@ Caratteristiche:
501
501
 
502
502
  Consulta la [documentazione dell'estensione](https://intlayer.org/doc/vs-code-extension) per i dettagli.
503
503
 
504
+ ### (Opzionale) Passaggio 1 : Estrarre il contenuto dei tuoi componenti
505
+
506
+ Se hai una base di codice esistente, trasformare migliaia di file può richiedere molto tempo.
507
+
508
+ Per facilitare questo processo, Intlayer propone un [compilatore](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/compiler.md) / [estrattore](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/extract.md) per trasformare i tuoi componenti ed estrarre il contenuto.
509
+
510
+ Per configurarlo, puoi aggiungere una sezione `compiler` nel tuo file `intlayer.config.ts`:
511
+
512
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
513
+ import { type IntlayerConfig } from "intlayer";
514
+
515
+ const config: IntlayerConfig = {
516
+ // ... Resto della tua configurazione
517
+ compiler: {
518
+ /**
519
+ * Indica se il compilatore deve essere abilitato.
520
+ */
521
+ enabled: true,
522
+
523
+ /**
524
+ * Definisce il percorso dei file di output
525
+ */
526
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
527
+
528
+ /**
529
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
530
+ */
531
+ saveComponents: false,
532
+
533
+ /**
534
+ * Prefisso chiave dizionario
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
+ // ... Resto della tua configurazione
547
+ compiler: {
548
+ /**
549
+ * Indica se il compilatore deve essere abilitato.
550
+ */
551
+ enabled: true,
552
+
553
+ /**
554
+ * Definisce il percorso dei file di output
555
+ */
556
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
557
+
558
+ /**
559
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
560
+ */
561
+ saveComponents: false,
562
+
563
+ /**
564
+ * Prefisso chiave dizionario
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
+ // ... Resto della tua configurazione
577
+ compiler: {
578
+ /**
579
+ * Indica se il compilatore deve essere abilitato.
580
+ */
581
+ enabled: true,
582
+
583
+ /**
584
+ * Definisce il percorso dei file di output
585
+ */
586
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
587
+
588
+ /**
589
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
590
+ */
591
+ saveComponents: false,
592
+
593
+ /**
594
+ * Prefisso chiave dizionario
595
+ */
596
+ dictionaryKeyPrefix: "",
597
+ },
598
+ };
599
+
600
+ module.exports = config;
601
+ ```
602
+
603
+ <Tabs>
604
+ <Tab value='Comando di estrazione'>
605
+
606
+ Esegui l'estrattore per trasformare i tuoi componenti ed estrarre il contenuto
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='Compilatore 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
+ // Estrai il contenuto dai componenti nei dizionari
653
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
654
+ ],
655
+ };
656
+ ```
657
+
658
+ ```bash packageManager="npm"
659
+ npm run build # Oppure npm run dev
660
+ ```
661
+
662
+ ```bash packageManager="pnpm"
663
+ pnpm run build # O pnpm run dev
664
+ ```
665
+
666
+ ```bash packageManager="yarn"
667
+ yarn build # O 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
  ### Vai oltre
505
678
 
506
679
  Puoi implementare l' [editor visuale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_visual_editor.md) o esternalizzare i contenuti col [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/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 - Come tradurre un'app React Router v7 nel 2026
5
5
  description: Scopri come aggiungere l'internazionalizzazione (i18n) alla tua applicazione React Router v7 utilizzando Intlayer. Segui questa guida completa per rendere la tua app multilingue con il routing consapevole della localizzazione.
6
6
  keywords:
@@ -38,7 +38,7 @@ history:
38
38
 
39
39
  Questa guida dimostra come integrare **Intlayer** per un'internazionalizzazione senza soluzione di continuità nei progetti React Router v7 con routing consapevole della localizzazione, supporto TypeScript e pratiche di sviluppo moderne.
40
40
 
41
- ## Table of Contents
41
+ ## Indice
42
42
 
43
43
  <TOC/>
44
44
 
@@ -508,6 +508,229 @@ export default function RootLayout() {
508
508
  }
509
509
  ```
510
510
 
511
+ ### (Opzionale) Passaggio 1 : Estrarre il contenuto dei tuoi componenti
512
+
513
+ Se hai una base di codice esistente, trasformare migliaia di file può richiedere molto tempo.
514
+
515
+ Per facilitare questo processo, Intlayer propone un [compilatore](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/compiler.md) / [estrattore](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/extract.md) per trasformare i tuoi componenti ed estrarre il contenuto.
516
+
517
+ Per configurarlo, puoi aggiungere una sezione `compiler` nel tuo file `intlayer.config.ts`:
518
+
519
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
520
+ import { type IntlayerConfig } from "intlayer";
521
+
522
+ const config: IntlayerConfig = {
523
+ // ... Resto della tua configurazione
524
+ compiler: {
525
+ /**
526
+ * Indica se il compilatore deve essere abilitato.
527
+ */
528
+ enabled: true,
529
+
530
+ /**
531
+ * Definisce il percorso dei file di output
532
+ */
533
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
534
+
535
+ /**
536
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
537
+ */
538
+ saveComponents: false,
539
+
540
+ /**
541
+ * Prefisso chiave dizionario
542
+ */
543
+ dictionaryKeyPrefix: "",
544
+ },
545
+ };
546
+
547
+ export default config;
548
+ ```
549
+
550
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
551
+ /** @type {import('intlayer').IntlayerConfig} */
552
+ const config = {
553
+ // ... Resto della tua configurazione
554
+ compiler: {
555
+ /**
556
+ * Indica se il compilatore deve essere abilitato.
557
+ */
558
+ enabled: true,
559
+
560
+ /**
561
+ * Definisce il percorso dei file di output
562
+ */
563
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
564
+
565
+ /**
566
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
567
+ */
568
+ saveComponents: false,
569
+
570
+ /**
571
+ * Prefisso chiave dizionario
572
+ */
573
+ dictionaryKeyPrefix: "",
574
+ },
575
+ };
576
+
577
+ export default config;
578
+ ```
579
+
580
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
581
+ /** @type {import('intlayer').IntlayerConfig} */
582
+ const config = {
583
+ // ... Resto della tua configurazione
584
+ compiler: {
585
+ /**
586
+ * Indica se il compilatore deve essere abilitato.
587
+ */
588
+ enabled: true,
589
+
590
+ /**
591
+ * Definisce il percorso dei file di output
592
+ */
593
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
594
+
595
+ /**
596
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati. In questo modo, il compilatore può essere eseguito solo una volta per trasformare l'app e poi rimosso.
597
+ */
598
+ saveComponents: false,
599
+
600
+ /**
601
+ * Prefisso chiave dizionario
602
+ */
603
+ dictionaryKeyPrefix: "",
604
+ },
605
+ };
606
+
607
+ module.exports = config;
608
+ ```
609
+
610
+ <Tabs>
611
+ <Tab value='Comando di estrazione'>
612
+
613
+ Esegui l'estrattore per trasformare i tuoi componenti ed estrarre il contenuto
614
+
615
+ ```bash packageManager="npm"
616
+ npx intlayer extract
617
+ ```
618
+
619
+ ```bash packageManager="pnpm"
620
+ pnpm intlayer extract
621
+ ```
622
+
623
+ ```bash packageManager="yarn"
624
+ yarn intlayer extract
625
+ ```
626
+
627
+ ```bash packageManager="bun"
628
+ bunx intlayer extract
629
+ ```
630
+
631
+ </Tab>
632
+ <Tab value='Compilatore Babel'>
633
+
634
+ Aggiorna il tuo `vite.config.ts` per includere il plugin `intlayerCompiler`:
635
+
636
+ ```ts fileName="vite.config.ts"
637
+ import { defineConfig } from "vite";
638
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
639
+
640
+ export default defineConfig({
641
+ plugins: [
642
+ intlayer(),
643
+ intlayerCompiler(), // Aggiunge il plugin del compilatore
644
+ ],
645
+ });
646
+ ```
647
+
648
+ ```bash packageManager="npm"
649
+ npm run build # Oppure npm run dev
650
+ ```
651
+
652
+ ```bash packageManager="pnpm"
653
+ pnpm run build # O pnpm run dev
654
+ ```
655
+
656
+ ```bash packageManager="yarn"
657
+ yarn build # O yarn dev
658
+ ```
659
+
660
+ ```bash packageManager="bun"
661
+ bun run build # Or bun run dev
662
+ ```
663
+
664
+ </Tab>
665
+ </Tabs>
666
+
667
+ ---
668
+
669
+ ## Configure TypeScript
670
+
671
+ Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
672
+
673
+ Ensure your TypeScript configuration includes the autogenerated types:
674
+
675
+ ```json5 fileName="tsconfig.json"
676
+ {
677
+ // ... your existing configurations
678
+ include: [
679
+ // ... your existing includes
680
+ ".intlayer/**/*.ts", // Include the auto-generated types
681
+ ],
682
+ }
683
+ ```
684
+
685
+ ---
686
+
687
+ ## Git Configuration
688
+
689
+ It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
690
+
691
+ To do this, you can add the following instructions to your `.gitignore` file:
692
+
693
+ ```plaintext fileName=".gitignore"
694
+ # Ignora i file generati da Intlayer
695
+ .intlayer
696
+ ```
697
+
698
+ ---
699
+
700
+ ## VS Code Extension
701
+
702
+ To improve your development experience with Intlayer, you can install the official **Intlayer VS Code Extension**.
703
+
704
+ [Install from the VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
705
+
706
+ This extension provides:
707
+
708
+ - **Autocompletion** for translation keys.
709
+ - **Real-time error detection** for missing translations.
710
+ - **Inline previews** of translated content.
711
+ - **Quick actions** to easily create and update translations.
712
+
713
+ For more details on how to use the extension, refer to the [Intlayer VS Code Extension documentation](https://intlayer.org/doc/vs-code-extension).
714
+
715
+ ---
716
+
717
+ ## Go Further
718
+
719
+ 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).
720
+
721
+ ---
722
+
723
+ ## Documentation References
724
+
725
+ - [Intlayer Documentation](https://intlayer.org)
726
+ - [React Router v7 Documentation](https://reactrouter.com/)
727
+ - [useIntlayer hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useIntlayer.md)
728
+ - [useLocale hook](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/packages/react-intlayer/useLocale.md)
729
+ - [Content Declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md)
730
+ - [Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/configuration.md)
731
+
732
+ 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.
733
+
511
734
  ### Passo 11: Aggiungere il middleware (Opzionale)
512
735
 
513
736
  Puoi anche utilizzare `intlayerProxy` per aggiungere il routing lato server alla tua applicazione. Questo plugin rileverà automaticamente la lingua corrente basandosi sull'URL e imposterà il cookie della lingua appropriata. Se non viene specificata alcuna lingua, il plugin determinerà la lingua più adatta in base alle preferenze linguistiche del browser dell'utente. Se non viene rilevata alcuna lingua, verrà effettuato un reindirizzamento alla lingua predefinita.