@intlayer/docs 8.4.10 → 8.5.0

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 (370) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +40 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +40 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +2 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/dictionary/html.md +22 -22
  8. package/docs/ar/dictionary/markdown.md +18 -18
  9. package/docs/ar/intlayer_with_analog.md +2 -13
  10. package/docs/ar/intlayer_with_angular.md +1 -12
  11. package/docs/ar/intlayer_with_nextjs_14.md +1 -1
  12. package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
  13. package/docs/ar/intlayer_with_react_router_v7.md +6 -1
  14. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +6 -1
  15. package/docs/ar/intlayer_with_storybook.md +2 -5
  16. package/docs/ar/intlayer_with_svelte_kit.md +9 -5
  17. package/docs/ar/intlayer_with_vite+lit.md +738 -0
  18. package/docs/ar/intlayer_with_vite+react.md +16 -4
  19. package/docs/ar/intlayer_with_vite+solid.md +1 -1
  20. package/docs/ar/intlayer_with_vite+svelte.md +13 -6
  21. package/docs/ar/intlayer_with_vite+vanilla.md +722 -0
  22. package/docs/ar/intlayer_with_vite+vue.md +21 -5
  23. package/docs/ar/packages/react-intlayer/MarkdownRenderer.md +1 -1
  24. package/docs/ar/packages/svelte-intlayer/useRewriteURL.md +1 -1
  25. package/docs/ar/releases/v8.md +27 -27
  26. package/docs/bn/intlayer_with_storybook.md +2 -5
  27. package/docs/bn/intlayer_with_vite+lit.md +738 -0
  28. package/docs/bn/intlayer_with_vite+vanilla.md +722 -0
  29. package/docs/cs/intlayer_with_storybook.md +2 -5
  30. package/docs/cs/intlayer_with_vite+lit.md +738 -0
  31. package/docs/cs/intlayer_with_vite+vanilla.md +722 -0
  32. package/docs/de/dictionary/html.md +146 -24
  33. package/docs/de/dictionary/markdown.md +143 -25
  34. package/docs/de/intlayer_with_analog.md +2 -13
  35. package/docs/de/intlayer_with_angular.md +1 -12
  36. package/docs/de/intlayer_with_nextjs_14.md +1 -1
  37. package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
  38. package/docs/de/intlayer_with_react_router_v7.md +6 -1
  39. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +6 -1
  40. package/docs/de/intlayer_with_storybook.md +2 -5
  41. package/docs/de/intlayer_with_svelte_kit.md +9 -5
  42. package/docs/de/intlayer_with_vite+lit.md +747 -0
  43. package/docs/de/intlayer_with_vite+react.md +16 -4
  44. package/docs/de/intlayer_with_vite+solid.md +1 -1
  45. package/docs/de/intlayer_with_vite+svelte.md +19 -6
  46. package/docs/de/intlayer_with_vite+vanilla.md +722 -0
  47. package/docs/de/intlayer_with_vite+vue.md +21 -5
  48. package/docs/de/packages/react-intlayer/MarkdownRenderer.md +1 -1
  49. package/docs/de/packages/svelte-intlayer/useRewriteURL.md +1 -1
  50. package/docs/de/releases/v8.md +27 -27
  51. package/docs/en/compiler.md +4 -1
  52. package/docs/en/configuration.md +4 -1
  53. package/docs/en/dictionary/html.md +146 -24
  54. package/docs/en/dictionary/markdown.md +143 -21
  55. package/docs/en/intlayer_with_analog.md +3 -14
  56. package/docs/en/intlayer_with_angular.md +1 -12
  57. package/docs/en/intlayer_with_nextjs_14.md +1 -1
  58. package/docs/en/intlayer_with_nextjs_16.md +12 -3
  59. package/docs/en/intlayer_with_nextjs_compiler.md +16 -4
  60. package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
  61. package/docs/en/intlayer_with_react_router_v7.md +17 -4
  62. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +18 -4
  63. package/docs/en/intlayer_with_storybook.md +2 -5
  64. package/docs/en/intlayer_with_svelte_kit.md +21 -8
  65. package/docs/en/intlayer_with_tanstack.md +12 -3
  66. package/docs/en/intlayer_with_vite+lit.md +750 -0
  67. package/docs/en/intlayer_with_vite+preact.md +31 -3
  68. package/docs/en/intlayer_with_vite+react.md +28 -7
  69. package/docs/en/intlayer_with_vite+react_compiler.md +4 -1
  70. package/docs/en/intlayer_with_vite+solid.md +31 -3
  71. package/docs/en/intlayer_with_vite+svelte.md +30 -9
  72. package/docs/en/intlayer_with_vite+vanilla.md +725 -0
  73. package/docs/en/intlayer_with_vite+vue.md +28 -7
  74. package/docs/en/packages/react-intlayer/MarkdownRenderer.md +1 -1
  75. package/docs/en/packages/svelte-intlayer/useRewriteURL.md +1 -1
  76. package/docs/en/readme.md +1 -0
  77. package/docs/en/releases/v8.md +27 -27
  78. package/docs/en-GB/compiler.md +4 -1
  79. package/docs/en-GB/configuration.md +4 -1
  80. package/docs/en-GB/dictionary/html.md +22 -22
  81. package/docs/en-GB/dictionary/markdown.md +18 -18
  82. package/docs/en-GB/intlayer_with_analog.md +2 -13
  83. package/docs/en-GB/intlayer_with_angular.md +1 -12
  84. package/docs/en-GB/intlayer_with_nextjs_14.md +1 -1
  85. package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
  86. package/docs/en-GB/intlayer_with_react_router_v7.md +6 -1
  87. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +6 -1
  88. package/docs/en-GB/intlayer_with_storybook.md +2 -5
  89. package/docs/en-GB/intlayer_with_svelte_kit.md +9 -5
  90. package/docs/en-GB/intlayer_with_vite+lit.md +750 -0
  91. package/docs/en-GB/intlayer_with_vite+react.md +15 -3
  92. package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
  93. package/docs/en-GB/intlayer_with_vite+svelte.md +17 -5
  94. package/docs/en-GB/intlayer_with_vite+vanilla.md +725 -0
  95. package/docs/en-GB/intlayer_with_vite+vue.md +16 -4
  96. package/docs/en-GB/packages/react-intlayer/MarkdownRenderer.md +1 -1
  97. package/docs/en-GB/packages/svelte-intlayer/useRewriteURL.md +1 -1
  98. package/docs/en-GB/releases/v8.md +27 -27
  99. package/docs/es/dictionary/html.md +147 -25
  100. package/docs/es/dictionary/markdown.md +143 -25
  101. package/docs/es/intlayer_with_analog.md +2 -13
  102. package/docs/es/intlayer_with_angular.md +1 -12
  103. package/docs/es/intlayer_with_nextjs_14.md +1 -1
  104. package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
  105. package/docs/es/intlayer_with_react_router_v7.md +6 -1
  106. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +6 -1
  107. package/docs/es/intlayer_with_storybook.md +2 -5
  108. package/docs/es/intlayer_with_svelte_kit.md +9 -5
  109. package/docs/es/intlayer_with_vite+lit.md +747 -0
  110. package/docs/es/intlayer_with_vite+react.md +16 -4
  111. package/docs/es/intlayer_with_vite+solid.md +1 -1
  112. package/docs/es/intlayer_with_vite+svelte.md +16 -6
  113. package/docs/es/intlayer_with_vite+vanilla.md +722 -0
  114. package/docs/es/intlayer_with_vite+vue.md +21 -5
  115. package/docs/es/packages/react-intlayer/MarkdownRenderer.md +1 -1
  116. package/docs/es/packages/svelte-intlayer/useRewriteURL.md +1 -1
  117. package/docs/es/releases/v8.md +27 -27
  118. package/docs/fr/dictionary/html.md +146 -24
  119. package/docs/fr/dictionary/markdown.md +143 -25
  120. package/docs/fr/intlayer_with_analog.md +2 -13
  121. package/docs/fr/intlayer_with_angular.md +1 -12
  122. package/docs/fr/intlayer_with_nextjs_14.md +1 -1
  123. package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
  124. package/docs/fr/intlayer_with_react_router_v7.md +6 -1
  125. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +6 -1
  126. package/docs/fr/intlayer_with_storybook.md +2 -5
  127. package/docs/fr/intlayer_with_svelte_kit.md +9 -5
  128. package/docs/fr/intlayer_with_vite+lit.md +747 -0
  129. package/docs/fr/intlayer_with_vite+react.md +16 -4
  130. package/docs/fr/intlayer_with_vite+solid.md +1 -1
  131. package/docs/fr/intlayer_with_vite+svelte.md +19 -6
  132. package/docs/fr/intlayer_with_vite+vanilla.md +722 -0
  133. package/docs/fr/intlayer_with_vite+vue.md +21 -5
  134. package/docs/fr/packages/react-intlayer/MarkdownRenderer.md +1 -1
  135. package/docs/fr/packages/svelte-intlayer/useRewriteURL.md +1 -1
  136. package/docs/fr/releases/v8.md +27 -27
  137. package/docs/hi/dictionary/html.md +22 -22
  138. package/docs/hi/dictionary/markdown.md +18 -18
  139. package/docs/hi/intlayer_with_analog.md +2 -13
  140. package/docs/hi/intlayer_with_angular.md +1 -12
  141. package/docs/hi/intlayer_with_nextjs_14.md +1 -1
  142. package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
  143. package/docs/hi/intlayer_with_react_router_v7.md +6 -1
  144. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +6 -1
  145. package/docs/hi/intlayer_with_storybook.md +2 -5
  146. package/docs/hi/intlayer_with_svelte_kit.md +9 -5
  147. package/docs/hi/intlayer_with_vite+lit.md +738 -0
  148. package/docs/hi/intlayer_with_vite+react.md +16 -4
  149. package/docs/hi/intlayer_with_vite+solid.md +1 -1
  150. package/docs/hi/intlayer_with_vite+svelte.md +13 -6
  151. package/docs/hi/intlayer_with_vite+vanilla.md +722 -0
  152. package/docs/hi/intlayer_with_vite+vue.md +21 -5
  153. package/docs/hi/packages/react-intlayer/MarkdownRenderer.md +1 -1
  154. package/docs/hi/packages/svelte-intlayer/useRewriteURL.md +1 -1
  155. package/docs/hi/releases/v8.md +27 -27
  156. package/docs/id/dictionary/html.md +22 -22
  157. package/docs/id/dictionary/markdown.md +18 -18
  158. package/docs/id/intlayer_with_analog.md +2 -13
  159. package/docs/id/intlayer_with_angular.md +1 -12
  160. package/docs/id/intlayer_with_nextjs_14.md +1 -1
  161. package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
  162. package/docs/id/intlayer_with_react_router_v7.md +6 -1
  163. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +6 -1
  164. package/docs/id/intlayer_with_storybook.md +2 -5
  165. package/docs/id/intlayer_with_svelte_kit.md +9 -5
  166. package/docs/id/intlayer_with_vite+lit.md +738 -0
  167. package/docs/id/intlayer_with_vite+react.md +16 -4
  168. package/docs/id/intlayer_with_vite+solid.md +1 -1
  169. package/docs/id/intlayer_with_vite+svelte.md +13 -6
  170. package/docs/id/intlayer_with_vite+vanilla.md +722 -0
  171. package/docs/id/intlayer_with_vite+vue.md +16 -4
  172. package/docs/id/packages/react-intlayer/MarkdownRenderer.md +1 -1
  173. package/docs/id/packages/svelte-intlayer/useRewriteURL.md +1 -1
  174. package/docs/id/releases/v8.md +27 -27
  175. package/docs/it/dictionary/html.md +146 -24
  176. package/docs/it/dictionary/markdown.md +143 -21
  177. package/docs/it/intlayer_with_analog.md +2 -13
  178. package/docs/it/intlayer_with_angular.md +1 -12
  179. package/docs/it/intlayer_with_nextjs_14.md +1 -1
  180. package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
  181. package/docs/it/intlayer_with_react_router_v7.md +6 -1
  182. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +6 -1
  183. package/docs/it/intlayer_with_storybook.md +2 -5
  184. package/docs/it/intlayer_with_svelte_kit.md +9 -5
  185. package/docs/it/intlayer_with_vite+lit.md +747 -0
  186. package/docs/it/intlayer_with_vite+react.md +16 -4
  187. package/docs/it/intlayer_with_vite+solid.md +1 -1
  188. package/docs/it/intlayer_with_vite+svelte.md +13 -6
  189. package/docs/it/intlayer_with_vite+vanilla.md +722 -0
  190. package/docs/it/intlayer_with_vite+vue.md +21 -5
  191. package/docs/it/packages/react-intlayer/MarkdownRenderer.md +1 -1
  192. package/docs/it/packages/svelte-intlayer/useRewriteURL.md +1 -1
  193. package/docs/it/releases/v8.md +27 -27
  194. package/docs/ja/dictionary/html.md +148 -27
  195. package/docs/ja/dictionary/markdown.md +139 -24
  196. package/docs/ja/intlayer_with_analog.md +2 -13
  197. package/docs/ja/intlayer_with_angular.md +1 -12
  198. package/docs/ja/intlayer_with_nextjs_14.md +1 -1
  199. package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
  200. package/docs/ja/intlayer_with_react_router_v7.md +6 -1
  201. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +6 -1
  202. package/docs/ja/intlayer_with_storybook.md +2 -5
  203. package/docs/ja/intlayer_with_vite+lit.md +747 -0
  204. package/docs/ja/intlayer_with_vite+solid.md +1 -1
  205. package/docs/ja/intlayer_with_vite+svelte.md +13 -6
  206. package/docs/ja/intlayer_with_vite+vanilla.md +722 -0
  207. package/docs/ja/intlayer_with_vite+vue.md +21 -5
  208. package/docs/ja/packages/react-intlayer/MarkdownRenderer.md +1 -1
  209. package/docs/ja/packages/svelte-intlayer/useRewriteURL.md +1 -1
  210. package/docs/ja/releases/v8.md +27 -27
  211. package/docs/ko/dictionary/html.md +149 -28
  212. package/docs/ko/dictionary/markdown.md +143 -25
  213. package/docs/ko/intlayer_with_analog.md +2 -13
  214. package/docs/ko/intlayer_with_angular.md +1 -12
  215. package/docs/ko/intlayer_with_nextjs_14.md +1 -1
  216. package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
  217. package/docs/ko/intlayer_with_react_router_v7.md +6 -1
  218. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +6 -1
  219. package/docs/ko/intlayer_with_storybook.md +2 -5
  220. package/docs/ko/intlayer_with_svelte_kit.md +9 -5
  221. package/docs/ko/intlayer_with_vite+lit.md +747 -0
  222. package/docs/ko/intlayer_with_vite+react.md +16 -4
  223. package/docs/ko/intlayer_with_vite+solid.md +1 -1
  224. package/docs/ko/intlayer_with_vite+svelte.md +13 -6
  225. package/docs/ko/intlayer_with_vite+vanilla.md +722 -0
  226. package/docs/ko/intlayer_with_vite+vue.md +21 -5
  227. package/docs/ko/packages/react-intlayer/MarkdownRenderer.md +1 -1
  228. package/docs/ko/packages/svelte-intlayer/useRewriteURL.md +1 -1
  229. package/docs/ko/releases/v8.md +27 -27
  230. package/docs/nl/intlayer_with_storybook.md +2 -5
  231. package/docs/nl/intlayer_with_vite+lit.md +738 -0
  232. package/docs/nl/intlayer_with_vite+vanilla.md +722 -0
  233. package/docs/pl/dictionary/html.md +146 -24
  234. package/docs/pl/dictionary/markdown.md +143 -25
  235. package/docs/pl/intlayer_with_analog.md +2 -13
  236. package/docs/pl/intlayer_with_angular.md +1 -12
  237. package/docs/pl/intlayer_with_nextjs_14.md +1 -1
  238. package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
  239. package/docs/pl/intlayer_with_react_router_v7.md +6 -1
  240. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +6 -1
  241. package/docs/pl/intlayer_with_storybook.md +2 -5
  242. package/docs/pl/intlayer_with_svelte_kit.md +9 -5
  243. package/docs/pl/intlayer_with_vite+lit.md +738 -0
  244. package/docs/pl/intlayer_with_vite+react.md +16 -4
  245. package/docs/pl/intlayer_with_vite+solid.md +1 -1
  246. package/docs/pl/intlayer_with_vite+svelte.md +13 -6
  247. package/docs/pl/intlayer_with_vite+vanilla.md +722 -0
  248. package/docs/pl/intlayer_with_vite+vue.md +16 -4
  249. package/docs/pl/packages/react-intlayer/MarkdownRenderer.md +1 -1
  250. package/docs/pl/packages/svelte-intlayer/useRewriteURL.md +1 -1
  251. package/docs/pl/releases/v8.md +27 -27
  252. package/docs/pt/dictionary/html.md +127 -24
  253. package/docs/pt/dictionary/markdown.md +143 -25
  254. package/docs/pt/intlayer_with_analog.md +2 -13
  255. package/docs/pt/intlayer_with_angular.md +1 -12
  256. package/docs/pt/intlayer_with_nextjs_14.md +1 -1
  257. package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
  258. package/docs/pt/intlayer_with_react_router_v7.md +6 -1
  259. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +6 -1
  260. package/docs/pt/intlayer_with_storybook.md +2 -5
  261. package/docs/pt/intlayer_with_svelte_kit.md +9 -5
  262. package/docs/pt/intlayer_with_vite+lit.md +747 -0
  263. package/docs/pt/intlayer_with_vite+react.md +16 -4
  264. package/docs/pt/intlayer_with_vite+solid.md +1 -1
  265. package/docs/pt/intlayer_with_vite+svelte.md +16 -6
  266. package/docs/pt/intlayer_with_vite+vanilla.md +722 -0
  267. package/docs/pt/intlayer_with_vite+vue.md +21 -5
  268. package/docs/pt/packages/react-intlayer/MarkdownRenderer.md +1 -1
  269. package/docs/pt/packages/svelte-intlayer/useRewriteURL.md +1 -1
  270. package/docs/pt/releases/v8.md +27 -27
  271. package/docs/ru/dictionary/html.md +148 -27
  272. package/docs/ru/dictionary/markdown.md +143 -23
  273. package/docs/ru/intlayer_with_analog.md +2 -13
  274. package/docs/ru/intlayer_with_angular.md +1 -12
  275. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  276. package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
  277. package/docs/ru/intlayer_with_react_router_v7.md +6 -1
  278. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +6 -1
  279. package/docs/ru/intlayer_with_storybook.md +2 -5
  280. package/docs/ru/intlayer_with_svelte_kit.md +9 -5
  281. package/docs/ru/intlayer_with_vite+lit.md +747 -0
  282. package/docs/ru/intlayer_with_vite+react.md +16 -4
  283. package/docs/ru/intlayer_with_vite+solid.md +1 -1
  284. package/docs/ru/intlayer_with_vite+svelte.md +13 -6
  285. package/docs/ru/intlayer_with_vite+vanilla.md +722 -0
  286. package/docs/ru/intlayer_with_vite+vue.md +21 -5
  287. package/docs/ru/packages/react-intlayer/MarkdownRenderer.md +1 -1
  288. package/docs/ru/packages/svelte-intlayer/useRewriteURL.md +1 -1
  289. package/docs/ru/releases/v8.md +27 -27
  290. package/docs/tr/dictionary/html.md +129 -27
  291. package/docs/tr/dictionary/markdown.md +143 -23
  292. package/docs/tr/intlayer_with_analog.md +2 -13
  293. package/docs/tr/intlayer_with_angular.md +1 -12
  294. package/docs/tr/intlayer_with_nextjs_14.md +1 -1
  295. package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
  296. package/docs/tr/intlayer_with_react_router_v7.md +6 -1
  297. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +6 -1
  298. package/docs/tr/intlayer_with_storybook.md +2 -5
  299. package/docs/tr/intlayer_with_svelte_kit.md +9 -5
  300. package/docs/tr/intlayer_with_vite+lit.md +738 -0
  301. package/docs/tr/intlayer_with_vite+react.md +16 -4
  302. package/docs/tr/intlayer_with_vite+solid.md +1 -1
  303. package/docs/tr/intlayer_with_vite+svelte.md +13 -6
  304. package/docs/tr/intlayer_with_vite+vanilla.md +722 -0
  305. package/docs/tr/intlayer_with_vite+vue.md +16 -4
  306. package/docs/tr/packages/react-intlayer/MarkdownRenderer.md +1 -1
  307. package/docs/tr/packages/svelte-intlayer/useRewriteURL.md +1 -1
  308. package/docs/tr/releases/v8.md +27 -27
  309. package/docs/uk/dictionary/html.md +22 -22
  310. package/docs/uk/dictionary/markdown.md +18 -18
  311. package/docs/uk/intlayer_with_analog.md +2 -13
  312. package/docs/uk/intlayer_with_angular.md +1 -12
  313. package/docs/uk/intlayer_with_nextjs_14.md +1 -1
  314. package/docs/uk/intlayer_with_nextjs_page_router.md +1 -1
  315. package/docs/uk/intlayer_with_react_router_v7.md +5 -1
  316. package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +6 -1
  317. package/docs/uk/intlayer_with_storybook.md +2 -5
  318. package/docs/uk/intlayer_with_svelte_kit.md +9 -5
  319. package/docs/uk/intlayer_with_vite+lit.md +738 -0
  320. package/docs/uk/intlayer_with_vite+react.md +16 -4
  321. package/docs/uk/intlayer_with_vite+solid.md +1 -1
  322. package/docs/uk/intlayer_with_vite+svelte.md +18 -6
  323. package/docs/uk/intlayer_with_vite+vanilla.md +722 -0
  324. package/docs/uk/intlayer_with_vite+vue.md +16 -4
  325. package/docs/uk/packages/react-intlayer/MarkdownRenderer.md +1 -1
  326. package/docs/uk/packages/svelte-intlayer/useRewriteURL.md +1 -1
  327. package/docs/uk/releases/v8.md +27 -27
  328. package/docs/ur/intlayer_with_storybook.md +2 -5
  329. package/docs/ur/intlayer_with_vite+lit.md +738 -0
  330. package/docs/ur/intlayer_with_vite+vanilla.md +722 -0
  331. package/docs/vi/dictionary/html.md +22 -22
  332. package/docs/vi/dictionary/markdown.md +18 -18
  333. package/docs/vi/intlayer_with_analog.md +2 -13
  334. package/docs/vi/intlayer_with_angular.md +1 -12
  335. package/docs/vi/intlayer_with_nextjs_14.md +1 -1
  336. package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
  337. package/docs/vi/intlayer_with_react_router_v7.md +6 -1
  338. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +6 -1
  339. package/docs/vi/intlayer_with_storybook.md +2 -5
  340. package/docs/vi/intlayer_with_svelte_kit.md +9 -5
  341. package/docs/vi/intlayer_with_vite+lit.md +738 -0
  342. package/docs/vi/intlayer_with_vite+react.md +16 -4
  343. package/docs/vi/intlayer_with_vite+solid.md +1 -1
  344. package/docs/vi/intlayer_with_vite+svelte.md +17 -5
  345. package/docs/vi/intlayer_with_vite+vanilla.md +722 -0
  346. package/docs/vi/intlayer_with_vite+vue.md +16 -4
  347. package/docs/vi/packages/react-intlayer/MarkdownRenderer.md +1 -1
  348. package/docs/vi/packages/svelte-intlayer/useRewriteURL.md +1 -1
  349. package/docs/vi/releases/v8.md +27 -27
  350. package/docs/zh/dictionary/html.md +148 -27
  351. package/docs/zh/dictionary/markdown.md +143 -21
  352. package/docs/zh/intlayer_with_analog.md +2 -13
  353. package/docs/zh/intlayer_with_angular.md +1 -12
  354. package/docs/zh/intlayer_with_nextjs_14.md +1 -1
  355. package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
  356. package/docs/zh/intlayer_with_react_router_v7.md +6 -1
  357. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +6 -1
  358. package/docs/zh/intlayer_with_storybook.md +2 -5
  359. package/docs/zh/intlayer_with_svelte_kit.md +9 -5
  360. package/docs/zh/intlayer_with_vite+lit.md +747 -0
  361. package/docs/zh/intlayer_with_vite+react.md +16 -4
  362. package/docs/zh/intlayer_with_vite+solid.md +1 -1
  363. package/docs/zh/intlayer_with_vite+svelte.md +16 -6
  364. package/docs/zh/intlayer_with_vite+vanilla.md +722 -0
  365. package/docs/zh/intlayer_with_vite+vue.md +16 -4
  366. package/docs/zh/packages/react-intlayer/MarkdownRenderer.md +1 -1
  367. package/docs/zh/packages/svelte-intlayer/useRewriteURL.md +1 -1
  368. package/docs/zh/releases/v8.md +27 -27
  369. package/package.json +6 -6
  370. package/src/generated/docs.entry.ts +40 -0
@@ -0,0 +1,747 @@
1
+ ---
2
+ createdAt: 2026-03-23
3
+ updatedAt: 2026-03-23
4
+ title: i18n Vite + Lit - Come tradurre un'app Lit nel 2026
5
+ description: Scopri come rendere multilingue il tuo sito web Vite e Lit. Segui la documentazione per internazionalizzarlo (i18n) e tradurlo.
6
+ keywords:
7
+ - Internazionalizzazione
8
+ - Documentazione
9
+ - Intlayer
10
+ - Vite
11
+ - Lit
12
+ - Web Components
13
+ - JavaScript
14
+ slugs:
15
+ - doc
16
+ - environment
17
+ - vite-and-lit
18
+ applicationTemplate: https://github.com/aymericzip/intlayer-vite-lit-template
19
+ history:
20
+ - version: 8.4.10
21
+ date: 2026-03-23
22
+ changes: "Init history"
23
+ ---
24
+
25
+ # Traduci il tuo sito web Vite e Lit usando Intlayer | Internazionalizzazione (i18n)
26
+
27
+ ## Sommario
28
+
29
+ <TOC/>
30
+
31
+ ## Cos'è Intlayer?
32
+
33
+ **Intlayer** è un'innovativa libreria di internazionalizzazione (i18n) open-source progettata per semplificare il supporto multilingue nelle moderne applicazioni web.
34
+
35
+ Con Intlayer, puoi:
36
+
37
+ - **Gestire facilmente le traduzioni** utilizzando dizionari dichiarativi a livello di componente.
38
+ - **Localizzare dinamicamente metadati**, rotte e contenuti.
39
+ - **Garantire il supporto TypeScript** con tipi autogenerati, migliorando l'autocompletamento e il rilevamento degli errori.
40
+ - **Beneficiare di funzionalità avanzate**, come il rilevamento e la commutazione dinamica della lingua.
41
+
42
+ ---
43
+
44
+ ## Guida passo-passo per configurare Intlayer in un'applicazione Vite e Lit
45
+
46
+ ### Passaggio 1: Installare le dipendenze
47
+
48
+ Installa i pacchetti necessari utilizzando npm:
49
+
50
+ ```bash packageManager="npm"
51
+ npm install intlayer lit-intlayer
52
+ npm install vite-intlayer --save-dev
53
+ npx intlayer init
54
+ ```
55
+
56
+ ```bash packageManager="pnpm"
57
+ pnpm add intlayer lit-intlayer
58
+ pnpm add vite-intlayer --save-dev
59
+ pnpm intlayer init
60
+ ```
61
+
62
+ ```bash packageManager="yarn"
63
+ yarn add intlayer lit-intlayer
64
+ yarn add vite-intlayer --save-dev
65
+ yarn intlayer init
66
+ ```
67
+
68
+ ```bash packageManager="bun"
69
+ bun add intlayer lit-intlayer
70
+ bun add vite-intlayer --dev
71
+ bunx intlayer init
72
+ ```
73
+
74
+ - **intlayer**
75
+
76
+ Il pacchetto principale che fornisce strumenti di internazionalizzazione per la gestione della configurazione, la traduzione, la [dichiarazione dei contenuti](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dictionary/content_file.md), la transpilazione e i [comandi CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/cli/index.md).
77
+
78
+ - **lit-intlayer**
79
+ Il pacchetto che integra Intlayer con le applicazioni Lit. Fornisce hook basati su `ReactiveController` (`useIntlayer`, `useLocale`, ecc.) in modo che i LitElement si ri-renderizzino automaticamente quando la lingua cambia.
80
+
81
+ - **vite-intlayer**
82
+ Include il plugin Vite per integrare Intlayer con il [bundler Vite](https://vite.dev/guide/why.html#why-bundle-for-production), oltre al middleware per rilevare la lingua preferita dell'utente, gestire i cookie e gestire il reindirizzamento degli URL.
83
+
84
+ ### Passaggio 2: Configurazione del progetto
85
+
86
+ Crea un file di configurazione per impostare le lingue della tua applicazione:
87
+
88
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
89
+ import { Locales, type IntlayerConfig } from "intlayer";
90
+
91
+ const config: IntlayerConfig = {
92
+ internationalization: {
93
+ locales: [
94
+ Locales.ENGLISH,
95
+ Locales.FRENCH,
96
+ Locales.SPANISH,
97
+ // Altre lingue
98
+ ],
99
+ defaultLocale: Locales.ENGLISH,
100
+ },
101
+ };
102
+
103
+ export default config;
104
+ ```
105
+
106
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
107
+ import { Locales } from "intlayer";
108
+
109
+ /** @type {import('intlayer').IntlayerConfig} */
110
+ const config = {
111
+ internationalization: {
112
+ locales: [
113
+ Locales.ENGLISH,
114
+ Locales.FRENCH,
115
+ Locales.SPANISH,
116
+ // Altre lingue
117
+ ],
118
+ defaultLocale: Locales.ENGLISH,
119
+ },
120
+ };
121
+
122
+ export default config;
123
+ ```
124
+
125
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
126
+ const { Locales } = require("intlayer");
127
+
128
+ /** @type {import('intlayer').IntlayerConfig} */
129
+ const config = {
130
+ internationalization: {
131
+ locales: [
132
+ Locales.ENGLISH,
133
+ Locales.FRENCH,
134
+ Locales.SPANISH,
135
+ // Altre lingue
136
+ ],
137
+ defaultLocale: Locales.ENGLISH,
138
+ },
139
+ };
140
+
141
+ module.exports = config;
142
+ ```
143
+
144
+ > Attraverso questo file di configurazione, puoi impostare URL localizzati, reindirizzamento middleware, nomi dei cookie, la posizione e l'estensione delle tue dichiarazioni di contenuto, disabilitare i log di Intlayer nella console e altro ancora. Per un elenco completo dei parametri disponibili, consulta la [documentazione sulla configurazione](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md).
145
+
146
+ ### Passaggio 3: Integrare Intlayer nella configurazione di Vite
147
+
148
+ Aggiungi il plugin intlayer nella tua configurazione.
149
+
150
+ ```typescript fileName="vite.config.ts" codeFormat="typescript"
151
+ import { defineConfig } from "vite";
152
+ import { intlayer } from "vite-intlayer";
153
+
154
+ // https://vitejs.dev/config/
155
+ export default defineConfig({
156
+ plugins: [intlayer()],
157
+ });
158
+ ```
159
+
160
+ ```javascript fileName="vite.config.mjs" codeFormat="esm"
161
+ import { defineConfig } from "vite";
162
+ import { intlayer } from "vite-intlayer";
163
+
164
+ // https://vitejs.dev/config/
165
+ export default defineConfig({
166
+ plugins: [intlayer()],
167
+ });
168
+ ```
169
+
170
+ ```javascript fileName="vite.config.cjs" codeFormat="commonjs"
171
+ const { defineConfig } = require("vite");
172
+ const { intlayer } = require("vite-intlayer");
173
+
174
+ // https://vitejs.dev/config/
175
+ module.exports = defineConfig({
176
+ plugins: [intlayer()],
177
+ });
178
+ ```
179
+
180
+ > Il plugin Vite `intlayer()` viene utilizzato per integrare Intlayer con Vite. Garantisce la creazione dei file di dichiarazione dei contenuti e li monitora in modalità di sviluppo. Definisce le variabili d'ambiente Intlayer all'interno dell'applicazione Vite. Inoltre, fornisce alias per ottimizzare le prestazioni.
181
+
182
+ ### Passaggio 4: Bootstrap di Intlayer nel tuo punto di ingresso
183
+
184
+ Chiama `installIntlayer()` **prima** che vengano registrati elementi personalizzati, in modo che il singleton globale della lingua sia pronto quando il primo elemento si connette.
185
+
186
+ ```typescript fileName="src/main.ts" codeFormat="typescript"
187
+ import { installIntlayer } from "lit-intlayer";
188
+
189
+ // Deve essere chiamato prima che qualsiasi LitElement sia connesso al DOM.
190
+ installIntlayer();
191
+
192
+ // Importa e registra i tuoi elementi personalizzati.
193
+ import "./my-element.js";
194
+ ```
195
+
196
+ Se utilizzi anche dichiarazioni di contenuto `md()` (Markdown), installa anche il renderer markdown:
197
+
198
+ ```typescript fileName="src/main.ts" codeFormat="typescript"
199
+ import { installIntlayer, installIntlayerMarkdown } from "lit-intlayer";
200
+
201
+ installIntlayer();
202
+ installIntlayerMarkdown();
203
+
204
+ import "./my-element.js";
205
+ ```
206
+
207
+ ### Passaggio 5: Dichiarare il contenuto
208
+
209
+ Crea e gestisci le tue dichiarazioni di contenuto per memorizzare le traduzioni:
210
+
211
+ ```typescript fileName="src/app.content.ts" contentDeclarationFormat="typescript"
212
+ import { t, type Dictionary } from "intlayer";
213
+
214
+ const appContent = {
215
+ key: "app",
216
+ content: {
217
+ title: "Vite + Lit",
218
+
219
+ viteLogo: t({
220
+ en: "Vite logo",
221
+ fr: "Logo Vite",
222
+ es: "Logo Vite",
223
+ }),
224
+ litLogo: t({
225
+ en: "Lit logo",
226
+ fr: "Logo Lit",
227
+ es: "Logo Lit",
228
+ }),
229
+
230
+ count: t({
231
+ en: "count is {{count}}",
232
+ fr: "le compte est {{count}}",
233
+ es: "el recuento es {{count}}",
234
+ }),
235
+
236
+ readTheDocs: t({
237
+ en: "Click on the Vite and Lit logos to learn more",
238
+ fr: "Cliquez sur les logos Vite et Lit pour en savoir plus",
239
+ es: "Haga clic en los logotipos de Vite y Lit para obtener más información",
240
+ }),
241
+ },
242
+ } satisfies Dictionary;
243
+
244
+ export default appContent;
245
+ ```
246
+
247
+ ```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
248
+ import { t } from "intlayer";
249
+
250
+ /** @type {import('intlayer').Dictionary} */
251
+ const appContent = {
252
+ key: "app",
253
+ content: {
254
+ title: "Vite + Lit",
255
+
256
+ viteLogo: t({
257
+ en: "Vite logo",
258
+ fr: "Logo Vite",
259
+ es: "Logo Vite",
260
+ }),
261
+ litLogo: t({
262
+ en: "Lit logo",
263
+ fr: "Logo Lit",
264
+ es: "Logo Lit",
265
+ }),
266
+
267
+ count: t({
268
+ en: "count is {{count}}",
269
+ fr: "le compte est {{count}}",
270
+ es: "el recuento es {{count}}",
271
+ }),
272
+
273
+ readTheDocs: t({
274
+ en: "Click on the Vite and Lit logos to learn more",
275
+ fr: "Cliquez sur les logos Vite et Lit pour en savoir plus",
276
+ es: "Haga clic en los logotipos de Vite y Lit para obtener más información",
277
+ }),
278
+ },
279
+ };
280
+
281
+ export default appContent;
282
+ ```
283
+
284
+ ```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
285
+ const { t } = require("intlayer");
286
+
287
+ /** @type {import('intlayer').Dictionary} */
288
+ const appContent = {
289
+ key: "app",
290
+ content: {
291
+ title: "Vite + Lit",
292
+
293
+ viteLogo: t({
294
+ en: "Vite logo",
295
+ fr: "Logo Vite",
296
+ es: "Logo Vite",
297
+ }),
298
+ litLogo: t({
299
+ en: "Lit logo",
300
+ fr: "Logo Lit",
301
+ es: "Logo Lit",
302
+ }),
303
+
304
+ count: t({
305
+ en: "count is {{count}}",
306
+ fr: "le compte est {{count}}",
307
+ es: "el recuento es {{count}}",
308
+ }),
309
+
310
+ readTheDocs: t({
311
+ en: "Click on the Vite and Lit logos to learn more",
312
+ fr: "Cliquez sur les logos Vite et Lit pour en savoir plus",
313
+ es: "Haga clic en los logotipos de Vite y Lit para obtener más información",
314
+ }),
315
+ },
316
+ };
317
+
318
+ module.exports = appContent;
319
+ ```
320
+
321
+ ```json fileName="src/app.content.json" contentDeclarationFormat="json"
322
+ {
323
+ "$schema": "https://intlayer.org/schema.json",
324
+ "key": "app",
325
+ "content": {
326
+ "title": "Vite + Lit",
327
+ "viteLogo": {
328
+ "nodeType": "translation",
329
+ "translation": {
330
+ "en": "Vite logo",
331
+ "fr": "Logo Vite",
332
+ "es": "Logo Vite"
333
+ }
334
+ },
335
+ "litLogo": {
336
+ "nodeType": "translation",
337
+ "translation": {
338
+ "en": "Lit logo",
339
+ "fr": "Logo Lit",
340
+ "es": "Logo Lit"
341
+ }
342
+ },
343
+ "count": {
344
+ "nodeType": "translation",
345
+ "translation": {
346
+ "en": "count is {{count}}",
347
+ "fr": "le compte est {{count}}",
348
+ "es": "el recuento es {{count}}"
349
+ }
350
+ },
351
+ "readTheDocs": {
352
+ "nodeType": "translation",
353
+ "translation": {
354
+ "en": "Click on the Vite and Lit logos to learn more",
355
+ "fr": "Cliquez sur les logos Vite et Lit pour en savoir plus",
356
+ "es": "Haga clic en los logotipos de Vite y Lit para obtener más información"
357
+ }
358
+ }
359
+ }
360
+ }
361
+ ```
362
+
363
+ > Le dichiarazioni di contenuto possono essere definite ovunque nell'applicazione, purché siano incluse nella cartella `contentDir` (per impostazione predefinita, `./src`) e corrispondano all'estensione del file di dichiarazione del contenuto (per impostazione predefinita, `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
364
+ >
365
+ > Per ulteriori dettagli, consulta la [documentazione sulla dichiarazione dei contenuti](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dictionary/content_file.md).
366
+
367
+ ### Passaggio 6: Utilizzare Intlayer nel tuo LitElement
368
+
369
+ Usa `useIntlayer` all'interno di un `LitElement`. Restituisce un proxy `ReactiveController` che attiva automaticamente i re-render ogni volta che la lingua attiva cambia: non è richiesta alcuna configurazione aggiuntiva.
370
+
371
+ ```typescript fileName="src/my-element.ts" codeFormat="typescript"
372
+ import { LitElement, html } from "lit";
373
+ import { customElement, property } from "lit/decorators.js";
374
+ import { useIntlayer } from "lit-intlayer";
375
+
376
+ @customElement("my-element")
377
+ export class MyElement extends LitElement {
378
+ @property({ type: Number })
379
+ count = 0;
380
+
381
+ // useIntlayer si registra come ReactiveController.
382
+ // L'elemento si ri-renderizza automaticamente quando la lingua cambia.
383
+ private content = useIntlayer(this, "app");
384
+
385
+ override render() {
386
+ const { content } = this;
387
+
388
+ return html`
389
+ <h1>${content.title}</h1>
390
+
391
+ <img src="/vite.svg" alt=${content.viteLogo.value} />
392
+ <img src="/lit.svg" alt=${content.litLogo.value} />
393
+
394
+ <button @click=${() => this.count++}>
395
+ ${content.count({ count: this.count })}
396
+ </button>
397
+
398
+ <p>${content.readTheDocs}</p>
399
+ `;
400
+ }
401
+ }
402
+ ```
403
+
404
+ > [!NOTE]
405
+ > Quando hai bisogno della stringa tradotta in un attributo HTML nativo (es. `alt`, `aria-label`, `title`), chiama `.value` sul nodo foglia:
406
+ >
407
+ > ```typescript
408
+ > html`<img alt=${content.viteLogo.value} />`;
409
+ > ```
410
+
411
+ ### (Opzionale) Passaggio 7: Cambiare la lingua del contenuto
412
+
413
+ Per cambiare la lingua del contenuto, usa il metodo `setLocale` esposto dal controller `useLocale`.
414
+
415
+ ```typescript fileName="src/locale-switcher.ts" codeFormat="typescript"
416
+ import { LitElement, html } from "lit";
417
+ import { customElement } from "lit/decorators.js";
418
+ import { getLocaleName } from "intlayer";
419
+ import { useLocale } from "lit-intlayer";
420
+
421
+ @customElement("locale-switcher")
422
+ export class LocaleSwitcher extends LitElement {
423
+ private locale = useLocale(this);
424
+
425
+ private _onChange(e: Event) {
426
+ const select = e.target as HTMLSelectElement;
427
+ this.locale.setLocale(select.value as any);
428
+ }
429
+
430
+ override render() {
431
+ return html`
432
+ <select @change=${this._onChange}>
433
+ ${this.locale.availableLocales.map(
434
+ (loc) => html`
435
+ <option value=${loc} ?selected=${loc === this.locale.locale}>
436
+ ${getLocaleName(loc)}
437
+ </option>
438
+ `
439
+ )}
440
+ </select>
441
+ `;
442
+ }
443
+ }
444
+ ```
445
+
446
+ ### (Opzionale) Passaggio 8: Renderizzare contenuti Markdown e HTML
447
+
448
+ Intlayer supporta le dichiarazioni di contenuto `md()` e `html()`. In Lit, l'output compilato viene iniettato come HTML grezzo tramite la direttiva `unsafeHTML`.
449
+
450
+ ```typescript fileName="src/app.content.ts" contentDeclarationFormat="typescript"
451
+ import { md, t, type Dictionary } from "intlayer";
452
+
453
+ const appContent = {
454
+ key: "app",
455
+ content: {
456
+ // ...
457
+ editNote: md(
458
+ t({
459
+ en: "Edit `src/my-element.ts` and save to test **HMR**",
460
+ fr: "Modifiez `src/my-element.ts` et enregistrez pour tester **HMR**",
461
+ es: "Edite `src/my-element.ts` y guarde para probar **HMR**",
462
+ })
463
+ ),
464
+ },
465
+ } satisfies Dictionary;
466
+
467
+ export default appContent;
468
+ ```
469
+
470
+ Renderizza l'HTML compilato nel tuo elemento:
471
+
472
+ ```typescript fileName="src/my-element.ts" codeFormat="typescript"
473
+ import { LitElement, html } from "lit";
474
+ import { customElement } from "lit/decorators.js";
475
+ import { unsafeHTML } from "lit/directives/unsafe-html.js";
476
+ import { useIntlayer } from "lit-intlayer";
477
+ import { compileMarkdown } from "lit-intlayer/markdown";
478
+
479
+ @customElement("my-element")
480
+ export class MyElement extends LitElement {
481
+ private content = useIntlayer(this, "app");
482
+
483
+ override render() {
484
+ return html`
485
+ <div class="edit-note">
486
+ ${unsafeHTML(compileMarkdown(String(this.content.editNote)))}
487
+ </div>
488
+ `;
489
+ }
490
+ }
491
+ ```
492
+
493
+ > [!TIP]
494
+ > `String(content.editNote)` chiama `toString()` sull'`IntlayerNode`, che restituisce la stringa Markdown grezza. Passala a `compileMarkdown` per ottenere una stringa HTML, quindi caricala con la direttiva `unsafeHTML` di Lit.
495
+
496
+ ### (Opzionale) Passaggio 9: Aggiungere il routing localizzato alla tua applicazione
497
+
498
+ Per creare rotte uniche per ogni lingua (utile per la SEO), puoi utilizzare un router lato client insieme agli helper `localeMap` / `localeFlatMap` di Intlayer e al plugin Vite `intlayerProxy` per il rilevamento della lingua lato server.
499
+
500
+ Innanzitutto, aggiungi `intlayerProxy` alla tua configurazione Vite:
501
+
502
+ > Nota che per utilizzare `intlayerProxy` in produzione, devi spostare `vite-intlayer` da `devDependencies` a `dependencies`.
503
+
504
+ ```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
505
+ import { defineConfig } from "vite";
506
+ import { intlayer, intlayerProxy } from "vite-intlayer";
507
+
508
+ export default defineConfig({
509
+ plugins: [
510
+ intlayerProxy(), // should be placed first
511
+ intlayer(),
512
+ ],
513
+ });
514
+ ```
515
+
516
+ ```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
517
+ import { defineConfig } from "vite";
518
+ import { intlayer, intlayerProxy } from "vite-intlayer";
519
+
520
+ export default defineConfig({
521
+ plugins: [
522
+ intlayerProxy(), // should be placed first
523
+ intlayer(),
524
+ ],
525
+ });
526
+ ```
527
+
528
+ ```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
529
+ const { defineConfig } = require("vite");
530
+ const { intlayer, intlayerProxy } = require("vite-intlayer");
531
+
532
+ module.exports = defineConfig({
533
+ plugins: [
534
+ intlayerProxy(), // should be placed first
535
+ intlayer(),
536
+ ],
537
+ });
538
+ ```
539
+
540
+ ### (Opzionale) Passaggio 10: Cambiare l'URL quando la lingua cambia
541
+
542
+ Per aggiornare l'URL del browser quando la lingua cambia, utilizza `useRewriteURL` insieme al selettore di lingua:
543
+
544
+ ```typescript fileName="src/locale-switcher.ts" codeFormat="typescript"
545
+ import { LitElement, html } from "lit";
546
+ import { customElement } from "lit/decorators.js";
547
+ import { getLocaleName, getLocalizedUrl } from "intlayer";
548
+ import { useLocale, useRewriteURL } from "lit-intlayer";
549
+
550
+ @customElement("locale-switcher")
551
+ export class LocaleSwitcher extends LitElement {
552
+ private locale = useLocale(this);
553
+
554
+ // Riscrive automaticamente l'URL corrente quando la lingua cambia.
555
+ private _rewriteURL = useRewriteURL(this);
556
+
557
+ private _onChange(e: Event) {
558
+ const select = e.target as HTMLSelectElement;
559
+ this.locale.setLocale(select.value as any);
560
+ }
561
+
562
+ override render() {
563
+ return html`
564
+ <select @change=${this._onChange}>
565
+ ${this.locale.availableLocales.map(
566
+ (loc) => html`
567
+ <option value=${loc} ?selected=${loc === this.locale.locale}>
568
+ ${getLocaleName(loc)}
569
+ </option>
570
+ `
571
+ )}
572
+ </select>
573
+ `;
574
+ }
575
+ }
576
+ ```
577
+
578
+ ### (Opzionale) Passaggio 11: Commutare gli attributi di lingua e direzione HTML
579
+
580
+ Aggiorna gli attributi `lang` e `dir` del tag `<html>` per farli corrispondere alla lingua corrente per l'accessibilità e la SEO.
581
+
582
+ ```typescript fileName="src/my-element.ts" codeFormat="typescript"
583
+ import { LitElement, html } from "lit";
584
+ import { customElement } from "lit/decorators.js";
585
+ import { getHTMLTextDir } from "intlayer";
586
+ import { useLocale } from "lit-intlayer";
587
+
588
+ @customElement("my-element")
589
+ export class MyElement extends LitElement {
590
+ private locale = useLocale(this, {
591
+ onLocaleChange: (loc) => {
592
+ document.documentElement.lang = loc;
593
+ document.documentElement.dir = getHTMLTextDir(loc);
594
+ },
595
+ });
596
+
597
+ override render() {
598
+ return html`<!-- il tuo contenuto -->`;
599
+ }
600
+ }
601
+ ```
602
+
603
+ ### (Opzionale) Passaggio 12: Estrarre il contenuto dei tuoi componenti
604
+
605
+ Se hai una base di codice esistente, trasformare migliaia di file può richiedere molto tempo.
606
+
607
+ 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.
608
+
609
+ Per configurarlo, puoi aggiungere una sezione `compiler` nel tuo file `intlayer.config.ts`:
610
+
611
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
612
+ import { type IntlayerConfig } from "intlayer";
613
+
614
+ const config: IntlayerConfig = {
615
+ // ... Resto della tua configurazione
616
+ compiler: {
617
+ /**
618
+ * Indica se il compilatore deve essere abilitato.
619
+ */
620
+ enabled: true,
621
+
622
+ /**
623
+ * Definisce il percorso dei file di output
624
+ */
625
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
626
+
627
+ /**
628
+ * Indica se i componenti devono essere salvati dopo essere stati trasformati.
629
+ * In questo modo, il compilatore può essere eseguito una sola volta per trasformare l'app e poi può essere rimosso.
630
+ */
631
+ saveComponents: false,
632
+
633
+ /**
634
+ * Prefisso della chiave del dizionario
635
+ */
636
+ dictionaryKeyPrefix: "",
637
+ },
638
+ };
639
+
640
+ export default config;
641
+ ```
642
+
643
+ <Tabs>
644
+ <Tab value='Comando Extract'>
645
+
646
+ Esegui l'estrattore per trasformare i tuoi componenti ed estrarre il contenuto
647
+
648
+ ```bash packageManager="npm"
649
+ npx intlayer extract
650
+ ```
651
+
652
+ ```bash packageManager="pnpm"
653
+ pnpm intlayer extract
654
+ ```
655
+
656
+ ```bash packageManager="yarn"
657
+ yarn intlayer extract
658
+ ```
659
+
660
+ ```bash packageManager="bun"
661
+ bunx intlayer extract
662
+ ```
663
+
664
+ </Tab>
665
+ <Tab value='Compilatore Babel'>
666
+
667
+ Aggiorna il tuo `vite.config.ts` per includere il plugin `intlayerCompiler`:
668
+
669
+ ```ts fileName="vite.config.ts"
670
+ import { defineConfig } from "vite";
671
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
672
+
673
+ export default defineConfig({
674
+ plugins: [
675
+ intlayer(),
676
+ intlayerCompiler(), // Aggiunge il plugin del compilatore
677
+ ],
678
+ });
679
+ ```
680
+
681
+ ```bash packageManager="npm"
682
+ npm run build # O npm run dev
683
+ ```
684
+
685
+ ```bash packageManager="pnpm"
686
+ pnpm run build # O pnpm run dev
687
+ ```
688
+
689
+ ```bash packageManager="yarn"
690
+ yarn build # O yarn dev
691
+ ```
692
+
693
+ ```bash packageManager="bun"
694
+ bun run build # O bun run dev
695
+ ```
696
+
697
+ </Tab>
698
+ </Tabs>
699
+
700
+ ### Configurare TypeScript
701
+
702
+ Assicurati che la tua configurazione TypeScript includa i tipi autogenerati.
703
+
704
+ ```json5 fileName="tsconfig.json"
705
+ {
706
+ "compilerOptions": {
707
+ // ...
708
+ "experimentalDecorators": true,
709
+ "useDefineForClassFields": false,
710
+ },
711
+ "include": ["src", ".intlayer/**/*.ts"],
712
+ }
713
+ ```
714
+
715
+ > `experimentalDecorators` e `useDefineForClassFields: false` sono richiesti da Lit per il supporto dei decoratori.
716
+
717
+ ### Configurazione Git
718
+
719
+ Si consiglia di ignorare i file generati da Intlayer. Ciò consente di evitare di caricarli nel repository Git.
720
+
721
+ Per farlo, puoi aggiungere le seguenti istruzioni al tuo file `.gitignore`:
722
+
723
+ ```bash
724
+ # Ignora i file generati da Intlayer
725
+ .intlayer
726
+ ```
727
+
728
+ ### Estensione VS Code
729
+
730
+ Per migliorare la tua esperienza di sviluppo con Intlayer, puoi installare l'**estensione ufficiale Intlayer per VS Code**.
731
+
732
+ [Installa dal VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
733
+
734
+ Questa estensione fornisce:
735
+
736
+ - **Autocompletamento** per le chiavi di traduzione.
737
+ - **Rilevamento degli errori in tempo reale** per le traduzioni mancanti.
738
+ - **Anteprime inline** del contenuto tradotto.
739
+ - **Azioni rapide** per creare e aggiornare facilmente le traduzioni.
740
+
741
+ Per maggiori dettagli su come utilizzare l'estensione, consulta la [documentazione dell'estensione Intlayer per VS Code](https://intlayer.org/doc/vs-code-extension).
742
+
743
+ ---
744
+
745
+ ### Vai oltre
746
+
747
+ Per approfondire, puoi implementare l'[editor visuale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_visual_editor.md) o esternalizzare i tuoi contenuti utilizzando il [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_CMS.md).