@intlayer/docs 8.5.0 → 8.5.2

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 (777) hide show
  1. package/blog/ar/intlayer_with_i18next.md +1 -1
  2. package/blog/ar/intlayer_with_next-i18next.md +1 -1
  3. package/blog/ar/intlayer_with_next-intl.md +1 -1
  4. package/blog/ar/intlayer_with_react-i18next.md +1 -1
  5. package/blog/ar/intlayer_with_react-intl.md +1 -1
  6. package/blog/ar/intlayer_with_vue-i18n.md +1 -1
  7. package/blog/de/intlayer_with_i18next.md +1 -1
  8. package/blog/de/intlayer_with_next-i18next.md +1 -1
  9. package/blog/de/intlayer_with_next-intl.md +1 -1
  10. package/blog/de/intlayer_with_react-i18next.md +1 -1
  11. package/blog/de/intlayer_with_react-intl.md +1 -1
  12. package/blog/de/intlayer_with_vue-i18n.md +1 -1
  13. package/blog/en/intlayer_with_i18next.md +1 -1
  14. package/blog/en/intlayer_with_next-i18next.md +1 -1
  15. package/blog/en/intlayer_with_next-intl.md +1 -1
  16. package/blog/en/intlayer_with_react-i18next.md +1 -1
  17. package/blog/en/intlayer_with_react-intl.md +1 -1
  18. package/blog/en/intlayer_with_vue-i18n.md +1 -1
  19. package/blog/en-GB/intlayer_with_i18next.md +1 -1
  20. package/blog/en-GB/intlayer_with_next-i18next.md +1 -1
  21. package/blog/en-GB/intlayer_with_next-intl.md +1 -1
  22. package/blog/en-GB/intlayer_with_react-i18next.md +1 -1
  23. package/blog/en-GB/intlayer_with_react-intl.md +1 -1
  24. package/blog/en-GB/intlayer_with_vue-i18n.md +1 -1
  25. package/blog/es/intlayer_with_i18next.md +1 -1
  26. package/blog/es/intlayer_with_next-i18next.md +1 -1
  27. package/blog/es/intlayer_with_next-intl.md +1 -1
  28. package/blog/es/intlayer_with_react-i18next.md +1 -1
  29. package/blog/es/intlayer_with_react-intl.md +1 -1
  30. package/blog/es/intlayer_with_vue-i18n.md +1 -1
  31. package/blog/fr/intlayer_with_i18next.md +1 -1
  32. package/blog/fr/intlayer_with_next-i18next.md +1 -1
  33. package/blog/fr/intlayer_with_next-intl.md +1 -1
  34. package/blog/fr/intlayer_with_react-i18next.md +1 -1
  35. package/blog/fr/intlayer_with_react-intl.md +1 -1
  36. package/blog/fr/intlayer_with_vue-i18n.md +1 -1
  37. package/blog/hi/intlayer_with_i18next.md +1 -1
  38. package/blog/hi/intlayer_with_next-i18next.md +1 -1
  39. package/blog/hi/intlayer_with_next-intl.md +1 -1
  40. package/blog/hi/intlayer_with_react-i18next.md +1 -1
  41. package/blog/hi/intlayer_with_react-intl.md +1 -1
  42. package/blog/hi/intlayer_with_vue-i18n.md +1 -1
  43. package/blog/id/intlayer_with_i18next.md +1 -1
  44. package/blog/id/intlayer_with_next-i18next.md +1 -1
  45. package/blog/id/intlayer_with_next-intl.md +1 -1
  46. package/blog/id/intlayer_with_react-i18next.md +1 -1
  47. package/blog/id/intlayer_with_react-intl.md +1 -1
  48. package/blog/id/intlayer_with_vue-i18n.md +1 -1
  49. package/blog/it/intlayer_with_i18next.md +1 -1
  50. package/blog/it/intlayer_with_next-i18next.md +1 -1
  51. package/blog/it/intlayer_with_next-intl.md +1 -1
  52. package/blog/it/intlayer_with_react-i18next.md +1 -1
  53. package/blog/it/intlayer_with_react-intl.md +1 -1
  54. package/blog/it/intlayer_with_vue-i18n.md +1 -1
  55. package/blog/ja/intlayer_with_i18next.md +1 -1
  56. package/blog/ja/intlayer_with_next-i18next.md +1 -1
  57. package/blog/ja/intlayer_with_next-intl.md +1 -1
  58. package/blog/ja/intlayer_with_react-i18next.md +1 -1
  59. package/blog/ja/intlayer_with_react-intl.md +1 -1
  60. package/blog/ja/intlayer_with_vue-i18n.md +1 -1
  61. package/blog/ko/intlayer_with_i18next.md +1 -1
  62. package/blog/ko/intlayer_with_next-i18next.md +1 -1
  63. package/blog/ko/intlayer_with_next-intl.md +1 -1
  64. package/blog/ko/intlayer_with_react-i18next.md +1 -1
  65. package/blog/ko/intlayer_with_react-intl.md +1 -1
  66. package/blog/ko/intlayer_with_vue-i18n.md +1 -1
  67. package/blog/pl/intlayer_with_i18next.md +1 -1
  68. package/blog/pl/intlayer_with_next-i18next.md +1 -1
  69. package/blog/pl/intlayer_with_next-intl.md +1 -1
  70. package/blog/pl/intlayer_with_react-i18next.md +1 -1
  71. package/blog/pl/intlayer_with_react-intl.md +1 -1
  72. package/blog/pl/intlayer_with_vue-i18n.md +1 -1
  73. package/blog/pt/intlayer_with_i18next.md +1 -1
  74. package/blog/pt/intlayer_with_next-i18next.md +1 -1
  75. package/blog/pt/intlayer_with_next-intl.md +1 -1
  76. package/blog/pt/intlayer_with_react-i18next.md +1 -1
  77. package/blog/pt/intlayer_with_react-intl.md +1 -1
  78. package/blog/pt/intlayer_with_vue-i18n.md +1 -1
  79. package/blog/ru/intlayer_with_i18next.md +1 -1
  80. package/blog/ru/intlayer_with_next-i18next.md +1 -1
  81. package/blog/ru/intlayer_with_next-intl.md +1 -1
  82. package/blog/ru/intlayer_with_react-i18next.md +1 -1
  83. package/blog/ru/intlayer_with_react-intl.md +1 -1
  84. package/blog/ru/intlayer_with_vue-i18n.md +1 -1
  85. package/blog/tr/intlayer_with_i18next.md +1 -1
  86. package/blog/tr/intlayer_with_next-i18next.md +1 -1
  87. package/blog/tr/intlayer_with_next-intl.md +1 -1
  88. package/blog/tr/intlayer_with_react-i18next.md +1 -1
  89. package/blog/tr/intlayer_with_react-intl.md +1 -1
  90. package/blog/tr/intlayer_with_vue-i18n.md +1 -1
  91. package/blog/uk/intlayer_with_i18next.md +1 -1
  92. package/blog/uk/intlayer_with_next-i18next.md +1 -1
  93. package/blog/uk/intlayer_with_next-intl.md +1 -1
  94. package/blog/uk/intlayer_with_react-i18next.md +1 -1
  95. package/blog/uk/intlayer_with_react-intl.md +1 -1
  96. package/blog/uk/intlayer_with_vue-i18n.md +1 -1
  97. package/blog/vi/intlayer_with_i18next.md +1 -1
  98. package/blog/vi/intlayer_with_next-i18next.md +1 -1
  99. package/blog/vi/intlayer_with_next-intl.md +1 -1
  100. package/blog/vi/intlayer_with_react-i18next.md +1 -1
  101. package/blog/vi/intlayer_with_react-intl.md +1 -1
  102. package/blog/vi/intlayer_with_vue-i18n.md +1 -1
  103. package/blog/zh/intlayer_with_i18next.md +1 -1
  104. package/blog/zh/intlayer_with_next-i18next.md +1 -1
  105. package/blog/zh/intlayer_with_next-intl.md +1 -1
  106. package/blog/zh/intlayer_with_react-i18next.md +1 -1
  107. package/blog/zh/intlayer_with_react-intl.md +1 -1
  108. package/blog/zh/intlayer_with_vue-i18n.md +1 -1
  109. package/dist/cjs/generated/docs.entry.cjs +20 -0
  110. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  111. package/dist/esm/generated/docs.entry.mjs +20 -0
  112. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  113. package/dist/types/generated/docs.entry.d.ts +1 -0
  114. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  115. package/docs/ar/dictionary/html.md +10 -3
  116. package/docs/ar/dictionary/markdown.md +15 -17
  117. package/docs/ar/intlayer_CMS.md +1 -1
  118. package/docs/ar/intlayer_with_adonisjs.md +1 -1
  119. package/docs/ar/intlayer_with_analog.md +9 -15
  120. package/docs/ar/intlayer_with_angular.md +1 -1
  121. package/docs/ar/intlayer_with_create_react_app.md +1 -1
  122. package/docs/ar/intlayer_with_express.md +1 -1
  123. package/docs/ar/intlayer_with_fastify.md +1 -1
  124. package/docs/ar/intlayer_with_hono.md +1 -1
  125. package/docs/ar/intlayer_with_lynx+react.md +1 -1
  126. package/docs/ar/intlayer_with_nestjs.md +1 -1
  127. package/docs/ar/intlayer_with_next-i18next.md +1 -1
  128. package/docs/ar/intlayer_with_next-intl.md +1 -1
  129. package/docs/ar/intlayer_with_nextjs_14.md +1 -1
  130. package/docs/ar/intlayer_with_nextjs_15.md +1 -1
  131. package/docs/ar/intlayer_with_nextjs_16.md +2 -2
  132. package/docs/ar/intlayer_with_nextjs_compiler.md +2 -2
  133. package/docs/ar/intlayer_with_nextjs_no_locale_path.md +1 -1
  134. package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
  135. package/docs/ar/intlayer_with_nuxt.md +1 -1
  136. package/docs/ar/intlayer_with_react_native+expo.md +1 -1
  137. package/docs/ar/intlayer_with_react_router_v7.md +2 -2
  138. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +2 -2
  139. package/docs/ar/intlayer_with_svelte_kit.md +3 -3
  140. package/docs/ar/intlayer_with_tanstack+solid.md +911 -0
  141. package/docs/ar/intlayer_with_tanstack.md +2 -2
  142. package/docs/ar/intlayer_with_vite+lit.md +9 -58
  143. package/docs/ar/intlayer_with_vite+preact.md +2 -2
  144. package/docs/ar/intlayer_with_vite+react.md +2 -2
  145. package/docs/ar/intlayer_with_vite+react_compiler.md +1 -1
  146. package/docs/ar/intlayer_with_vite+solid.md +2 -2
  147. package/docs/ar/intlayer_with_vite+svelte.md +2 -2
  148. package/docs/ar/intlayer_with_vite+vanilla.md +2 -2
  149. package/docs/ar/intlayer_with_vite+vue.md +5 -5
  150. package/docs/bn/intlayer_with_fastify.md +1 -1
  151. package/docs/bn/intlayer_with_hono.md +1 -1
  152. package/docs/bn/intlayer_with_vite+lit.md +9 -58
  153. package/docs/bn/intlayer_with_vite+vanilla.md +2 -2
  154. package/docs/cs/intlayer_with_fastify.md +1 -1
  155. package/docs/cs/intlayer_with_hono.md +1 -1
  156. package/docs/cs/intlayer_with_vite+lit.md +9 -58
  157. package/docs/cs/intlayer_with_vite+vanilla.md +2 -2
  158. package/docs/de/compiler.md +6 -1
  159. package/docs/de/configuration.md +12 -9
  160. package/docs/de/dictionary/html.md +11 -8
  161. package/docs/de/dictionary/markdown.md +17 -23
  162. package/docs/de/intlayer_CMS.md +1 -1
  163. package/docs/de/intlayer_with_adonisjs.md +1 -1
  164. package/docs/de/intlayer_with_analog.md +9 -15
  165. package/docs/de/intlayer_with_angular.md +1 -1
  166. package/docs/de/intlayer_with_create_react_app.md +1 -1
  167. package/docs/de/intlayer_with_express.md +1 -1
  168. package/docs/de/intlayer_with_fastify.md +1 -1
  169. package/docs/de/intlayer_with_hono.md +1 -1
  170. package/docs/de/intlayer_with_lynx+react.md +1 -1
  171. package/docs/de/intlayer_with_nestjs.md +1 -1
  172. package/docs/de/intlayer_with_next-i18next.md +1 -1
  173. package/docs/de/intlayer_with_next-intl.md +1 -1
  174. package/docs/de/intlayer_with_nextjs_14.md +1 -1
  175. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  176. package/docs/de/intlayer_with_nextjs_16.md +2 -2
  177. package/docs/de/intlayer_with_nextjs_compiler.md +1 -1
  178. package/docs/de/intlayer_with_nextjs_no_locale_path.md +1 -1
  179. package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
  180. package/docs/de/intlayer_with_nuxt.md +1 -1
  181. package/docs/de/intlayer_with_react_router_v7.md +2 -2
  182. package/docs/de/intlayer_with_react_router_v7_fs_routes.md +1 -1
  183. package/docs/de/intlayer_with_svelte_kit.md +3 -3
  184. package/docs/de/intlayer_with_tanstack+solid.md +911 -0
  185. package/docs/de/intlayer_with_tanstack.md +2 -2
  186. package/docs/de/intlayer_with_vite+lit.md +9 -58
  187. package/docs/de/intlayer_with_vite+preact.md +2 -2
  188. package/docs/de/intlayer_with_vite+react.md +2 -2
  189. package/docs/de/intlayer_with_vite+react_compiler.md +1 -1
  190. package/docs/de/intlayer_with_vite+solid.md +2 -2
  191. package/docs/de/intlayer_with_vite+svelte.md +2 -2
  192. package/docs/de/intlayer_with_vite+vanilla.md +2 -2
  193. package/docs/de/intlayer_with_vite+vue.md +5 -5
  194. package/docs/en/compiler.md +2 -0
  195. package/docs/en/configuration.md +8 -8
  196. package/docs/en/dictionary/html.md +12 -9
  197. package/docs/en/dictionary/markdown.md +18 -24
  198. package/docs/en/intlayer_CMS.md +1 -1
  199. package/docs/en/intlayer_with_adonisjs.md +1 -1
  200. package/docs/en/intlayer_with_analog.md +9 -15
  201. package/docs/en/intlayer_with_angular.md +1 -1
  202. package/docs/en/intlayer_with_create_react_app.md +1 -1
  203. package/docs/en/intlayer_with_express.md +1 -1
  204. package/docs/en/intlayer_with_fastify.md +1 -1
  205. package/docs/en/intlayer_with_hono.md +1 -1
  206. package/docs/en/intlayer_with_lynx+react.md +1 -1
  207. package/docs/en/intlayer_with_nestjs.md +1 -1
  208. package/docs/en/intlayer_with_next-i18next.md +1 -1
  209. package/docs/en/intlayer_with_next-intl.md +1 -1
  210. package/docs/en/intlayer_with_nextjs_14.md +1 -1
  211. package/docs/en/intlayer_with_nextjs_15.md +1 -1
  212. package/docs/en/intlayer_with_nextjs_16.md +2 -2
  213. package/docs/en/intlayer_with_nextjs_compiler.md +2 -2
  214. package/docs/en/intlayer_with_nextjs_no_locale_path.md +1 -1
  215. package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
  216. package/docs/en/intlayer_with_nuxt.md +1 -1
  217. package/docs/en/intlayer_with_react_native+expo.md +1 -1
  218. package/docs/en/intlayer_with_react_router_v7.md +2 -2
  219. package/docs/en/intlayer_with_react_router_v7_fs_routes.md +2 -2
  220. package/docs/en/intlayer_with_svelte_kit.md +2 -2
  221. package/docs/en/intlayer_with_tanstack+solid.md +911 -0
  222. package/docs/en/intlayer_with_tanstack.md +2 -2
  223. package/docs/en/intlayer_with_vite+lit.md +11 -58
  224. package/docs/en/intlayer_with_vite+preact.md +2 -2
  225. package/docs/en/intlayer_with_vite+react.md +2 -2
  226. package/docs/en/intlayer_with_vite+react_compiler.md +1 -1
  227. package/docs/en/intlayer_with_vite+solid.md +2 -2
  228. package/docs/en/intlayer_with_vite+svelte.md +2 -2
  229. package/docs/en/intlayer_with_vite+vanilla.md +2 -2
  230. package/docs/en/intlayer_with_vite+vue.md +15 -5
  231. package/docs/en-GB/dictionary/html.md +10 -3
  232. package/docs/en-GB/dictionary/markdown.md +16 -18
  233. package/docs/en-GB/intlayer_CMS.md +1 -1
  234. package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
  235. package/docs/en-GB/intlayer_with_analog.md +9 -15
  236. package/docs/en-GB/intlayer_with_angular.md +1 -1
  237. package/docs/en-GB/intlayer_with_create_react_app.md +2 -2
  238. package/docs/en-GB/intlayer_with_express.md +1 -1
  239. package/docs/en-GB/intlayer_with_fastify.md +1 -1
  240. package/docs/en-GB/intlayer_with_hono.md +1 -1
  241. package/docs/en-GB/intlayer_with_lynx+react.md +2 -2
  242. package/docs/en-GB/intlayer_with_nestjs.md +1 -1
  243. package/docs/en-GB/intlayer_with_next-i18next.md +1 -1
  244. package/docs/en-GB/intlayer_with_next-intl.md +1 -1
  245. package/docs/en-GB/intlayer_with_nextjs_14.md +1 -1
  246. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
  247. package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
  248. package/docs/en-GB/intlayer_with_nextjs_compiler.md +1 -1
  249. package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +1 -1
  250. package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
  251. package/docs/en-GB/intlayer_with_nuxt.md +1 -1
  252. package/docs/en-GB/intlayer_with_react_native+expo.md +1 -1
  253. package/docs/en-GB/intlayer_with_react_router_v7.md +1 -1
  254. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +1 -1
  255. package/docs/en-GB/intlayer_with_svelte_kit.md +2 -2
  256. package/docs/en-GB/intlayer_with_tanstack+solid.md +912 -0
  257. package/docs/en-GB/intlayer_with_tanstack.md +1 -1
  258. package/docs/en-GB/intlayer_with_vite+lit.md +11 -58
  259. package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
  260. package/docs/en-GB/intlayer_with_vite+react.md +1 -1
  261. package/docs/en-GB/intlayer_with_vite+react_compiler.md +1 -1
  262. package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
  263. package/docs/en-GB/intlayer_with_vite+svelte.md +1 -1
  264. package/docs/en-GB/intlayer_with_vite+vanilla.md +2 -2
  265. package/docs/en-GB/intlayer_with_vite+vue.md +4 -4
  266. package/docs/es/compiler.md +6 -1
  267. package/docs/es/configuration.md +12 -9
  268. package/docs/es/dictionary/html.md +11 -8
  269. package/docs/es/dictionary/markdown.md +18 -24
  270. package/docs/es/intlayer_CMS.md +1 -1
  271. package/docs/es/intlayer_with_adonisjs.md +1 -1
  272. package/docs/es/intlayer_with_analog.md +9 -15
  273. package/docs/es/intlayer_with_angular.md +1 -1
  274. package/docs/es/intlayer_with_create_react_app.md +1 -1
  275. package/docs/es/intlayer_with_express.md +1 -1
  276. package/docs/es/intlayer_with_fastify.md +1 -1
  277. package/docs/es/intlayer_with_hono.md +1 -1
  278. package/docs/es/intlayer_with_lynx+react.md +1 -1
  279. package/docs/es/intlayer_with_nestjs.md +1 -1
  280. package/docs/es/intlayer_with_next-i18next.md +1 -1
  281. package/docs/es/intlayer_with_next-intl.md +1 -1
  282. package/docs/es/intlayer_with_nextjs_14.md +1 -1
  283. package/docs/es/intlayer_with_nextjs_15.md +1 -1
  284. package/docs/es/intlayer_with_nextjs_16.md +2 -2
  285. package/docs/es/intlayer_with_nextjs_compiler.md +2 -2
  286. package/docs/es/intlayer_with_nextjs_no_locale_path.md +1 -1
  287. package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
  288. package/docs/es/intlayer_with_nuxt.md +1 -1
  289. package/docs/es/intlayer_with_react_native+expo.md +1 -1
  290. package/docs/es/intlayer_with_react_router_v7.md +2 -2
  291. package/docs/es/intlayer_with_react_router_v7_fs_routes.md +2 -2
  292. package/docs/es/intlayer_with_svelte_kit.md +3 -3
  293. package/docs/es/intlayer_with_tanstack+solid.md +911 -0
  294. package/docs/es/intlayer_with_tanstack.md +2 -2
  295. package/docs/es/intlayer_with_vite+lit.md +9 -58
  296. package/docs/es/intlayer_with_vite+preact.md +2 -2
  297. package/docs/es/intlayer_with_vite+react.md +2 -2
  298. package/docs/es/intlayer_with_vite+react_compiler.md +1 -1
  299. package/docs/es/intlayer_with_vite+solid.md +2 -2
  300. package/docs/es/intlayer_with_vite+svelte.md +2 -2
  301. package/docs/es/intlayer_with_vite+vanilla.md +2 -2
  302. package/docs/es/intlayer_with_vite+vue.md +5 -5
  303. package/docs/es/packages/next-intlayer/index.md +1 -1
  304. package/docs/es/packages/react-intlayer/index.md +1 -1
  305. package/docs/fr/compiler.md +8 -3
  306. package/docs/fr/configuration.md +12 -9
  307. package/docs/fr/dictionary/html.md +11 -8
  308. package/docs/fr/dictionary/markdown.md +18 -24
  309. package/docs/fr/intlayer_CMS.md +1 -1
  310. package/docs/fr/intlayer_with_adonisjs.md +1 -1
  311. package/docs/fr/intlayer_with_analog.md +9 -15
  312. package/docs/fr/intlayer_with_angular.md +1 -1
  313. package/docs/fr/intlayer_with_create_react_app.md +1 -1
  314. package/docs/fr/intlayer_with_express.md +1 -1
  315. package/docs/fr/intlayer_with_fastify.md +1 -1
  316. package/docs/fr/intlayer_with_hono.md +1 -1
  317. package/docs/fr/intlayer_with_lynx+react.md +1 -1
  318. package/docs/fr/intlayer_with_nestjs.md +1 -1
  319. package/docs/fr/intlayer_with_next-i18next.md +1 -1
  320. package/docs/fr/intlayer_with_next-intl.md +1 -1
  321. package/docs/fr/intlayer_with_nextjs_14.md +1 -1
  322. package/docs/fr/intlayer_with_nextjs_15.md +1 -1
  323. package/docs/fr/intlayer_with_nextjs_16.md +2 -2
  324. package/docs/fr/intlayer_with_nextjs_compiler.md +2 -2
  325. package/docs/fr/intlayer_with_nextjs_no_locale_path.md +1 -1
  326. package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
  327. package/docs/fr/intlayer_with_nuxt.md +1 -1
  328. package/docs/fr/intlayer_with_react_router_v7.md +2 -2
  329. package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +2 -2
  330. package/docs/fr/intlayer_with_svelte_kit.md +3 -3
  331. package/docs/fr/intlayer_with_tanstack+solid.md +911 -0
  332. package/docs/fr/intlayer_with_tanstack.md +2 -2
  333. package/docs/fr/intlayer_with_vite+lit.md +9 -58
  334. package/docs/fr/intlayer_with_vite+preact.md +2 -2
  335. package/docs/fr/intlayer_with_vite+react.md +2 -2
  336. package/docs/fr/intlayer_with_vite+react_compiler.md +1 -1
  337. package/docs/fr/intlayer_with_vite+solid.md +2 -2
  338. package/docs/fr/intlayer_with_vite+svelte.md +2 -2
  339. package/docs/fr/intlayer_with_vite+vanilla.md +2 -2
  340. package/docs/fr/intlayer_with_vite+vue.md +5 -5
  341. package/docs/fr/packages/react-intlayer/index.md +1 -1
  342. package/docs/hi/dictionary/html.md +10 -3
  343. package/docs/hi/dictionary/markdown.md +17 -19
  344. package/docs/hi/intlayer_CMS.md +1 -1
  345. package/docs/hi/intlayer_with_adonisjs.md +1 -1
  346. package/docs/hi/intlayer_with_analog.md +9 -15
  347. package/docs/hi/intlayer_with_angular.md +1 -1
  348. package/docs/hi/intlayer_with_create_react_app.md +1 -1
  349. package/docs/hi/intlayer_with_express.md +1 -1
  350. package/docs/hi/intlayer_with_fastify.md +1 -1
  351. package/docs/hi/intlayer_with_hono.md +1 -1
  352. package/docs/hi/intlayer_with_lynx+react.md +1 -1
  353. package/docs/hi/intlayer_with_nestjs.md +1 -1
  354. package/docs/hi/intlayer_with_next-i18next.md +1 -1
  355. package/docs/hi/intlayer_with_next-intl.md +1 -1
  356. package/docs/hi/intlayer_with_nextjs_14.md +1 -1
  357. package/docs/hi/intlayer_with_nextjs_15.md +1 -1
  358. package/docs/hi/intlayer_with_nextjs_16.md +2 -2
  359. package/docs/hi/intlayer_with_nextjs_compiler.md +2 -2
  360. package/docs/hi/intlayer_with_nextjs_no_locale_path.md +1 -1
  361. package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
  362. package/docs/hi/intlayer_with_nuxt.md +1 -1
  363. package/docs/hi/intlayer_with_react_router_v7.md +2 -2
  364. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +2 -2
  365. package/docs/hi/intlayer_with_svelte_kit.md +3 -3
  366. package/docs/hi/intlayer_with_tanstack+solid.md +911 -0
  367. package/docs/hi/intlayer_with_tanstack.md +2 -2
  368. package/docs/hi/intlayer_with_vite+lit.md +9 -58
  369. package/docs/hi/intlayer_with_vite+preact.md +2 -2
  370. package/docs/hi/intlayer_with_vite+react.md +2 -2
  371. package/docs/hi/intlayer_with_vite+react_compiler.md +1 -1
  372. package/docs/hi/intlayer_with_vite+solid.md +2 -2
  373. package/docs/hi/intlayer_with_vite+svelte.md +2 -2
  374. package/docs/hi/intlayer_with_vite+vanilla.md +2 -2
  375. package/docs/hi/intlayer_with_vite+vue.md +5 -5
  376. package/docs/hi/packages/intlayer/index.md +1 -1
  377. package/docs/id/dictionary/html.md +10 -3
  378. package/docs/id/dictionary/markdown.md +17 -19
  379. package/docs/id/intlayer_CMS.md +1 -1
  380. package/docs/id/intlayer_with_adonisjs.md +1 -1
  381. package/docs/id/intlayer_with_analog.md +9 -15
  382. package/docs/id/intlayer_with_angular.md +1 -1
  383. package/docs/id/intlayer_with_create_react_app.md +1 -1
  384. package/docs/id/intlayer_with_express.md +1 -1
  385. package/docs/id/intlayer_with_fastify.md +1 -1
  386. package/docs/id/intlayer_with_hono.md +1 -1
  387. package/docs/id/intlayer_with_lynx+react.md +1 -1
  388. package/docs/id/intlayer_with_nestjs.md +1 -1
  389. package/docs/id/intlayer_with_next-i18next.md +1 -1
  390. package/docs/id/intlayer_with_next-intl.md +1 -1
  391. package/docs/id/intlayer_with_nextjs_14.md +1 -1
  392. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  393. package/docs/id/intlayer_with_nextjs_16.md +2 -2
  394. package/docs/id/intlayer_with_nextjs_compiler.md +2 -2
  395. package/docs/id/intlayer_with_nextjs_no_locale_path.md +1 -1
  396. package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
  397. package/docs/id/intlayer_with_nuxt.md +1 -1
  398. package/docs/id/intlayer_with_react_native+expo.md +1 -1
  399. package/docs/id/intlayer_with_react_router_v7.md +2 -2
  400. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +2 -2
  401. package/docs/id/intlayer_with_svelte_kit.md +3 -3
  402. package/docs/id/intlayer_with_tanstack+solid.md +911 -0
  403. package/docs/id/intlayer_with_tanstack.md +2 -2
  404. package/docs/id/intlayer_with_vite+lit.md +9 -58
  405. package/docs/id/intlayer_with_vite+preact.md +2 -2
  406. package/docs/id/intlayer_with_vite+react.md +2 -2
  407. package/docs/id/intlayer_with_vite+react_compiler.md +1 -1
  408. package/docs/id/intlayer_with_vite+solid.md +2 -2
  409. package/docs/id/intlayer_with_vite+svelte.md +2 -2
  410. package/docs/id/intlayer_with_vite+vanilla.md +2 -2
  411. package/docs/id/intlayer_with_vite+vue.md +5 -5
  412. package/docs/it/compiler.md +8 -3
  413. package/docs/it/configuration.md +12 -9
  414. package/docs/it/dictionary/html.md +11 -8
  415. package/docs/it/dictionary/markdown.md +18 -24
  416. package/docs/it/intlayer_CMS.md +1 -1
  417. package/docs/it/intlayer_with_adonisjs.md +1 -1
  418. package/docs/it/intlayer_with_analog.md +9 -15
  419. package/docs/it/intlayer_with_angular.md +1 -1
  420. package/docs/it/intlayer_with_create_react_app.md +1 -1
  421. package/docs/it/intlayer_with_express.md +1 -1
  422. package/docs/it/intlayer_with_fastify.md +1 -1
  423. package/docs/it/intlayer_with_hono.md +1 -1
  424. package/docs/it/intlayer_with_lynx+react.md +1 -1
  425. package/docs/it/intlayer_with_nestjs.md +1 -1
  426. package/docs/it/intlayer_with_next-i18next.md +1 -1
  427. package/docs/it/intlayer_with_next-intl.md +1 -1
  428. package/docs/it/intlayer_with_nextjs_14.md +1 -1
  429. package/docs/it/intlayer_with_nextjs_15.md +1 -1
  430. package/docs/it/intlayer_with_nextjs_16.md +2 -2
  431. package/docs/it/intlayer_with_nextjs_compiler.md +2 -2
  432. package/docs/it/intlayer_with_nextjs_no_locale_path.md +1 -1
  433. package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
  434. package/docs/it/intlayer_with_nuxt.md +1 -1
  435. package/docs/it/intlayer_with_react_native+expo.md +1 -1
  436. package/docs/it/intlayer_with_react_router_v7.md +2 -2
  437. package/docs/it/intlayer_with_react_router_v7_fs_routes.md +2 -2
  438. package/docs/it/intlayer_with_svelte_kit.md +3 -3
  439. package/docs/it/intlayer_with_tanstack+solid.md +911 -0
  440. package/docs/it/intlayer_with_tanstack.md +2 -2
  441. package/docs/it/intlayer_with_vite+lit.md +9 -58
  442. package/docs/it/intlayer_with_vite+preact.md +2 -2
  443. package/docs/it/intlayer_with_vite+react.md +2 -2
  444. package/docs/it/intlayer_with_vite+react_compiler.md +1 -1
  445. package/docs/it/intlayer_with_vite+solid.md +2 -2
  446. package/docs/it/intlayer_with_vite+svelte.md +2 -2
  447. package/docs/it/intlayer_with_vite+vanilla.md +2 -2
  448. package/docs/it/intlayer_with_vite+vue.md +5 -5
  449. package/docs/ja/dictionary/html.md +11 -8
  450. package/docs/ja/dictionary/markdown.md +21 -24
  451. package/docs/ja/intlayer_CMS.md +1 -1
  452. package/docs/ja/intlayer_with_adonisjs.md +1 -1
  453. package/docs/ja/intlayer_with_analog.md +9 -15
  454. package/docs/ja/intlayer_with_angular.md +1 -1
  455. package/docs/ja/intlayer_with_create_react_app.md +1 -1
  456. package/docs/ja/intlayer_with_express.md +1 -1
  457. package/docs/ja/intlayer_with_fastify.md +1 -1
  458. package/docs/ja/intlayer_with_hono.md +1 -1
  459. package/docs/ja/intlayer_with_lynx+react.md +1 -1
  460. package/docs/ja/intlayer_with_nestjs.md +1 -1
  461. package/docs/ja/intlayer_with_next-i18next.md +1 -1
  462. package/docs/ja/intlayer_with_next-intl.md +1 -1
  463. package/docs/ja/intlayer_with_nextjs_14.md +1 -1
  464. package/docs/ja/intlayer_with_nextjs_15.md +1 -1
  465. package/docs/ja/intlayer_with_nextjs_16.md +2 -2
  466. package/docs/ja/intlayer_with_nextjs_compiler.md +2 -2
  467. package/docs/ja/intlayer_with_nextjs_no_locale_path.md +1 -1
  468. package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
  469. package/docs/ja/intlayer_with_nuxt.md +1 -1
  470. package/docs/ja/intlayer_with_react_router_v7.md +1 -1
  471. package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +2 -2
  472. package/docs/ja/intlayer_with_svelte_kit.md +1 -1
  473. package/docs/ja/intlayer_with_tanstack+solid.md +911 -0
  474. package/docs/ja/intlayer_with_tanstack.md +1 -1
  475. package/docs/ja/intlayer_with_vite+lit.md +9 -58
  476. package/docs/ja/intlayer_with_vite+preact.md +1 -1
  477. package/docs/ja/intlayer_with_vite+react.md +1 -1
  478. package/docs/ja/intlayer_with_vite+react_compiler.md +1 -1
  479. package/docs/ja/intlayer_with_vite+solid.md +2 -2
  480. package/docs/ja/intlayer_with_vite+svelte.md +2 -2
  481. package/docs/ja/intlayer_with_vite+vanilla.md +2 -2
  482. package/docs/ja/intlayer_with_vite+vue.md +5 -5
  483. package/docs/ko/dictionary/html.md +11 -8
  484. package/docs/ko/dictionary/markdown.md +18 -24
  485. package/docs/ko/intlayer_CMS.md +1 -1
  486. package/docs/ko/intlayer_with_adonisjs.md +1 -1
  487. package/docs/ko/intlayer_with_analog.md +9 -15
  488. package/docs/ko/intlayer_with_angular.md +1 -1
  489. package/docs/ko/intlayer_with_create_react_app.md +1 -1
  490. package/docs/ko/intlayer_with_express.md +1 -1
  491. package/docs/ko/intlayer_with_fastify.md +1 -1
  492. package/docs/ko/intlayer_with_hono.md +1 -1
  493. package/docs/ko/intlayer_with_lynx+react.md +1 -1
  494. package/docs/ko/intlayer_with_nestjs.md +1 -1
  495. package/docs/ko/intlayer_with_next-i18next.md +1 -1
  496. package/docs/ko/intlayer_with_next-intl.md +1 -1
  497. package/docs/ko/intlayer_with_nextjs_14.md +1 -1
  498. package/docs/ko/intlayer_with_nextjs_15.md +1 -1
  499. package/docs/ko/intlayer_with_nextjs_16.md +2 -2
  500. package/docs/ko/intlayer_with_nextjs_compiler.md +2 -2
  501. package/docs/ko/intlayer_with_nextjs_no_locale_path.md +1 -1
  502. package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
  503. package/docs/ko/intlayer_with_nuxt.md +1 -1
  504. package/docs/ko/intlayer_with_react_native+expo.md +1 -1
  505. package/docs/ko/intlayer_with_react_router_v7.md +2 -2
  506. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +2 -2
  507. package/docs/ko/intlayer_with_svelte_kit.md +3 -3
  508. package/docs/ko/intlayer_with_tanstack+solid.md +911 -0
  509. package/docs/ko/intlayer_with_tanstack.md +2 -2
  510. package/docs/ko/intlayer_with_vite+lit.md +9 -58
  511. package/docs/ko/intlayer_with_vite+preact.md +2 -2
  512. package/docs/ko/intlayer_with_vite+react.md +2 -2
  513. package/docs/ko/intlayer_with_vite+react_compiler.md +1 -1
  514. package/docs/ko/intlayer_with_vite+solid.md +2 -2
  515. package/docs/ko/intlayer_with_vite+svelte.md +2 -2
  516. package/docs/ko/intlayer_with_vite+vanilla.md +2 -2
  517. package/docs/ko/intlayer_with_vite+vue.md +5 -5
  518. package/docs/nl/intlayer_with_fastify.md +1 -1
  519. package/docs/nl/intlayer_with_hono.md +1 -1
  520. package/docs/nl/intlayer_with_vite+lit.md +9 -58
  521. package/docs/nl/intlayer_with_vite+vanilla.md +2 -2
  522. package/docs/pl/dictionary/html.md +11 -8
  523. package/docs/pl/dictionary/markdown.md +18 -24
  524. package/docs/pl/intlayer_CMS.md +1 -1
  525. package/docs/pl/intlayer_with_adonisjs.md +1 -1
  526. package/docs/pl/intlayer_with_analog.md +9 -15
  527. package/docs/pl/intlayer_with_angular.md +1 -1
  528. package/docs/pl/intlayer_with_create_react_app.md +1 -1
  529. package/docs/pl/intlayer_with_express.md +1 -1
  530. package/docs/pl/intlayer_with_fastify.md +1 -1
  531. package/docs/pl/intlayer_with_hono.md +1 -1
  532. package/docs/pl/intlayer_with_lynx+react.md +1 -1
  533. package/docs/pl/intlayer_with_nestjs.md +1 -1
  534. package/docs/pl/intlayer_with_next-i18next.md +1 -1
  535. package/docs/pl/intlayer_with_next-intl.md +1 -1
  536. package/docs/pl/intlayer_with_nextjs_14.md +1 -1
  537. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  538. package/docs/pl/intlayer_with_nextjs_16.md +2 -2
  539. package/docs/pl/intlayer_with_nextjs_compiler.md +2 -2
  540. package/docs/pl/intlayer_with_nextjs_no_locale_path.md +1 -1
  541. package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
  542. package/docs/pl/intlayer_with_nuxt.md +1 -1
  543. package/docs/pl/intlayer_with_react_native+expo.md +1 -1
  544. package/docs/pl/intlayer_with_react_router_v7.md +2 -2
  545. package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +2 -2
  546. package/docs/pl/intlayer_with_svelte_kit.md +3 -3
  547. package/docs/pl/intlayer_with_tanstack+solid.md +911 -0
  548. package/docs/pl/intlayer_with_tanstack.md +2 -2
  549. package/docs/pl/intlayer_with_vite+lit.md +9 -58
  550. package/docs/pl/intlayer_with_vite+preact.md +2 -2
  551. package/docs/pl/intlayer_with_vite+react.md +2 -2
  552. package/docs/pl/intlayer_with_vite+react_compiler.md +1 -1
  553. package/docs/pl/intlayer_with_vite+solid.md +2 -2
  554. package/docs/pl/intlayer_with_vite+svelte.md +2 -2
  555. package/docs/pl/intlayer_with_vite+vanilla.md +2 -2
  556. package/docs/pl/intlayer_with_vite+vue.md +5 -5
  557. package/docs/pt/compiler.md +7 -2
  558. package/docs/pt/configuration.md +11 -9
  559. package/docs/pt/dictionary/html.md +11 -8
  560. package/docs/pt/dictionary/markdown.md +18 -24
  561. package/docs/pt/intlayer_CMS.md +1 -1
  562. package/docs/pt/intlayer_with_adonisjs.md +1 -1
  563. package/docs/pt/intlayer_with_analog.md +9 -15
  564. package/docs/pt/intlayer_with_angular.md +1 -1
  565. package/docs/pt/intlayer_with_create_react_app.md +1 -1
  566. package/docs/pt/intlayer_with_express.md +1 -1
  567. package/docs/pt/intlayer_with_fastify.md +1 -1
  568. package/docs/pt/intlayer_with_hono.md +1 -1
  569. package/docs/pt/intlayer_with_lynx+react.md +1 -1
  570. package/docs/pt/intlayer_with_nestjs.md +1 -1
  571. package/docs/pt/intlayer_with_next-i18next.md +1 -1
  572. package/docs/pt/intlayer_with_next-intl.md +1 -1
  573. package/docs/pt/intlayer_with_nextjs_14.md +1 -1
  574. package/docs/pt/intlayer_with_nextjs_15.md +1 -1
  575. package/docs/pt/intlayer_with_nextjs_16.md +2 -2
  576. package/docs/pt/intlayer_with_nextjs_compiler.md +2 -2
  577. package/docs/pt/intlayer_with_nextjs_no_locale_path.md +1 -1
  578. package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
  579. package/docs/pt/intlayer_with_nuxt.md +1 -1
  580. package/docs/pt/intlayer_with_react_native+expo.md +1 -1
  581. package/docs/pt/intlayer_with_react_router_v7.md +2 -2
  582. package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +2 -2
  583. package/docs/pt/intlayer_with_svelte_kit.md +3 -3
  584. package/docs/pt/intlayer_with_tanstack+solid.md +911 -0
  585. package/docs/pt/intlayer_with_tanstack.md +2 -2
  586. package/docs/pt/intlayer_with_vite+lit.md +9 -58
  587. package/docs/pt/intlayer_with_vite+preact.md +2 -2
  588. package/docs/pt/intlayer_with_vite+react.md +2 -2
  589. package/docs/pt/intlayer_with_vite+react_compiler.md +1 -1
  590. package/docs/pt/intlayer_with_vite+solid.md +2 -2
  591. package/docs/pt/intlayer_with_vite+svelte.md +2 -2
  592. package/docs/pt/intlayer_with_vite+vanilla.md +2 -2
  593. package/docs/pt/intlayer_with_vite+vue.md +5 -5
  594. package/docs/ru/dictionary/html.md +11 -8
  595. package/docs/ru/dictionary/markdown.md +18 -24
  596. package/docs/ru/intlayer_CMS.md +1 -1
  597. package/docs/ru/intlayer_with_adonisjs.md +1 -1
  598. package/docs/ru/intlayer_with_analog.md +9 -15
  599. package/docs/ru/intlayer_with_angular.md +1 -1
  600. package/docs/ru/intlayer_with_create_react_app.md +1 -1
  601. package/docs/ru/intlayer_with_express.md +1 -1
  602. package/docs/ru/intlayer_with_fastify.md +1 -1
  603. package/docs/ru/intlayer_with_hono.md +1 -1
  604. package/docs/ru/intlayer_with_lynx+react.md +1 -1
  605. package/docs/ru/intlayer_with_nestjs.md +1 -1
  606. package/docs/ru/intlayer_with_next-i18next.md +1 -1
  607. package/docs/ru/intlayer_with_next-intl.md +1 -1
  608. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  609. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  610. package/docs/ru/intlayer_with_nextjs_16.md +2 -2
  611. package/docs/ru/intlayer_with_nextjs_compiler.md +2 -2
  612. package/docs/ru/intlayer_with_nextjs_no_locale_path.md +1 -1
  613. package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
  614. package/docs/ru/intlayer_with_nuxt.md +1 -1
  615. package/docs/ru/intlayer_with_react_native+expo.md +1 -1
  616. package/docs/ru/intlayer_with_react_router_v7.md +2 -2
  617. package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +2 -2
  618. package/docs/ru/intlayer_with_svelte_kit.md +3 -3
  619. package/docs/ru/intlayer_with_tanstack+solid.md +911 -0
  620. package/docs/ru/intlayer_with_tanstack.md +2 -2
  621. package/docs/ru/intlayer_with_vite+lit.md +9 -58
  622. package/docs/ru/intlayer_with_vite+preact.md +2 -2
  623. package/docs/ru/intlayer_with_vite+react.md +2 -2
  624. package/docs/ru/intlayer_with_vite+react_compiler.md +1 -1
  625. package/docs/ru/intlayer_with_vite+solid.md +2 -2
  626. package/docs/ru/intlayer_with_vite+svelte.md +2 -2
  627. package/docs/ru/intlayer_with_vite+vanilla.md +2 -2
  628. package/docs/ru/intlayer_with_vite+vue.md +5 -5
  629. package/docs/tr/dictionary/html.md +11 -8
  630. package/docs/tr/dictionary/markdown.md +18 -24
  631. package/docs/tr/intlayer_CMS.md +1 -1
  632. package/docs/tr/intlayer_with_adonisjs.md +1 -1
  633. package/docs/tr/intlayer_with_analog.md +9 -15
  634. package/docs/tr/intlayer_with_angular.md +1 -1
  635. package/docs/tr/intlayer_with_create_react_app.md +1 -1
  636. package/docs/tr/intlayer_with_express.md +1 -1
  637. package/docs/tr/intlayer_with_fastify.md +1 -1
  638. package/docs/tr/intlayer_with_hono.md +1 -1
  639. package/docs/tr/intlayer_with_lynx+react.md +1 -1
  640. package/docs/tr/intlayer_with_nestjs.md +1 -1
  641. package/docs/tr/intlayer_with_next-i18next.md +1 -1
  642. package/docs/tr/intlayer_with_next-intl.md +1 -1
  643. package/docs/tr/intlayer_with_nextjs_14.md +1 -1
  644. package/docs/tr/intlayer_with_nextjs_15.md +1 -1
  645. package/docs/tr/intlayer_with_nextjs_16.md +2 -2
  646. package/docs/tr/intlayer_with_nextjs_compiler.md +2 -2
  647. package/docs/tr/intlayer_with_nextjs_no_locale_path.md +1 -1
  648. package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
  649. package/docs/tr/intlayer_with_nuxt.md +1 -1
  650. package/docs/tr/intlayer_with_react_native+expo.md +1 -1
  651. package/docs/tr/intlayer_with_react_router_v7.md +2 -2
  652. package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +2 -2
  653. package/docs/tr/intlayer_with_svelte_kit.md +3 -3
  654. package/docs/tr/intlayer_with_tanstack+solid.md +912 -0
  655. package/docs/tr/intlayer_with_tanstack.md +2 -2
  656. package/docs/tr/intlayer_with_vite+lit.md +9 -58
  657. package/docs/tr/intlayer_with_vite+preact.md +2 -2
  658. package/docs/tr/intlayer_with_vite+react.md +2 -2
  659. package/docs/tr/intlayer_with_vite+react_compiler.md +1 -1
  660. package/docs/tr/intlayer_with_vite+solid.md +2 -2
  661. package/docs/tr/intlayer_with_vite+svelte.md +2 -2
  662. package/docs/tr/intlayer_with_vite+vanilla.md +2 -2
  663. package/docs/tr/intlayer_with_vite+vue.md +5 -5
  664. package/docs/uk/dictionary/html.md +10 -3
  665. package/docs/uk/dictionary/markdown.md +17 -19
  666. package/docs/uk/intlayer_CMS.md +1 -1
  667. package/docs/uk/intlayer_with_adonisjs.md +1 -1
  668. package/docs/uk/intlayer_with_analog.md +9 -15
  669. package/docs/uk/intlayer_with_angular.md +1 -1
  670. package/docs/uk/intlayer_with_create_react_app.md +1 -1
  671. package/docs/uk/intlayer_with_express.md +1 -1
  672. package/docs/uk/intlayer_with_fastify.md +1 -1
  673. package/docs/uk/intlayer_with_hono.md +1 -1
  674. package/docs/uk/intlayer_with_lynx+react.md +1 -1
  675. package/docs/uk/intlayer_with_nestjs.md +1 -1
  676. package/docs/uk/intlayer_with_next-i18next.md +1 -1
  677. package/docs/uk/intlayer_with_next-intl.md +1 -1
  678. package/docs/uk/intlayer_with_nextjs_14.md +1 -1
  679. package/docs/uk/intlayer_with_nextjs_15.md +1 -1
  680. package/docs/uk/intlayer_with_nextjs_16.md +2 -2
  681. package/docs/uk/intlayer_with_nextjs_compiler.md +2 -2
  682. package/docs/uk/intlayer_with_nextjs_no_locale_path.md +1 -1
  683. package/docs/uk/intlayer_with_nextjs_page_router.md +1 -1
  684. package/docs/uk/intlayer_with_nuxt.md +1 -1
  685. package/docs/uk/intlayer_with_react_native+expo.md +1 -1
  686. package/docs/uk/intlayer_with_react_router_v7.md +2 -2
  687. package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +2 -2
  688. package/docs/uk/intlayer_with_svelte_kit.md +2 -2
  689. package/docs/uk/intlayer_with_tanstack+solid.md +911 -0
  690. package/docs/uk/intlayer_with_tanstack.md +2 -2
  691. package/docs/uk/intlayer_with_vite+lit.md +9 -58
  692. package/docs/uk/intlayer_with_vite+preact.md +2 -2
  693. package/docs/uk/intlayer_with_vite+react.md +2 -2
  694. package/docs/uk/intlayer_with_vite+react_compiler.md +1 -1
  695. package/docs/uk/intlayer_with_vite+solid.md +2 -2
  696. package/docs/uk/intlayer_with_vite+svelte.md +2 -2
  697. package/docs/uk/intlayer_with_vite+vanilla.md +2 -2
  698. package/docs/uk/intlayer_with_vite+vue.md +5 -5
  699. package/docs/ur/intlayer_with_fastify.md +1 -1
  700. package/docs/ur/intlayer_with_hono.md +1 -1
  701. package/docs/ur/intlayer_with_vite+lit.md +9 -58
  702. package/docs/ur/intlayer_with_vite+vanilla.md +1 -1
  703. package/docs/vi/cli/index.md +1 -1
  704. package/docs/vi/dictionary/html.md +10 -3
  705. package/docs/vi/dictionary/markdown.md +17 -19
  706. package/docs/vi/intlayer_CMS.md +1 -1
  707. package/docs/vi/intlayer_with_adonisjs.md +1 -1
  708. package/docs/vi/intlayer_with_analog.md +9 -15
  709. package/docs/vi/intlayer_with_angular.md +1 -1
  710. package/docs/vi/intlayer_with_create_react_app.md +1 -1
  711. package/docs/vi/intlayer_with_express.md +1 -1
  712. package/docs/vi/intlayer_with_fastify.md +1 -1
  713. package/docs/vi/intlayer_with_hono.md +1 -1
  714. package/docs/vi/intlayer_with_lynx+react.md +1 -1
  715. package/docs/vi/intlayer_with_nestjs.md +1 -1
  716. package/docs/vi/intlayer_with_next-i18next.md +1 -1
  717. package/docs/vi/intlayer_with_next-intl.md +1 -1
  718. package/docs/vi/intlayer_with_nextjs_14.md +1 -1
  719. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  720. package/docs/vi/intlayer_with_nextjs_16.md +2 -2
  721. package/docs/vi/intlayer_with_nextjs_compiler.md +2 -2
  722. package/docs/vi/intlayer_with_nextjs_no_locale_path.md +1 -1
  723. package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
  724. package/docs/vi/intlayer_with_nuxt.md +1 -1
  725. package/docs/vi/intlayer_with_react_native+expo.md +1 -1
  726. package/docs/vi/intlayer_with_react_router_v7.md +2 -2
  727. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +2 -2
  728. package/docs/vi/intlayer_with_svelte_kit.md +3 -3
  729. package/docs/vi/intlayer_with_tanstack+solid.md +911 -0
  730. package/docs/vi/intlayer_with_tanstack.md +2 -2
  731. package/docs/vi/intlayer_with_vite+lit.md +9 -58
  732. package/docs/vi/intlayer_with_vite+preact.md +2 -2
  733. package/docs/vi/intlayer_with_vite+react.md +2 -2
  734. package/docs/vi/intlayer_with_vite+react_compiler.md +1 -1
  735. package/docs/vi/intlayer_with_vite+solid.md +2 -2
  736. package/docs/vi/intlayer_with_vite+svelte.md +2 -2
  737. package/docs/vi/intlayer_with_vite+vanilla.md +2 -2
  738. package/docs/vi/intlayer_with_vite+vue.md +5 -5
  739. package/docs/zh/compiler.md +8 -3
  740. package/docs/zh/configuration.md +4 -1
  741. package/docs/zh/dictionary/html.md +11 -8
  742. package/docs/zh/dictionary/markdown.md +18 -24
  743. package/docs/zh/intlayer_CMS.md +1 -1
  744. package/docs/zh/intlayer_with_adonisjs.md +1 -1
  745. package/docs/zh/intlayer_with_analog.md +9 -15
  746. package/docs/zh/intlayer_with_angular.md +1 -1
  747. package/docs/zh/intlayer_with_create_react_app.md +1 -1
  748. package/docs/zh/intlayer_with_express.md +1 -1
  749. package/docs/zh/intlayer_with_fastify.md +1 -1
  750. package/docs/zh/intlayer_with_hono.md +1 -1
  751. package/docs/zh/intlayer_with_lynx+react.md +1 -1
  752. package/docs/zh/intlayer_with_nestjs.md +1 -1
  753. package/docs/zh/intlayer_with_next-i18next.md +1 -1
  754. package/docs/zh/intlayer_with_next-intl.md +1 -1
  755. package/docs/zh/intlayer_with_nextjs_14.md +1 -1
  756. package/docs/zh/intlayer_with_nextjs_15.md +1 -1
  757. package/docs/zh/intlayer_with_nextjs_16.md +2 -2
  758. package/docs/zh/intlayer_with_nextjs_compiler.md +2 -2
  759. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +1 -1
  760. package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
  761. package/docs/zh/intlayer_with_nuxt.md +1 -1
  762. package/docs/zh/intlayer_with_react_native+expo.md +1 -1
  763. package/docs/zh/intlayer_with_react_router_v7.md +2 -2
  764. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +2 -2
  765. package/docs/zh/intlayer_with_svelte_kit.md +3 -3
  766. package/docs/zh/intlayer_with_tanstack+solid.md +911 -0
  767. package/docs/zh/intlayer_with_tanstack.md +2 -2
  768. package/docs/zh/intlayer_with_vite+lit.md +9 -58
  769. package/docs/zh/intlayer_with_vite+preact.md +2 -2
  770. package/docs/zh/intlayer_with_vite+react.md +2 -2
  771. package/docs/zh/intlayer_with_vite+react_compiler.md +1 -1
  772. package/docs/zh/intlayer_with_vite+solid.md +2 -2
  773. package/docs/zh/intlayer_with_vite+svelte.md +2 -2
  774. package/docs/zh/intlayer_with_vite+vanilla.md +2 -2
  775. package/docs/zh/intlayer_with_vite+vue.md +5 -5
  776. package/package.json +6 -6
  777. package/src/generated/docs.entry.ts +20 -0
@@ -0,0 +1,911 @@
1
+ ---
2
+ createdAt: 2025-03-25
3
+ updatedAt: 2026-03-25
4
+ title: i18n Tanstack Start - Como traduzir uma aplicação Tanstack Start usando Solid.js em 2026
5
+ description: Aprenda como adicionar internacionalização (i18n) à sua aplicação Tanstack Start usando Intlayer e Solid.js. Siga este guia completo para tornar sua aplicação multilíngue com roteamento ciente de localidade.
6
+ keywords:
7
+ - Internacionalização
8
+ - Documentação
9
+ - Intlayer
10
+ - Tanstack Start
11
+ - Solid
12
+ - i18n
13
+ - TypeScript
14
+ - Roteamento de Localidade
15
+ slugs:
16
+ - doc
17
+ - environment
18
+ - tanstack-start
19
+ applicationTemplate: https://github.com/aymericzip/intlayer-tanstack-start-solid-template
20
+ youtubeVideo: https://www.youtube.com/watch?v=_XTdKVWaeqg
21
+ history:
22
+ - version: 8.5.1
23
+ date: 2026-03-25
24
+ changes: "Adicionado para Tanstack Start Solid.js"
25
+ ---
26
+
27
+ # Traduza seu site Tanstack Start com Solid.js usando Intlayer | Internacionalização (i18n)
28
+
29
+ ## Índice
30
+
31
+ <TOC/>
32
+
33
+ Este guia demonstra como integrar o **Intlayer** para uma internacionalização perfeita em projetos Tanstack Start com Solid.js, roteamento ciente de localidade, suporte a TypeScript e práticas de desenvolvimento modernas.
34
+
35
+ ## O que é o Intlayer?
36
+
37
+ O **Intlayer** é uma biblioteca de internacionalização (i18n) inovadora e de código aberto, projetada para simplificar o suporte multilíngue em aplicações web modernas.
38
+
39
+ Com o Intlayer, você pode:
40
+
41
+ - **Gerenciar traduções facilmente** usando dicionários declarativos ao nível do componente.
42
+ - **Localizar metadados, rotas e conteúdo dinamicamente**.
43
+ - **Garantir o suporte a TypeScript** com tipos autogerados, melhorando o autocompletar e a detecção de erros.
44
+ - **Beneficiar-se de recursos avançados**, como detecção e troca dinâmica de localidade.
45
+ - **Habilitar roteamento ciente de localidade** com o sistema de roteamento baseado em arquivos do Tanstack Start.
46
+
47
+ ---
48
+
49
+ ## Guia Passo a Passo para Configurar o Intlayer numa Aplicação Tanstack Start
50
+
51
+ <Tabs defaultTab="video">
52
+ <Tab label="Vídeo" value="video">
53
+
54
+ <iframe title="A melhor solução i18n para Tanstack Start? Descubra o Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/_XTdKVWaeqg?autoplay=0&amp;origin=http://intlayer.org&amp;controls=0&amp;rel=1"/>
55
+
56
+ </Tab>
57
+ <Tab label="Código" value="code">
58
+
59
+ <iframe
60
+ src="https://stackblitz.com/github/aymericzip/intlayer-tanstack-start-solid-template?embed=1&ctl=1&file=intlayer.config.ts"
61
+ className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
62
+ title="Demo CodeSandbox - Como Internacionalizar sua aplicação usando o Intlayer"
63
+ sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
64
+ loading="lazy"
65
+ />
66
+
67
+ </Tab>
68
+ </Tabs>
69
+
70
+ Veja o [Modelo de Aplicação](https://github.com/aymericzip/intlayer-tanstack-start-solid-template) no GitHub.
71
+
72
+ ### Passo 1: Criar o Projeto
73
+
74
+ Comece criando um novo projeto TanStack Start seguindo o guia [Iniciar novo projeto](https://tanstack.com/start/latest/docs/framework/solid/quick-start) no site do TanStack Start.
75
+
76
+ ### Passo 2: Instalar os Pacotes Intlayer
77
+
78
+ Instale os pacotes necessários usando o seu gerenciador de pacotes preferido:
79
+
80
+ ```bash packageManager="npm"
81
+ npm install intlayer solid-intlayer
82
+ npm install vite-intlayer --save-dev
83
+ npx intlayer init
84
+ ```
85
+
86
+ ```bash packageManager="pnpm"
87
+ pnpm add intlayer solid-intlayer
88
+ pnpm add vite-intlayer --save-dev
89
+ pnpm intlayer init
90
+ ```
91
+
92
+ ```bash packageManager="yarn"
93
+ yarn add intlayer solid-intlayer
94
+ yarn add vite-intlayer --save-dev
95
+ yarn intlayer init
96
+ ```
97
+
98
+ ```bash packageManager="bun"
99
+ bun add intlayer solid-intlayer
100
+ bun add vite-intlayer --dev
101
+ bun x intlayer init
102
+ ```
103
+
104
+ - **intlayer**
105
+
106
+ O pacote principal que fornece ferramentas de internacionalização para gerenciamento de configuração, tradução, [declaração de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/content_file.md), transpilação e [comandos CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/cli/index.md).
107
+
108
+ - **solid-intlayer**
109
+ O pacote que integra o Intlayer com a aplicação Solid. Ele fornece provedores de contexto e hooks para a internacionalização em Solid.
110
+
111
+ - **vite-intlayer**
112
+ Inclui o plugin Vite para integrar o Intlayer com o [bundler Vite](https://vite.dev/guide/why.html#why-bundle-for-production), bem como o middleware para detectar a localidade preferida do usuário, gerenciar cookies e lidar com redirecionamento de URL.
113
+
114
+ ### Passo 3: Configuração do seu projeto
115
+
116
+ Crie um arquivo de configuração para configurar as línguas da sua aplicação:
117
+
118
+ ```typescript fileName="intlayer.config.ts"
119
+ import type { IntlayerConfig } from "intlayer";
120
+
121
+ import { Locales } from "intlayer";
122
+
123
+ const config: IntlayerConfig = {
124
+ internationalization: {
125
+ defaultLocale: Locales.ENGLISH,
126
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
127
+ },
128
+ };
129
+
130
+ export default config;
131
+ ```
132
+
133
+ > Através deste arquivo de configuração, você pode configurar URLs localizadas, redirecionamento de middleware, nomes de cookies, a localização e extensão das suas declarações de conteúdo, desativar logs do Intlayer no console e muito mais. Para uma lista completa de parâmetros disponíveis, consulte a [documentação de configuração](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/configuration.md).
134
+
135
+ ### Passo 4: Integrar o Intlayer na sua Configuração Vite
136
+
137
+ Adicione o plugin intlayer na sua configuração:
138
+
139
+ ```typescript fileName="vite.config.ts"
140
+ import { intlayer } from "vite-intlayer";
141
+ import { defineConfig } from "vite";
142
+ import { devtools } from "@tanstack/devtools-vite";
143
+ import viteTsConfigPaths from "vite-tsconfig-paths";
144
+ import { tanstackStart } from "@tanstack/solid-start/plugin/vite";
145
+ import solidPlugin from "vite-plugin-solid";
146
+
147
+ export default defineConfig({
148
+ plugins: [
149
+ devtools(),
150
+ viteTsConfigPaths({
151
+ projects: ["./tsconfig.json"],
152
+ }),
153
+ tanstackStart({
154
+ router: {
155
+ routeFileIgnorePattern:
156
+ ".content.(ts|tsx|js|mjs|cjs|jsx|json|jsonc|json5)$",
157
+ },
158
+ }),
159
+ solidPlugin({ ssr: true }),
160
+ intlayer(),
161
+ ],
162
+ });
163
+ ```
164
+
165
+ > O plugin Vite `intlayer()` é usado para integrar o Intlayer com o Vite. Ele garante a construção dos arquivos de declaração de conteúdo e os monitora no modo de desenvolvimento. Ele define as variáveis de ambiente do Intlayer dentro da aplicação Vite. Adicionalmente, ele fornece aliases para otimizar a performance.
166
+
167
+ ### Passo 5: Criar o Layout Raiz (Root Layout)
168
+
169
+ Configure o seu layout raiz para suportar internacionalização usando `useMatches` para detectar a localidade atual e definindo os atributos `lang` e `dir` na tag `html`.
170
+
171
+ ```tsx fileName="src/routes/__root.tsx"
172
+ import {
173
+ HeadContent,
174
+ Outlet,
175
+ Scripts,
176
+ createRootRouteWithContext,
177
+ useMatches,
178
+ } from "@tanstack/solid-router";
179
+ import { TanStackRouterDevtools } from "@tanstack/solid-router-devtools";
180
+ import { HydrationScript } from "solid-js/web";
181
+ import { Suspense } from "solid-js";
182
+ import { IntlayerProvider } from "solid-intlayer";
183
+ import { defaultLocale, getHTMLTextDir, type Locale } from "intlayer";
184
+
185
+ export const Route = createRootRouteWithContext()({
186
+ shellComponent: RootComponent,
187
+ });
188
+
189
+ type Params = {
190
+ locale: Locale;
191
+ };
192
+
193
+ function RootComponent() {
194
+ const matches = useMatches();
195
+
196
+ // Tenta encontrar a localidade nos parâmetros de qualquer correspondência ativa
197
+ // Isso assume que você usa o segmento dinâmico "/{-$locale}" na sua árvore de rotas
198
+ const locale =
199
+ (
200
+ matches().find((match) => match.routeId === "/{-$locale}/")
201
+ ?.params as Params
202
+ )?.locale ?? defaultLocale;
203
+
204
+ return (
205
+ <html dir={getHTMLTextDir(locale)} lang={locale}>
206
+ <head>
207
+ <HydrationScript />
208
+ </head>
209
+ <body>
210
+ <HeadContent />
211
+ <IntlayerProvider locale={locale}>
212
+ <Suspense>
213
+ <Outlet />
214
+ <TanStackRouterDevtools />
215
+ </Suspense>
216
+ </IntlayerProvider>
217
+ <Scripts />
218
+ </body>
219
+ </html>
220
+ );
221
+ }
222
+ ```
223
+
224
+ > [!NOTE]
225
+ > No Solid, `useMatches` retorna um **signal** (acessador reativo). Use `matches()` (com parênteses) para acessar o valor atual de forma reativa.
226
+
227
+ ### Passo 6: Criar o Layout de Localidade (Opcional)
228
+
229
+ Crie um layout que lide com o prefixo de localidade e realize a validação. Este layout garantirá que apenas localidades válidas sejam processadas.
230
+
231
+ > Este passo é opcional se você não precisar validar o prefixo de localidade ao nível da rota.
232
+
233
+ ```tsx fileName="src/routes/{-$locale}/route.tsx"
234
+ import { createFileRoute, Outlet, redirect } from "@tanstack/solid-router";
235
+ import { validatePrefix } from "intlayer";
236
+
237
+ export const Route = createFileRoute("/{-$locale}")({
238
+ beforeLoad: ({ params }) => {
239
+ const localeParam = params.locale;
240
+
241
+ // Validar o prefixo de localidade
242
+ const { isValid, localePrefix } = validatePrefix(localeParam);
243
+
244
+ if (!isValid) {
245
+ throw redirect({
246
+ to: "/{-$locale}/404",
247
+ params: { locale: localePrefix },
248
+ replace: true,
249
+ });
250
+ }
251
+ },
252
+ component: Outlet,
253
+ });
254
+ ```
255
+
256
+ > Aqui, `{-$locale}` é um parâmetro de rota dinâmico que é substituído pela localidade atual. Esta notação torna o slot opcional, permitindo que funcione com modos de roteamento como `'prefix-no-default'` etc.
257
+
258
+ > Esteja ciente de que este slot pode causar problemas se você usar múltiplos segmentos dinâmicos na mesma rota (ex: `/{-$locale}/outro-caminho/$outroCaminhoDinamico/...`).
259
+ > Para o modo `'prefix-all'`, você pode preferir mudar o slot para `$locale`.
260
+ > Para o modo `'no-prefix'` ou `'search-params'`, você pode remover o slot inteiramente.
261
+
262
+ ### Passo 7: Declarar o Seu Conteúdo
263
+
264
+ Crie e gerencie as suas declarações de conteúdo para armazenar traduções:
265
+
266
+ ```tsx fileName="src/contents/page.content.ts"
267
+ import type { Dictionary } from "intlayer";
268
+
269
+ import { t } from "intlayer";
270
+
271
+ const appContent = {
272
+ content: {
273
+ links: {
274
+ about: t({
275
+ en: "About",
276
+ es: "Acerca de",
277
+ fr: "À propos",
278
+ }),
279
+ home: t({
280
+ en: "Home",
281
+ es: "Inicio",
282
+ fr: "Accueil",
283
+ }),
284
+ },
285
+ meta: {
286
+ title: t({
287
+ en: "Welcome to Intlayer + TanStack Router",
288
+ es: "Bienvenido a Intlayer + TanStack Router",
289
+ fr: "Bienvenue à Intlayer + TanStack Router",
290
+ }),
291
+ description: t({
292
+ en: "This is an example of using Intlayer with TanStack Router",
293
+ es: "Este es un ejemplo de uso de Intlayer con TanStack Router",
294
+ fr: "Ceci est un exemple d'utilisation d'Intlayer avec TanStack Router",
295
+ }),
296
+ },
297
+ },
298
+ key: "app",
299
+ } satisfies Dictionary;
300
+
301
+ export default appContent;
302
+ ```
303
+
304
+ > As suas declarações de conteúdo podem ser definidas em qualquer lugar da sua aplicação, desde que sejam incluídas no diretório `contentDir` (por padrão, `./app`). E correspondam à extensão do arquivo de declaração de conteúdo (por padrão, `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
305
+
306
+ > Para mais detalhes, consulte a [documentação de declaração de conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/content_file.md).
307
+
308
+ ### Passo 8: Utilizar Componentes e Hooks Cientes de Localidade
309
+
310
+ Crie um componente `LocalizedLink` para navegação ciente de localidade:
311
+
312
+ ```tsx fileName="src/components/LocalizedLink.tsx"
313
+ import { Link, type LinkProps } from "@tanstack/solid-router";
314
+ import { getPrefix } from "intlayer";
315
+ import { useLocale } from "solid-intlayer";
316
+ import type { JSX } from "solid-js";
317
+
318
+ export const LOCALE_ROUTE = "{-$locale}" as const;
319
+
320
+ export type RemoveLocaleParam<TVal> = TVal extends string
321
+ ? RemoveLocaleFromString<TVal>
322
+ : TVal;
323
+
324
+ export type To = RemoveLocaleParam<LinkProps["to"]>;
325
+
326
+ type CollapseDoubleSlashes<TString extends string> =
327
+ TString extends `${infer THead}//${infer TTail}`
328
+ ? CollapseDoubleSlashes<`${THead}/${TTail}`>
329
+ : TString;
330
+
331
+ export type LocalizedLinkProps = Omit<LinkProps, "to"> & {
332
+ to?: To;
333
+ } & JSX.AnchorHTMLAttributes<HTMLAnchorElement>;
334
+
335
+ type RemoveAll<
336
+ TString extends string,
337
+ TSub extends string,
338
+ > = TString extends `${infer THead}${TSub}${infer TTail}`
339
+ ? RemoveAll<`${THead}${TTail}`, TSub>
340
+ : TString;
341
+
342
+ type RemoveLocaleFromString<TString extends string> = CollapseDoubleSlashes<
343
+ RemoveAll<TString, typeof LOCALE_ROUTE>
344
+ >;
345
+
346
+ export const LocalizedLink = (props: LocalizedLinkProps) => {
347
+ const { locale } = useLocale();
348
+
349
+ return (
350
+ <Link
351
+ {...props}
352
+ params={{
353
+ locale: getPrefix(locale()).localePrefix,
354
+ ...(typeof props.params === "object" ? props.params : {}),
355
+ }}
356
+ to={`/${LOCALE_ROUTE}${props.to ?? ""}` as LinkProps["to"]}
357
+ />
358
+ );
359
+ };
360
+ ```
361
+
362
+ Este componente tem dois objetivos:
363
+
364
+ - Remover o prefixo desnecessário `{-$locale}` da URL.
365
+ - Injetar o parâmetro de localidade na URL para garantir que o usuário seja diretamente redirecionado para a rota localizada.
366
+
367
+ Depois, podemos criar um hook `useLocalizedNavigate` para navegação programática:
368
+
369
+ ```tsx fileName="src/hooks/useLocalizedNavigate.tsx"
370
+ import { useNavigate } from "@tanstack/solid-router";
371
+ import { getLocalizedUrl } from "intlayer";
372
+ import { useLocale } from "solid-intlayer";
373
+
374
+ export const useLocalizedNavigate = () => {
375
+ const navigate = useNavigate();
376
+ const { locale } = useLocale();
377
+
378
+ const localizedNavigate = (to: string) => {
379
+ const localizedTo = getLocalizedUrl(to, locale());
380
+ return navigate({ to: localizedTo });
381
+ };
382
+
383
+ return localizedNavigate;
384
+ };
385
+ ```
386
+
387
+ ### Passo 9: Utilizar o Intlayer em Suas Páginas
388
+
389
+ Acesse seus dicionários de conteúdo através da sua aplicação:
390
+
391
+ #### Página Inicial Localizada
392
+
393
+ ```tsx fileName="src/routes/{-$locale}/index.tsx"
394
+ import { createFileRoute } from "@tanstack/solid-router";
395
+ import { useIntlayer } from "solid-intlayer";
396
+ import { LocalizedLink } from "@/components/LocalizedLink";
397
+
398
+ export const Route = createFileRoute("/{-$locale}/")({
399
+ component: RouteComponent,
400
+ });
401
+
402
+ function RouteComponent() {
403
+ const content = useIntlayer("index-page");
404
+
405
+ return (
406
+ <main>
407
+ <h1>{content().heroTitle}</h1>
408
+ <p>{content().heroDesc}</p>
409
+ <div>
410
+ <LocalizedLink to="/">{content().navHome}</LocalizedLink>
411
+ <LocalizedLink to="/about">{content().navAbout}</LocalizedLink>
412
+ </div>
413
+ </main>
414
+ );
415
+ }
416
+ ```
417
+
418
+ > [!NOTE]
419
+ > No Solid, `useIntlayer` retorna uma função **accessor** (ex: `content()`). Você deve chamar esta função para acessar o conteúdo reativo.
420
+ >
421
+ > Para aprender mais sobre o hook `useIntlayer`, consulte a [documentação](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/solid-intlayer/useIntlayer.md).
422
+
423
+ ### Passo 10: Criar um Componente Seletor de Localidade (Locale Switcher)
424
+
425
+ Crie um componente para permitir que os usuários mudem de língua:
426
+
427
+ ```tsx fileName="src/components/LocaleSwitcher.tsx"
428
+ import { useLocation } from "@tanstack/solid-router";
429
+ import { getLocaleName, getPathWithoutLocale, getPrefix } from "intlayer";
430
+ import { For } from "solid-js";
431
+ import { useIntlayer, useLocale } from "solid-intlayer";
432
+ import { LocalizedLink, type To } from "./LocalizedLink";
433
+
434
+ export const LocaleSwitcher = () => {
435
+ const content = useIntlayer("locale-switcher");
436
+ const location = useLocation();
437
+
438
+ const { availableLocales, locale, setLocale } = useLocale();
439
+
440
+ const pathWithoutLocale = () => getPathWithoutLocale(location().pathname);
441
+
442
+ return (
443
+ <div class="flex flex-row gap-2">
444
+ <For each={availableLocales}>
445
+ {(localeEl) => (
446
+ <LocalizedLink
447
+ aria-current={localeEl === locale() ? "page" : undefined}
448
+ onClick={() => setLocale(localeEl)}
449
+ params={{ locale: getPrefix(localeEl).localePrefix }}
450
+ to={pathWithoutLocale() as To}
451
+ >
452
+ {getLocaleName(localeEl)}
453
+ </LocalizedLink>
454
+ )}
455
+ </For>
456
+ </div>
457
+ );
458
+ };
459
+
460
+ export default LocaleSwitcher;
461
+ ```
462
+
463
+ > [!NOTE]
464
+ > No Solid, `locale` de `useLocale` é um **signal accessor**. Use `locale()` (com parênteses) para ler o seu valor atual de forma reativa.
465
+ >
466
+ > Para aprender mais sobre o hook `useLocale`, consulte la [documentação](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/solid-intlayer/useLocale.md).
467
+
468
+ ### Passo 11: Gerenciamento de Atributos HTML
469
+
470
+ Como visto no Passo 5, você pode gerenciar os atributos `lang` e `dir` da tag `html` usando `useMatches` no seu componente raiz. Isso garante que os atributos corretos sejam definidos no servidor e no cliente.
471
+
472
+ ```tsx fileName="src/routes/__root.tsx"
473
+ const RootComponent: ParentComponent = (props) => {
474
+ const matches = useMatches();
475
+
476
+ // Tentar encontrar a localidade nos parâmetros de qualquer correspondência ativa
477
+ const locale =
478
+ (
479
+ matches().find((match) => match.routeId === "/{-$locale}/")
480
+ ?.params as Params
481
+ )?.locale ?? defaultLocale;
482
+
483
+ return (
484
+ <html dir={getHTMLTextDir(locale)} lang={locale}>
485
+ {/* ... */}
486
+ </html>
487
+ );
488
+ };
489
+ ```
490
+
491
+ ---
492
+
493
+ ### Passo 12: Adicionar Middleware (Opcional)
494
+
495
+ Você também pode usar o `intlayerProxy` para adicionar roteamento do lado do servidor à sua aplicação. Este plugin detectará automaticamente a localidade atual baseada na URL e definirá o cookie de localidade apropriado. Se nenhuma localidade for especificada, o plugin determinará a localidade mais apropriada baseada nas preferências de língua do navegador do usuário. Se nenhuma localidade for detectada, ele redirecionará para a localidade padrão.
496
+
497
+ > Note que para usar o `intlayerProxy` em produção, você precisa trocar o pacote `vite-intlayer` de `devDependencies` para `dependencies`.
498
+
499
+ ```typescript {7,14-17} fileName="vite.config.ts"
500
+ import { tanstackStart } from "@tanstack/solid-start/plugin/vite";
501
+ import solid from "vite-plugin-solid";
502
+ import { nitro } from "nitro/vite";
503
+ import { defineConfig } from "vite";
504
+ import { intlayer, intlayerProxy } from "vite-intlayer";
505
+ import viteTsConfigPaths from "vite-tsconfig-paths";
506
+
507
+ export default defineConfig({
508
+ plugins: [
509
+ intlayerProxy(), // O proxy deve ser colocado antes do servidor se você usar o Nitro
510
+ nitro(),
511
+ viteTsConfigPaths({
512
+ projects: ["./tsconfig.json"],
513
+ }),
514
+ intlayer(),
515
+ tanstackStart({
516
+ router: {
517
+ routeFileIgnorePattern:
518
+ ".content.(ts|tsx|js|mjs|cjs|jsx|json|jsonc|json5)$",
519
+ },
520
+ }),
521
+ solid(),
522
+ ],
523
+ });
524
+ ```
525
+
526
+ ---
527
+
528
+ ### Passo 13: Internacionalizar Seus Metadados (Opcional)
529
+
530
+ Você também pode usar a função `getIntlayer` para acessar seus dicionários de conteúdo dentro do loader `head` para metadados cientes de localidade:
531
+
532
+ ```tsx fileName="src/routes/{-$locale}/index.tsx"
533
+ import { createFileRoute } from "@tanstack/solid-router";
534
+ import { getIntlayer } from "intlayer";
535
+
536
+ export const Route = createFileRoute("/{-$locale}/")({
537
+ component: RouteComponent,
538
+ head: ({ params }) => {
539
+ const { locale } = params;
540
+ const metaContent = getIntlayer("page-metadata", locale);
541
+
542
+ return {
543
+ meta: [
544
+ { title: metaContent.title },
545
+ { content: metaContent.description, name: "description" },
546
+ ],
547
+ };
548
+ },
549
+ });
550
+ ```
551
+
552
+ ---
553
+
554
+ ### Passo 14: Recuperar a localidade nas suas server actions (Opcional)
555
+
556
+ Você pode querer acessar a localidade atual de dentro das suas server actions ou endpoints de API.
557
+ Você pode fazer isso usando o helper `getLocale` do `intlayer`.
558
+
559
+ Aqui está um exemplo usando as server functions do TanStack Start:
560
+
561
+ ```tsx fileName="src/routes/{-$locale}/index.tsx"
562
+ import { createServerFn } from "@tanstack/solid-start";
563
+ import {
564
+ getRequestHeader,
565
+ getRequestHeaders,
566
+ } from "@tanstack/solid-start/server";
567
+ import { getCookie, getIntlayer, getLocale } from "intlayer";
568
+
569
+ export const getLocaleServer = createServerFn().handler(async () => {
570
+ const locale = await getLocale({
571
+ // Obter o cookie da requisição (padrão: 'INTLAYER_LOCALE')
572
+ getCookie: (name) => {
573
+ const cookieString = getRequestHeader("cookie");
574
+
575
+ return getCookie(name, cookieString);
576
+ },
577
+ // Obter o header da requisição (padrão: 'x-intlayer-locale')
578
+ // Fallback usando negociação Accept-Language
579
+ getHeader: (name) => getRequestHeader(name),
580
+ });
581
+
582
+ // Recuperar algum conteúdo usando getIntlayer()
583
+ const content = getIntlayer("app", locale);
584
+
585
+ return { locale, content };
586
+ });
587
+ ```
588
+
589
+ ---
590
+
591
+ ### Passo 15: Gerenciar páginas não encontradas (Opcional)
592
+
593
+ Quando um usuário visita uma página inexistente, você pode exibir uma página personalizada de não encontrado e o prefixo de localidade pode impactar a maneira como a página de não encontrado é disparada.
594
+
595
+ #### Entendendo o Processamento de 404 do TanStack Router com Prefixos de Localidade
596
+
597
+ No TanStack Router, processar páginas 404 com rotas localizadas requer uma abordagem multicamada:
598
+
599
+ 1. **Rota de 404 dedicada**: Uma rota específica para exibir a UI do 404
600
+ 2. **Validação ao nível da rota**: Valida os prefixos de localidade e redireciona os inválidos para o 404
601
+ 3. **Rota catch-all**: Captura quaisquer caminhos não correspondentes dentro do segmento de localidade
602
+
603
+ ```tsx fileName="src/routes/{-$locale}/404.tsx"
604
+ import { createFileRoute } from "@tanstack/solid-router";
605
+
606
+ // Isso cria uma rota /[locale]/404 dedicada
607
+ // Ela é usada tanto como uma rota direta quanto importada como um componente em outros arquivos
608
+ export const Route = createFileRoute("/{-$locale}/404")({
609
+ component: NotFoundComponent,
610
+ });
611
+
612
+ // Exportado separadamente para que possa ser reutilizado em notFoundComponent e rotas catch-all
613
+ export function NotFoundComponent() {
614
+ return (
615
+ <div>
616
+ <h1>404</h1>
617
+ </div>
618
+ );
619
+ }
620
+ ```
621
+
622
+ ```tsx fileName="src/routes/{-$locale}/route.tsx"
623
+ import { createFileRoute, Outlet, redirect } from "@tanstack/solid-router";
624
+ import { validatePrefix } from "intlayer";
625
+ import { NotFoundComponent } from "./404";
626
+
627
+ export const Route = createFileRoute("/{-$locale}")({
628
+ // beforeLoad executa antes da rota renderizar (tanto no servidor quanto no cliente)
629
+ // É o lugar ideal para validar o prefixo de localidade
630
+ beforeLoad: ({ params }) => {
631
+ const localeParam = params.locale;
632
+
633
+ // validatePrefix verifica se a localidade é válida de acordo com a sua configuração do intlayer
634
+ const { isValid, localePrefix } = validatePrefix(localeParam);
635
+
636
+ if (!isValid) {
637
+ // Prefixo de localidade inválido - redireciona para a página 404 com um prefixo de localidade válido
638
+ throw redirect({
639
+ to: "/{-$locale}/404",
640
+ params: { locale: localePrefix },
641
+ });
642
+ }
643
+ },
644
+ component: Outlet,
645
+ // notFoundComponent é chamado quando uma rota filha não existe
646
+ // ex: /en/pagina-nao-existente dispara isso dentro do layout /en
647
+ notFoundComponent: NotFoundComponent,
648
+ });
649
+ ```
650
+
651
+ ```tsx fileName="src/routes/{-$locale}/$.tsx"
652
+ import { createFileRoute } from "@tanstack/solid-router";
653
+
654
+ import { NotFoundComponent } from "./404";
655
+
656
+ // A rota $ (splat/catch-all) corresponde a qualquer caminho que não corresponda a outras rotas
657
+ // ex: /en/algum/caminho/profundamente/aninhado/invalido
658
+ // Isso garante que TODOS os caminhos não correspondentes dentro de uma localidade mostrem a página 404
659
+ // Sem isso, caminhos profundos não correspondentes poderiam mostrar uma página em branco ou erro
660
+ export const Route = createFileRoute("/{-$locale}/$")({
661
+ component: NotFoundComponent,
662
+ });
663
+ ```
664
+
665
+ ### (Opcional) Passo 16: Extrair o conteúdo dos seus componentes
666
+
667
+ Se você tem uma base de código existente, transformar milhares de arquivos pode ser demorado.
668
+
669
+ Para facilitar este processo, o Intlayer propõe um [compilador](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/compiler.md) / [extrator](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/cli/extract.md) para transformar os seus componentes e extrair o conteúdo.
670
+
671
+ Para configurá-lo, você pode adicionar uma seção `compiler` no seu arquivo `intlayer.config.ts`:
672
+
673
+ ```typescript fileName="intlayer.config.ts" codeFormat="typescript"
674
+ import { type IntlayerConfig } from "intlayer";
675
+
676
+ const config: IntlayerConfig = {
677
+ // ... Resto da sua configuração
678
+ compiler: {
679
+ /**
680
+ * Indica se o compilador deve ser habilitado.
681
+ */
682
+ enabled: true,
683
+
684
+ /**
685
+ * Define o caminho dos arquivos de saída
686
+ */
687
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
688
+
689
+ /**
690
+ * Indica se os componentes devem ser salvos após serem transformados.
691
+ *
692
+ * - Se `true`, o compilador reescreverá o arquivo do componente no disco. Assim, a transformação será permanente, e o compilador pulará a transformação para o próximo processo. Dessa forma, o compilador pode transformar a aplicação e depois pode ser removido.
693
+ *
694
+ * - Se `false`, o compilador injetará a chamada de função `useIntlayer()` no código apenas no output da build, mantendo a base de código intacta. A transformação será feita apenas em memória.
695
+ */
696
+ saveComponents: false,
697
+
698
+ /**
699
+ * Prefixo da chave do dicionário
700
+ */
701
+ dictionaryKeyPrefix: "",
702
+ },
703
+ };
704
+
705
+ export default config;
706
+ ```
707
+
708
+ ```javascript fileName="intlayer.config.mjs" codeFormat="esm"
709
+ /** @type {import('intlayer').IntlayerConfig} */
710
+ const config = {
711
+ // ... Resto da sua configuração
712
+ compiler: {
713
+ /**
714
+ * Indica se o compilador deve ser habilitado.
715
+ */
716
+ enabled: true,
717
+
718
+ /**
719
+ * Define o caminho dos arquivos de saída
720
+ */
721
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
722
+
723
+ /**
724
+ * Indica se os componentes devem ser salvos após serem transformados.
725
+ *
726
+ * - Se `true`, o compilador reescreverá o arquivo do componente no disco. Assim, a transformação será permanente, e o compilador pulará a transformação para o próximo processo. Dessa forma, o compilador pode transformar a aplicação e depois pode ser removido.
727
+ *
728
+ * - Se `false`, o compilador injetará a chamada de função `useIntlayer()` no código apenas no output da build, mantendo a base de código intacta. A transformação será feita apenas em memória.
729
+ */
730
+ saveComponents: false,
731
+
732
+ /**
733
+ * Prefixo da chave do dicionário
734
+ */
735
+ dictionaryKeyPrefix: "",
736
+ },
737
+ };
738
+
739
+ export default config;
740
+ ```
741
+
742
+ ```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
743
+ /** @type {import('intlayer').IntlayerConfig} */
744
+ const config = {
745
+ // ... Resto da sua configuração
746
+ compiler: {
747
+ /**
748
+ * Indica se o compilador deve ser habilitado.
749
+ */
750
+ enabled: true,
751
+
752
+ /**
753
+ * Define o caminho dos arquivos de saída
754
+ */
755
+ output: ({ fileName, extension }) => `./${fileName}${extension}`,
756
+
757
+ /**
758
+ * Indica se os componentes devem ser salvos após serem transformados.
759
+ *
760
+ * - Se `true`, o compilador reescreverá o arquivo do componente no disco. Assim, a transformação será permanente, e o compilador pulará a transformação para o próximo processo. Dessa forma, o compilador pode transformar a aplicação e depois pode ser removido.
761
+ *
762
+ * - Se `false`, o compilador injetará a chamada de função `useIntlayer()` no código apenas no output da build, mantendo a base de código intacta. A transformação será feita apenas em memória.
763
+ */
764
+ saveComponents: false,
765
+
766
+ /**
767
+ * Prefixo da chave do dicionário
768
+ */
769
+ dictionaryKeyPrefix: "",
770
+ },
771
+ };
772
+
773
+ module.exports = config;
774
+ ```
775
+
776
+ <Tabs>
777
+ <Tab value='Comando extract'>
778
+
779
+ Rode o extrator para transformar os seus componentes e extrair o conteúdo
780
+
781
+ ```bash packageManager="npm"
782
+ npx intlayer extract
783
+ ```
784
+
785
+ ```bash packageManager="pnpm"
786
+ pnpm intlayer extract
787
+ ```
788
+
789
+ ```bash packageManager="yarn"
790
+ yarn intlayer extract
791
+ ```
792
+
793
+ ```bash packageManager="bun"
794
+ bun x intlayer extract
795
+ ```
796
+
797
+ </Tab>
798
+ <Tab value='Compilador Babel'>
799
+
800
+ Atualize o seu `vite.config.ts` para incluir o plugin `intlayerCompiler`:
801
+
802
+ ```ts fileName="vite.config.ts"
803
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
804
+ import { defineConfig } from "vite";
805
+ import { devtools } from "@tanstack/devtools-vite";
806
+ import viteTsConfigPaths from "vite-tsconfig-paths";
807
+ import { tanstackStart } from "@tanstack/solid-start/plugin/vite";
808
+ import solidPlugin from "vite-plugin-solid";
809
+
810
+ export default defineConfig({
811
+ plugins: [
812
+ devtools(),
813
+ viteTsConfigPaths({
814
+ projects: ["./tsconfig.json"],
815
+ }),
816
+ tanstackStart({
817
+ router: {
818
+ routeFileIgnorePattern:
819
+ ".content.(ts|tsx|js|mjs|cjs|jsx|json|jsonc|json5)$",
820
+ },
821
+ }),
822
+ solidPlugin({ ssr: true }),
823
+ intlayer(),
824
+ intlayerCompiler(),
825
+ ],
826
+ });
827
+ ```
828
+
829
+ ```bash packageManager="npm"
830
+ npm run build # Ou rpm run dev
831
+ ```
832
+
833
+ ```bash packageManager="pnpm"
834
+ pnpm run build # Ou pnpm run dev
835
+ ```
836
+
837
+ ```bash packageManager="yarn"
838
+ yarn build # Ou yarn dev
839
+ ```
840
+
841
+ ```bash packageManager="bun"
842
+ bun run build # Ou bun run dev
843
+ ```
844
+
845
+ </Tab>
846
+ </Tabs>
847
+
848
+ ---
849
+
850
+ ### Passo 17: Configurar TypeScript (Opcional)
851
+
852
+ O Intlayer usa a ampliação de módulo para obter os benefícios do TypeScript e tornar a sua base de código mais forte.
853
+
854
+ Certifique-se de que a sua configuração do TypeScript inclua os tipos autogerados:
855
+
856
+ ```json5 fileName="tsconfig.json"
857
+ {
858
+ // ... as suas configurações existentes
859
+ include: [
860
+ // ... os seus includes existentes
861
+ ".intlayer/**/*.ts", // Incluir os tipos autogerados
862
+ ],
863
+ }
864
+ ```
865
+
866
+ ---
867
+
868
+ ### Configuração Git
869
+
870
+ É recomendado ignorar os arquivos gerados pelo Intlayer. Isso permite que você evite committá-los no seu repositório Git.
871
+
872
+ Para fazer isso, você pode adicionar as seguintes instruções ao seu arquivo `.gitignore`:
873
+
874
+ ```plaintext fileName=".gitignore"
875
+ # Ignorar os arquivos gerados pelo Intlayer
876
+ .intlayer
877
+ ```
878
+
879
+ ---
880
+
881
+ ## Extensão VS Code
882
+
883
+ Para melhorar a sua experiência de desenvolvimento com o Intlayer, você pode instalar a **Extensão oficial do Intlayer VS Code**.
884
+
885
+ [Instalar a partir do VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
886
+
887
+ Esta extensão oferece:
888
+
889
+ - **Autocompletar** para chaves de tradução.
890
+ - **Detecção de erros em tempo real** para traduções ausentes.
891
+ - **Previsões inline** de conteúdo traduzido.
892
+ - **Ações rápidas** para criar e atualizar traduções facilmente.
893
+
894
+ Para mais detalhes sobre como usar a extensão, consulte a [documentação da Extensão Intlayer VS Code](https://intlayer.org/doc/vs-code-extension).
895
+
896
+ ---
897
+
898
+ ## Ir Além
899
+
900
+ Para ir mais além, você pode implementar o [editor visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_visual_editor.md) ou externalizar o seu conteúdo usando o [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/intlayer_CMS.md).
901
+
902
+ ---
903
+
904
+ ## Referências de Documentação
905
+
906
+ - [Documentação do Intlayer](https://intlayer.org)
907
+ - [Documentação do Tanstack Start](https://tanstack.com/start/latest)
908
+ - [hook useIntlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/solid-intlayer/useIntlayer.md)
909
+ - [hook useLocale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/packages/solid-intlayer/useLocale.md)
910
+ - [Declaração de Conteúdo](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/dictionary/content_file.md)
911
+ - [Configuração](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/configuration.md)