@intlayer/docs 9.5.5 → 9.5.6

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 (447) hide show
  1. package/README.md +0 -1
  2. package/blog/ar/transform_existing_vite_react_app_using_compiler.md +4 -2
  3. package/blog/de/transform_existing_vite_react_app_using_compiler.md +4 -2
  4. package/blog/en/transform_existing_vite_react_app_using_compiler.md +4 -2
  5. package/blog/en-GB/transform_existing_vite_react_app_using_compiler.md +4 -2
  6. package/blog/es/transform_existing_vite_react_app_using_compiler.md +4 -2
  7. package/blog/fr/transform_existing_vite_react_app_using_compiler.md +4 -2
  8. package/blog/hi/transform_existing_vite_react_app_using_compiler.md +4 -2
  9. package/blog/id/transform_existing_vite_react_app_using_compiler.md +4 -2
  10. package/blog/it/transform_existing_vite_react_app_using_compiler.md +4 -2
  11. package/blog/ja/transform_existing_vite_react_app_using_compiler.md +4 -2
  12. package/blog/ko/transform_existing_vite_react_app_using_compiler.md +4 -2
  13. package/blog/pl/transform_existing_vite_react_app_using_compiler.md +4 -2
  14. package/blog/pt/transform_existing_vite_react_app_using_compiler.md +4 -2
  15. package/blog/ru/transform_existing_vite_react_app_using_compiler.md +4 -2
  16. package/blog/tr/transform_existing_vite_react_app_using_compiler.md +4 -2
  17. package/blog/uk/transform_existing_vite_react_app_using_compiler.md +4 -2
  18. package/blog/vi/transform_existing_vite_react_app_using_compiler.md +4 -2
  19. package/blog/zh/transform_existing_vite_react_app_using_compiler.md +4 -2
  20. package/docs/ar/intlayer_with_astro.md +19 -32
  21. package/docs/ar/intlayer_with_astro_lit.md +32 -36
  22. package/docs/ar/intlayer_with_astro_preact.md +32 -36
  23. package/docs/ar/intlayer_with_astro_react.md +32 -36
  24. package/docs/ar/intlayer_with_astro_solid.md +32 -36
  25. package/docs/ar/intlayer_with_astro_svelte.md +32 -36
  26. package/docs/ar/intlayer_with_astro_vue.md +32 -36
  27. package/docs/ar/intlayer_with_react_router_v7.md +12 -1
  28. package/docs/ar/intlayer_with_solid_start.md +14 -7
  29. package/docs/ar/intlayer_with_svelte_kit.md +12 -1
  30. package/docs/ar/intlayer_with_tanstack+solid.md +13 -2
  31. package/docs/ar/intlayer_with_tanstack.md +13 -6
  32. package/docs/ar/intlayer_with_vite+lit.md +75 -3
  33. package/docs/ar/intlayer_with_vite+preact.md +27 -19
  34. package/docs/ar/intlayer_with_vite+react.md +27 -19
  35. package/docs/ar/intlayer_with_vite+solid.md +27 -19
  36. package/docs/ar/intlayer_with_vite+svelte.md +27 -19
  37. package/docs/ar/intlayer_with_vite+vanilla.md +16 -3
  38. package/docs/ar/intlayer_with_vite+vue.md +27 -19
  39. package/docs/ar/introduction.md +0 -1
  40. package/docs/ar/readme.md +0 -1
  41. package/docs/ar/releases/v8.md +1 -5
  42. package/docs/bn/intlayer_with_vite+lit.md +75 -3
  43. package/docs/bn/intlayer_with_vite+vanilla.md +16 -3
  44. package/docs/bn/introduction.md +0 -1
  45. package/docs/cs/intlayer_with_vite+lit.md +75 -3
  46. package/docs/cs/intlayer_with_vite+vanilla.md +16 -3
  47. package/docs/cs/introduction.md +0 -1
  48. package/docs/de/intlayer_with_astro.md +12 -25
  49. package/docs/de/intlayer_with_astro_lit.md +23 -27
  50. package/docs/de/intlayer_with_astro_preact.md +23 -27
  51. package/docs/de/intlayer_with_astro_react.md +23 -27
  52. package/docs/de/intlayer_with_astro_solid.md +23 -27
  53. package/docs/de/intlayer_with_astro_svelte.md +23 -27
  54. package/docs/de/intlayer_with_astro_vue.md +23 -27
  55. package/docs/de/intlayer_with_react_router_v7.md +12 -1
  56. package/docs/de/intlayer_with_solid_start.md +14 -7
  57. package/docs/de/intlayer_with_svelte_kit.md +12 -1
  58. package/docs/de/intlayer_with_tanstack+solid.md +13 -2
  59. package/docs/de/intlayer_with_tanstack.md +13 -6
  60. package/docs/de/intlayer_with_vite+lit.md +75 -3
  61. package/docs/de/intlayer_with_vite+preact.md +16 -3
  62. package/docs/de/intlayer_with_vite+react.md +16 -3
  63. package/docs/de/intlayer_with_vite+solid.md +16 -3
  64. package/docs/de/intlayer_with_vite+svelte.md +16 -3
  65. package/docs/de/intlayer_with_vite+vanilla.md +16 -3
  66. package/docs/de/intlayer_with_vite+vue.md +16 -3
  67. package/docs/de/introduction.md +0 -1
  68. package/docs/de/readme.md +0 -1
  69. package/docs/de/releases/v8.md +1 -5
  70. package/docs/en/intlayer_with_astro.md +5 -20
  71. package/docs/en/intlayer_with_astro_lit.md +22 -26
  72. package/docs/en/intlayer_with_astro_preact.md +22 -26
  73. package/docs/en/intlayer_with_astro_react.md +22 -26
  74. package/docs/en/intlayer_with_astro_solid.md +22 -26
  75. package/docs/en/intlayer_with_astro_svelte.md +22 -26
  76. package/docs/en/intlayer_with_astro_vanilla.md +20 -13
  77. package/docs/en/intlayer_with_astro_vue.md +22 -26
  78. package/docs/en/intlayer_with_react_router_v7.md +12 -1
  79. package/docs/en/intlayer_with_solid_start.md +14 -7
  80. package/docs/en/intlayer_with_svelte_kit.md +12 -1
  81. package/docs/en/intlayer_with_tanstack+solid.md +13 -2
  82. package/docs/en/intlayer_with_tanstack.md +12 -5
  83. package/docs/en/intlayer_with_vite+lit.md +75 -3
  84. package/docs/en/intlayer_with_vite+preact.md +16 -3
  85. package/docs/en/intlayer_with_vite+react.md +16 -3
  86. package/docs/en/intlayer_with_vite+solid.md +16 -3
  87. package/docs/en/intlayer_with_vite+svelte.md +16 -3
  88. package/docs/en/intlayer_with_vite+vanilla.md +16 -3
  89. package/docs/en/intlayer_with_vite+vue.md +16 -3
  90. package/docs/en/introduction.md +0 -1
  91. package/docs/en/readme.md +0 -1
  92. package/docs/en/releases/v8.md +1 -5
  93. package/docs/en-GB/intlayer_with_astro.md +12 -25
  94. package/docs/en-GB/intlayer_with_astro_lit.md +23 -27
  95. package/docs/en-GB/intlayer_with_astro_preact.md +23 -27
  96. package/docs/en-GB/intlayer_with_astro_react.md +23 -27
  97. package/docs/en-GB/intlayer_with_astro_solid.md +23 -27
  98. package/docs/en-GB/intlayer_with_astro_svelte.md +23 -27
  99. package/docs/en-GB/intlayer_with_astro_vue.md +23 -27
  100. package/docs/en-GB/intlayer_with_react_router_v7.md +12 -1
  101. package/docs/en-GB/intlayer_with_solid_start.md +14 -7
  102. package/docs/en-GB/intlayer_with_svelte_kit.md +12 -1
  103. package/docs/en-GB/intlayer_with_tanstack+solid.md +13 -2
  104. package/docs/en-GB/intlayer_with_tanstack.md +13 -6
  105. package/docs/en-GB/intlayer_with_vite+lit.md +75 -3
  106. package/docs/en-GB/intlayer_with_vite+preact.md +16 -3
  107. package/docs/en-GB/intlayer_with_vite+react.md +16 -3
  108. package/docs/en-GB/intlayer_with_vite+solid.md +25 -15
  109. package/docs/en-GB/intlayer_with_vite+svelte.md +16 -3
  110. package/docs/en-GB/intlayer_with_vite+vanilla.md +16 -3
  111. package/docs/en-GB/intlayer_with_vite+vue.md +16 -3
  112. package/docs/en-GB/introduction.md +0 -1
  113. package/docs/en-GB/readme.md +0 -1
  114. package/docs/en-GB/releases/v8.md +1 -5
  115. package/docs/es/intlayer_with_astro.md +12 -25
  116. package/docs/es/intlayer_with_astro_lit.md +23 -27
  117. package/docs/es/intlayer_with_astro_preact.md +23 -27
  118. package/docs/es/intlayer_with_astro_react.md +23 -27
  119. package/docs/es/intlayer_with_astro_solid.md +23 -27
  120. package/docs/es/intlayer_with_astro_svelte.md +23 -27
  121. package/docs/es/intlayer_with_astro_vue.md +23 -27
  122. package/docs/es/intlayer_with_react_router_v7.md +12 -1
  123. package/docs/es/intlayer_with_solid_start.md +14 -7
  124. package/docs/es/intlayer_with_svelte_kit.md +12 -1
  125. package/docs/es/intlayer_with_tanstack+solid.md +13 -2
  126. package/docs/es/intlayer_with_tanstack.md +13 -6
  127. package/docs/es/intlayer_with_vite+lit.md +75 -3
  128. package/docs/es/intlayer_with_vite+preact.md +16 -3
  129. package/docs/es/intlayer_with_vite+react.md +16 -3
  130. package/docs/es/intlayer_with_vite+solid.md +16 -3
  131. package/docs/es/intlayer_with_vite+svelte.md +16 -3
  132. package/docs/es/intlayer_with_vite+vanilla.md +16 -3
  133. package/docs/es/intlayer_with_vite+vue.md +16 -3
  134. package/docs/es/introduction.md +0 -1
  135. package/docs/es/readme.md +0 -1
  136. package/docs/es/releases/v8.md +1 -5
  137. package/docs/fr/intlayer_with_astro.md +13 -26
  138. package/docs/fr/intlayer_with_astro_lit.md +24 -28
  139. package/docs/fr/intlayer_with_astro_preact.md +24 -28
  140. package/docs/fr/intlayer_with_astro_react.md +24 -28
  141. package/docs/fr/intlayer_with_astro_solid.md +24 -28
  142. package/docs/fr/intlayer_with_astro_svelte.md +24 -28
  143. package/docs/fr/intlayer_with_astro_vue.md +24 -28
  144. package/docs/fr/intlayer_with_react_router_v7.md +15 -4
  145. package/docs/fr/intlayer_with_solid_start.md +14 -7
  146. package/docs/fr/intlayer_with_svelte_kit.md +15 -4
  147. package/docs/fr/intlayer_with_tanstack+solid.md +15 -4
  148. package/docs/fr/intlayer_with_tanstack.md +13 -6
  149. package/docs/fr/intlayer_with_vite+lit.md +75 -3
  150. package/docs/fr/intlayer_with_vite+preact.md +19 -6
  151. package/docs/fr/intlayer_with_vite+react.md +19 -6
  152. package/docs/fr/intlayer_with_vite+solid.md +19 -6
  153. package/docs/fr/intlayer_with_vite+svelte.md +19 -6
  154. package/docs/fr/intlayer_with_vite+vanilla.md +19 -6
  155. package/docs/fr/intlayer_with_vite+vue.md +19 -6
  156. package/docs/fr/introduction.md +0 -1
  157. package/docs/fr/readme.md +0 -1
  158. package/docs/fr/releases/v8.md +1 -5
  159. package/docs/hi/intlayer_with_astro.md +15 -31
  160. package/docs/hi/intlayer_with_astro_lit.md +26 -33
  161. package/docs/hi/intlayer_with_astro_preact.md +26 -33
  162. package/docs/hi/intlayer_with_astro_react.md +26 -33
  163. package/docs/hi/intlayer_with_astro_solid.md +26 -33
  164. package/docs/hi/intlayer_with_astro_svelte.md +26 -33
  165. package/docs/hi/intlayer_with_astro_vue.md +26 -33
  166. package/docs/hi/intlayer_with_react_router_v7.md +20 -12
  167. package/docs/hi/intlayer_with_solid_start.md +14 -7
  168. package/docs/hi/intlayer_with_svelte_kit.md +20 -12
  169. package/docs/hi/intlayer_with_tanstack+solid.md +13 -2
  170. package/docs/hi/intlayer_with_tanstack.md +21 -17
  171. package/docs/hi/intlayer_with_vite+lit.md +75 -3
  172. package/docs/hi/intlayer_with_vite+preact.md +24 -14
  173. package/docs/hi/intlayer_with_vite+react.md +24 -14
  174. package/docs/hi/intlayer_with_vite+solid.md +24 -14
  175. package/docs/hi/intlayer_with_vite+svelte.md +24 -14
  176. package/docs/hi/intlayer_with_vite+vanilla.md +16 -3
  177. package/docs/hi/intlayer_with_vite+vue.md +24 -14
  178. package/docs/hi/introduction.md +0 -1
  179. package/docs/hi/readme.md +0 -1
  180. package/docs/hi/releases/v8.md +1 -5
  181. package/docs/id/intlayer_with_astro.md +12 -25
  182. package/docs/id/intlayer_with_astro_lit.md +23 -27
  183. package/docs/id/intlayer_with_astro_preact.md +23 -27
  184. package/docs/id/intlayer_with_astro_react.md +23 -27
  185. package/docs/id/intlayer_with_astro_solid.md +23 -27
  186. package/docs/id/intlayer_with_astro_svelte.md +23 -27
  187. package/docs/id/intlayer_with_astro_vue.md +23 -27
  188. package/docs/id/intlayer_with_react_router_v7.md +12 -1
  189. package/docs/id/intlayer_with_solid_start.md +14 -7
  190. package/docs/id/intlayer_with_svelte_kit.md +12 -1
  191. package/docs/id/intlayer_with_tanstack+solid.md +13 -2
  192. package/docs/id/intlayer_with_tanstack.md +13 -6
  193. package/docs/id/intlayer_with_vite+lit.md +75 -3
  194. package/docs/id/intlayer_with_vite+preact.md +16 -3
  195. package/docs/id/intlayer_with_vite+react.md +16 -3
  196. package/docs/id/intlayer_with_vite+solid.md +16 -3
  197. package/docs/id/intlayer_with_vite+svelte.md +16 -3
  198. package/docs/id/intlayer_with_vite+vanilla.md +16 -3
  199. package/docs/id/intlayer_with_vite+vue.md +16 -3
  200. package/docs/id/introduction.md +0 -1
  201. package/docs/id/readme.md +0 -1
  202. package/docs/id/releases/v8.md +1 -5
  203. package/docs/it/intlayer_with_astro.md +12 -25
  204. package/docs/it/intlayer_with_astro_lit.md +23 -27
  205. package/docs/it/intlayer_with_astro_preact.md +23 -27
  206. package/docs/it/intlayer_with_astro_react.md +23 -27
  207. package/docs/it/intlayer_with_astro_solid.md +23 -27
  208. package/docs/it/intlayer_with_astro_svelte.md +23 -27
  209. package/docs/it/intlayer_with_astro_vue.md +23 -27
  210. package/docs/it/intlayer_with_react_router_v7.md +12 -1
  211. package/docs/it/intlayer_with_solid_start.md +14 -7
  212. package/docs/it/intlayer_with_svelte_kit.md +12 -1
  213. package/docs/it/intlayer_with_tanstack+solid.md +13 -2
  214. package/docs/it/intlayer_with_tanstack.md +13 -6
  215. package/docs/it/intlayer_with_vite+lit.md +75 -3
  216. package/docs/it/intlayer_with_vite+preact.md +16 -3
  217. package/docs/it/intlayer_with_vite+react.md +16 -3
  218. package/docs/it/intlayer_with_vite+solid.md +16 -3
  219. package/docs/it/intlayer_with_vite+svelte.md +16 -3
  220. package/docs/it/intlayer_with_vite+vanilla.md +16 -3
  221. package/docs/it/intlayer_with_vite+vue.md +16 -3
  222. package/docs/it/introduction.md +0 -1
  223. package/docs/it/readme.md +0 -1
  224. package/docs/it/releases/v8.md +1 -5
  225. package/docs/ja/intlayer_with_astro.md +12 -25
  226. package/docs/ja/intlayer_with_astro_lit.md +23 -27
  227. package/docs/ja/intlayer_with_astro_preact.md +23 -27
  228. package/docs/ja/intlayer_with_astro_react.md +23 -27
  229. package/docs/ja/intlayer_with_astro_solid.md +23 -27
  230. package/docs/ja/intlayer_with_astro_svelte.md +23 -27
  231. package/docs/ja/intlayer_with_astro_vue.md +23 -27
  232. package/docs/ja/intlayer_with_react_router_v7.md +12 -1
  233. package/docs/ja/intlayer_with_solid_start.md +14 -7
  234. package/docs/ja/intlayer_with_svelte_kit.md +21 -15
  235. package/docs/ja/intlayer_with_tanstack+solid.md +13 -2
  236. package/docs/ja/intlayer_with_tanstack.md +13 -6
  237. package/docs/ja/intlayer_with_vite+lit.md +75 -3
  238. package/docs/ja/intlayer_with_vite+preact.md +16 -3
  239. package/docs/ja/intlayer_with_vite+react.md +16 -3
  240. package/docs/ja/intlayer_with_vite+solid.md +16 -3
  241. package/docs/ja/intlayer_with_vite+svelte.md +16 -3
  242. package/docs/ja/intlayer_with_vite+vanilla.md +16 -3
  243. package/docs/ja/intlayer_with_vite+vue.md +16 -3
  244. package/docs/ja/introduction.md +0 -1
  245. package/docs/ja/readme.md +0 -1
  246. package/docs/ja/releases/v8.md +1 -5
  247. package/docs/ko/intlayer_with_astro.md +6 -21
  248. package/docs/ko/intlayer_with_astro_lit.md +23 -27
  249. package/docs/ko/intlayer_with_astro_preact.md +23 -27
  250. package/docs/ko/intlayer_with_astro_react.md +23 -27
  251. package/docs/ko/intlayer_with_astro_solid.md +23 -27
  252. package/docs/ko/intlayer_with_astro_svelte.md +23 -27
  253. package/docs/ko/intlayer_with_astro_vue.md +23 -27
  254. package/docs/ko/intlayer_with_react_router_v7.md +12 -1
  255. package/docs/ko/intlayer_with_solid_start.md +14 -7
  256. package/docs/ko/intlayer_with_svelte_kit.md +12 -1
  257. package/docs/ko/intlayer_with_tanstack+solid.md +13 -2
  258. package/docs/ko/intlayer_with_tanstack.md +13 -6
  259. package/docs/ko/intlayer_with_vite+lit.md +75 -3
  260. package/docs/ko/intlayer_with_vite+preact.md +16 -3
  261. package/docs/ko/intlayer_with_vite+react.md +16 -3
  262. package/docs/ko/intlayer_with_vite+solid.md +26 -16
  263. package/docs/ko/intlayer_with_vite+svelte.md +16 -3
  264. package/docs/ko/intlayer_with_vite+vanilla.md +16 -3
  265. package/docs/ko/intlayer_with_vite+vue.md +16 -3
  266. package/docs/ko/introduction.md +0 -1
  267. package/docs/ko/readme.md +0 -1
  268. package/docs/ko/releases/v8.md +1 -5
  269. package/docs/nl/intlayer_with_vite+lit.md +75 -3
  270. package/docs/nl/intlayer_with_vite+vanilla.md +16 -3
  271. package/docs/nl/introduction.md +0 -1
  272. package/docs/pl/intlayer_with_astro.md +6 -21
  273. package/docs/pl/intlayer_with_astro_lit.md +23 -27
  274. package/docs/pl/intlayer_with_astro_preact.md +23 -27
  275. package/docs/pl/intlayer_with_astro_react.md +23 -27
  276. package/docs/pl/intlayer_with_astro_solid.md +23 -27
  277. package/docs/pl/intlayer_with_astro_svelte.md +23 -27
  278. package/docs/pl/intlayer_with_astro_vue.md +23 -27
  279. package/docs/pl/intlayer_with_react_router_v7.md +12 -1
  280. package/docs/pl/intlayer_with_solid_start.md +14 -7
  281. package/docs/pl/intlayer_with_svelte_kit.md +12 -1
  282. package/docs/pl/intlayer_with_tanstack+solid.md +13 -2
  283. package/docs/pl/intlayer_with_tanstack.md +13 -6
  284. package/docs/pl/intlayer_with_vite+lit.md +75 -3
  285. package/docs/pl/intlayer_with_vite+preact.md +16 -3
  286. package/docs/pl/intlayer_with_vite+react.md +16 -3
  287. package/docs/pl/intlayer_with_vite+solid.md +16 -3
  288. package/docs/pl/intlayer_with_vite+svelte.md +16 -3
  289. package/docs/pl/intlayer_with_vite+vanilla.md +16 -3
  290. package/docs/pl/intlayer_with_vite+vue.md +16 -3
  291. package/docs/pl/introduction.md +0 -1
  292. package/docs/pl/readme.md +0 -1
  293. package/docs/pl/releases/v8.md +1 -5
  294. package/docs/pt/intlayer_with_astro.md +6 -21
  295. package/docs/pt/intlayer_with_astro_lit.md +23 -27
  296. package/docs/pt/intlayer_with_astro_preact.md +23 -27
  297. package/docs/pt/intlayer_with_astro_react.md +23 -27
  298. package/docs/pt/intlayer_with_astro_solid.md +23 -27
  299. package/docs/pt/intlayer_with_astro_svelte.md +23 -27
  300. package/docs/pt/intlayer_with_astro_vue.md +23 -27
  301. package/docs/pt/intlayer_with_react_router_v7.md +12 -1
  302. package/docs/pt/intlayer_with_solid_start.md +14 -7
  303. package/docs/pt/intlayer_with_svelte_kit.md +12 -1
  304. package/docs/pt/intlayer_with_tanstack+solid.md +13 -2
  305. package/docs/pt/intlayer_with_tanstack.md +13 -6
  306. package/docs/pt/intlayer_with_vite+lit.md +75 -3
  307. package/docs/pt/intlayer_with_vite+preact.md +16 -3
  308. package/docs/pt/intlayer_with_vite+react.md +16 -3
  309. package/docs/pt/intlayer_with_vite+solid.md +16 -3
  310. package/docs/pt/intlayer_with_vite+svelte.md +16 -3
  311. package/docs/pt/intlayer_with_vite+vanilla.md +16 -3
  312. package/docs/pt/intlayer_with_vite+vue.md +16 -3
  313. package/docs/pt/introduction.md +0 -1
  314. package/docs/pt/readme.md +0 -1
  315. package/docs/pt/releases/v8.md +1 -5
  316. package/docs/ru/intlayer_with_astro.md +12 -25
  317. package/docs/ru/intlayer_with_astro_lit.md +23 -27
  318. package/docs/ru/intlayer_with_astro_preact.md +23 -27
  319. package/docs/ru/intlayer_with_astro_react.md +23 -27
  320. package/docs/ru/intlayer_with_astro_solid.md +23 -27
  321. package/docs/ru/intlayer_with_astro_svelte.md +23 -27
  322. package/docs/ru/intlayer_with_astro_vue.md +23 -27
  323. package/docs/ru/intlayer_with_react_router_v7.md +12 -1
  324. package/docs/ru/intlayer_with_solid_start.md +14 -7
  325. package/docs/ru/intlayer_with_svelte_kit.md +12 -1
  326. package/docs/ru/intlayer_with_tanstack+solid.md +13 -2
  327. package/docs/ru/intlayer_with_tanstack.md +13 -6
  328. package/docs/ru/intlayer_with_vite+lit.md +75 -3
  329. package/docs/ru/intlayer_with_vite+preact.md +16 -3
  330. package/docs/ru/intlayer_with_vite+react.md +16 -3
  331. package/docs/ru/intlayer_with_vite+solid.md +16 -3
  332. package/docs/ru/intlayer_with_vite+svelte.md +16 -3
  333. package/docs/ru/intlayer_with_vite+vanilla.md +16 -3
  334. package/docs/ru/intlayer_with_vite+vue.md +16 -3
  335. package/docs/ru/introduction.md +0 -1
  336. package/docs/ru/readme.md +0 -1
  337. package/docs/ru/releases/v8.md +1 -5
  338. package/docs/tr/intlayer_with_astro.md +12 -25
  339. package/docs/tr/intlayer_with_astro_lit.md +24 -28
  340. package/docs/tr/intlayer_with_astro_preact.md +24 -28
  341. package/docs/tr/intlayer_with_astro_react.md +24 -28
  342. package/docs/tr/intlayer_with_astro_solid.md +24 -28
  343. package/docs/tr/intlayer_with_astro_svelte.md +24 -28
  344. package/docs/tr/intlayer_with_astro_vue.md +24 -28
  345. package/docs/tr/intlayer_with_react_router_v7.md +12 -1
  346. package/docs/tr/intlayer_with_solid_start.md +14 -7
  347. package/docs/tr/intlayer_with_svelte_kit.md +12 -1
  348. package/docs/tr/intlayer_with_tanstack+solid.md +13 -2
  349. package/docs/tr/intlayer_with_tanstack.md +13 -6
  350. package/docs/tr/intlayer_with_vite+lit.md +75 -3
  351. package/docs/tr/intlayer_with_vite+preact.md +16 -3
  352. package/docs/tr/intlayer_with_vite+react.md +16 -3
  353. package/docs/tr/intlayer_with_vite+solid.md +16 -3
  354. package/docs/tr/intlayer_with_vite+svelte.md +16 -3
  355. package/docs/tr/intlayer_with_vite+vanilla.md +16 -3
  356. package/docs/tr/intlayer_with_vite+vue.md +16 -3
  357. package/docs/tr/introduction.md +0 -1
  358. package/docs/tr/readme.md +0 -1
  359. package/docs/tr/releases/v8.md +1 -5
  360. package/docs/uk/intlayer_with_astro.md +12 -25
  361. package/docs/uk/intlayer_with_astro_lit.md +23 -27
  362. package/docs/uk/intlayer_with_astro_preact.md +23 -27
  363. package/docs/uk/intlayer_with_astro_react.md +23 -27
  364. package/docs/uk/intlayer_with_astro_solid.md +23 -27
  365. package/docs/uk/intlayer_with_astro_svelte.md +23 -27
  366. package/docs/uk/intlayer_with_astro_vue.md +23 -27
  367. package/docs/uk/intlayer_with_react_router_v7.md +12 -1
  368. package/docs/uk/intlayer_with_solid_start.md +14 -7
  369. package/docs/uk/intlayer_with_svelte_kit.md +12 -1
  370. package/docs/uk/intlayer_with_tanstack+solid.md +13 -2
  371. package/docs/uk/intlayer_with_tanstack.md +13 -6
  372. package/docs/uk/intlayer_with_vite+lit.md +75 -3
  373. package/docs/uk/intlayer_with_vite+preact.md +16 -3
  374. package/docs/uk/intlayer_with_vite+react.md +16 -3
  375. package/docs/uk/intlayer_with_vite+solid.md +16 -3
  376. package/docs/uk/intlayer_with_vite+svelte.md +16 -3
  377. package/docs/uk/intlayer_with_vite+vanilla.md +16 -3
  378. package/docs/uk/intlayer_with_vite+vue.md +16 -3
  379. package/docs/uk/introduction.md +0 -1
  380. package/docs/uk/readme.md +0 -1
  381. package/docs/uk/releases/v8.md +1 -5
  382. package/docs/ur/intlayer_with_vite+lit.md +75 -3
  383. package/docs/ur/intlayer_with_vite+vanilla.md +16 -3
  384. package/docs/ur/introduction.md +0 -1
  385. package/docs/vi/intlayer_with_astro.md +12 -25
  386. package/docs/vi/intlayer_with_astro_lit.md +23 -27
  387. package/docs/vi/intlayer_with_astro_preact.md +23 -27
  388. package/docs/vi/intlayer_with_astro_react.md +23 -27
  389. package/docs/vi/intlayer_with_astro_solid.md +23 -27
  390. package/docs/vi/intlayer_with_astro_svelte.md +23 -27
  391. package/docs/vi/intlayer_with_astro_vue.md +23 -27
  392. package/docs/vi/intlayer_with_react_router_v7.md +12 -1
  393. package/docs/vi/intlayer_with_solid_start.md +14 -7
  394. package/docs/vi/intlayer_with_svelte_kit.md +12 -1
  395. package/docs/vi/intlayer_with_tanstack+solid.md +13 -2
  396. package/docs/vi/intlayer_with_tanstack.md +13 -6
  397. package/docs/vi/intlayer_with_vite+lit.md +75 -3
  398. package/docs/vi/intlayer_with_vite+preact.md +16 -3
  399. package/docs/vi/intlayer_with_vite+react.md +16 -3
  400. package/docs/vi/intlayer_with_vite+solid.md +16 -3
  401. package/docs/vi/intlayer_with_vite+svelte.md +16 -3
  402. package/docs/vi/intlayer_with_vite+vanilla.md +16 -3
  403. package/docs/vi/intlayer_with_vite+vue.md +16 -3
  404. package/docs/vi/introduction.md +0 -1
  405. package/docs/vi/readme.md +0 -1
  406. package/docs/vi/releases/v8.md +1 -5
  407. package/docs/zh/intlayer_with_astro.md +6 -21
  408. package/docs/zh/intlayer_with_astro_lit.md +23 -27
  409. package/docs/zh/intlayer_with_astro_preact.md +23 -27
  410. package/docs/zh/intlayer_with_astro_react.md +23 -27
  411. package/docs/zh/intlayer_with_astro_solid.md +23 -27
  412. package/docs/zh/intlayer_with_astro_svelte.md +23 -27
  413. package/docs/zh/intlayer_with_astro_vue.md +23 -27
  414. package/docs/zh/intlayer_with_react_router_v7.md +12 -1
  415. package/docs/zh/intlayer_with_solid_start.md +14 -7
  416. package/docs/zh/intlayer_with_svelte_kit.md +12 -1
  417. package/docs/zh/intlayer_with_tanstack+solid.md +13 -2
  418. package/docs/zh/intlayer_with_tanstack.md +13 -6
  419. package/docs/zh/intlayer_with_vite+lit.md +75 -3
  420. package/docs/zh/intlayer_with_vite+preact.md +16 -3
  421. package/docs/zh/intlayer_with_vite+react.md +16 -3
  422. package/docs/zh/intlayer_with_vite+solid.md +16 -3
  423. package/docs/zh/intlayer_with_vite+svelte.md +16 -3
  424. package/docs/zh/intlayer_with_vite+vanilla.md +16 -3
  425. package/docs/zh/intlayer_with_vite+vue.md +16 -3
  426. package/docs/zh/introduction.md +0 -1
  427. package/docs/zh/readme.md +0 -1
  428. package/docs/zh/releases/v8.md +1 -5
  429. package/docs/zh-TW/introduction.md +0 -1
  430. package/package.json +6 -6
  431. package/docs/ar/intlayer_with_astro_vanilla.md +0 -709
  432. package/docs/de/intlayer_with_astro_vanilla.md +0 -705
  433. package/docs/en-GB/intlayer_with_astro_vanilla.md +0 -709
  434. package/docs/es/intlayer_with_astro_vanilla.md +0 -701
  435. package/docs/fr/intlayer_with_astro_vanilla.md +0 -701
  436. package/docs/hi/intlayer_with_astro_vanilla.md +0 -720
  437. package/docs/id/intlayer_with_astro_vanilla.md +0 -705
  438. package/docs/it/intlayer_with_astro_vanilla.md +0 -705
  439. package/docs/ja/intlayer_with_astro_vanilla.md +0 -708
  440. package/docs/ko/intlayer_with_astro_vanilla.md +0 -720
  441. package/docs/pl/intlayer_with_astro_vanilla.md +0 -705
  442. package/docs/pt/intlayer_with_astro_vanilla.md +0 -705
  443. package/docs/ru/intlayer_with_astro_vanilla.md +0 -716
  444. package/docs/tr/intlayer_with_astro_vanilla.md +0 -705
  445. package/docs/uk/intlayer_with_astro_vanilla.md +0 -705
  446. package/docs/vi/intlayer_with_astro_vanilla.md +0 -705
  447. package/docs/zh/intlayer_with_astro_vanilla.md +0 -704
@@ -458,7 +458,7 @@ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
458
458
  ```
459
459
 
460
460
  > **Note on Persistence:**
461
- > `setLocale` from the client-side `useLocale` saves the user's language preference in a cookie. This allows the Intlayer middleware to remember the choice and automatically redirect the user to their preferred language on future visits.
461
+ > `setLocale` from the client-side `useLocale` saves the user's language preference in a cookie. This allows Intlayer to remember the choice and automatically redirect the user to their preferred language on future visits: on-demand rendered pages (an adapter with `output: 'server'` or `prerender = false`) are redirected by the Intlayer middleware before any HTML is sent, while prerendered pages, served as static files, are redirected by a small script the integration injects in every page. Set `routing.enableProxy` to `false` to turn both off. In `astro dev`, the cookie is ignored as a redirect source unless `routing.enableProxy` is set to `true`, so a stale cookie cannot hijack the pages you are working on.
462
462
  >
463
463
  > **Server / client intercompatibility:**
464
464
  > `astro-intlayer` resolves to its server hooks in the frontmatter (reading `Astro.locals`) and to the client hooks of `vanilla-intlayer` in `<script>` blocks and islands, with the same names and content shape. `setLocale` and `onChange` only act on the client — call `installIntlayer()` there once to seed the client store. `astro-intlayer/client` exposes the client entry explicitly.
@@ -485,10 +485,10 @@ const pathList: SitemapUrlEntry[] = [
485
485
  { path: "/about", changefreq: "monthly", priority: 0.7 },
486
486
  ];
487
487
 
488
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
489
-
490
488
  export const GET: APIRoute = async ({ site }) => {
491
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
489
+ const xmlOutput = generateSitemap(pathList, {
490
+ siteUrl: "https://example.com",
491
+ });
492
492
 
493
493
  return new Response(xmlOutput, {
494
494
  headers: { "Content-Type": "application/xml" },
@@ -535,7 +535,6 @@ Continue using your favorite framework to build your application.
535
535
  - Intlayer + Solid: [Intlayer with Solid](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_astro_solid.md)
536
536
  - Intlayer + Preact: [Intlayer with Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_astro_preact.md)
537
537
  - Intlayer + Lit: [Intlayer with Lit](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_astro_lit.md)
538
- - Intlayer + Vanilla JS: [Intlayer with Vanilla JS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_with_astro_vanilla.md)
539
538
  </Step>
540
539
 
541
540
  <Step number={15} title="Extract the content of your components" isOptional={true}>
@@ -605,21 +604,7 @@ bun x intlayer extract
605
604
  </Tab>
606
605
  <Tab value='Babel compiler'>
607
606
 
608
- > Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
609
-
610
- Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
611
-
612
- ```ts fileName="vite.config.ts"
613
- import { defineConfig } from "vite";
614
- import { intlayer, intlayerCompiler } from "vite-intlayer";
615
-
616
- export default defineConfig({
617
- plugins: [
618
- intlayer(),
619
- intlayerCompiler(), // Adds the compiler plugin
620
- ],
621
- });
622
- ```
607
+ Build your application to transform your components and extract the content
623
608
 
624
609
  ```bash packageManager="npm"
625
610
  npm run build # Or npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-08-29
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + Lit i18n - Complete guide to translate your app"
5
5
  description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + Lit app. Translate with AI agents and optimize bundle size, SEO and performances."
6
6
  keywords:
@@ -20,6 +20,9 @@ slugs:
20
20
  applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
21
21
  applicationShowcase: https://intlayer-astro-template.vercel.app
22
22
  history:
23
+ - version: 9.5.5
24
+ date: 2026-09-19
25
+ changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
23
26
  - version: 8.9.0
24
27
  date: 2026-05-04
25
28
  changes: "Update Solid useIntlayer API usage to direct property access"
@@ -151,7 +154,7 @@ bun add intlayer astro-intlayer lit lit-intlayer @astrojs/lit
151
154
  The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
152
155
 
153
156
  - **astro-intlayer**
154
- Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), as well as middleware for detecting the user's preferred locale, managing cookies, and handling URL redirection.
157
+ Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
155
158
 
156
159
  - **lit**
157
160
  The core Lit package for building fast, lightweight Web Components.
@@ -243,19 +246,21 @@ export default litDemoContent;
243
246
  </Step>
244
247
  <Step number={5} title="Use your content in Astro">
245
248
 
246
- You can consume dictionaries directly in `.astro` files using the core helpers exported by `intlayer`. You should also add SEO metadata like hreflang and canonical links to each page. The Lit custom element is then imported via a client-side `<script>` and placed in the body.
249
+ Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
250
+
251
+ The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
252
+
253
+ You should also add SEO metadata like hreflang and canonical links to each page. The Lit custom element is then imported via a client-side `<script>` and placed in the body.
247
254
 
248
255
  ```astro fileName="src/pages/[...locale]/index.astro"
249
256
  ---
257
+ import { useIntlayer, useLocale } from "astro-intlayer";
250
258
  import {
251
- getIntlayer,
252
- getLocaleFromPath,
253
259
  getLocalizedUrl,
254
260
  getPrefix,
255
261
  localeMap,
256
262
  defaultLocale,
257
263
  getHTMLTextDir,
258
- type LocalesValues,
259
264
  } from "intlayer";
260
265
 
261
266
  export const getStaticPaths = () => {
@@ -264,8 +269,11 @@ export const getStaticPaths = () => {
264
269
  }));
265
270
  };
266
271
 
267
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
268
- const { greeting } = getIntlayer("lit-demo", locale);
272
+ // Locale resolved by the middleware (e.g. /es/about -> 'es')
273
+ const { locale } = useLocale();
274
+
275
+ // Content of the 'lit-demo' dictionary for that locale
276
+ const { greeting } = useIntlayer("lit-demo");
269
277
  ---
270
278
 
271
279
  <!doctype html>
@@ -324,6 +332,8 @@ const { greeting } = getIntlayer("lit-demo", locale);
324
332
  > <img src={String(content.image.src)} alt={String(content.image)} />
325
333
  > ```
326
334
 
335
+ > `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
336
+
327
337
  > **Note on Routing Configuration:**
328
338
  > The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
329
339
  >
@@ -480,10 +490,10 @@ const pathList: SitemapUrlEntry[] = [
480
490
  { path: "/about", changefreq: "monthly", priority: 0.7 },
481
491
  ];
482
492
 
483
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
484
-
485
493
  export const GET: APIRoute = async ({ site }) => {
486
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
494
+ const xmlOutput = generateSitemap(pathList, {
495
+ siteUrl: "https://example.com",
496
+ });
487
497
 
488
498
  return new Response(xmlOutput, {
489
499
  headers: { "Content-Type": "application/xml" },
@@ -587,21 +597,7 @@ bun x intlayer extract
587
597
  </Tab>
588
598
  <Tab value='Babel compiler'>
589
599
 
590
- > Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
591
-
592
- Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
593
-
594
- ```ts fileName="vite.config.ts"
595
- import { defineConfig } from "vite";
596
- import { intlayer, intlayerCompiler } from "vite-intlayer";
597
-
598
- export default defineConfig({
599
- plugins: [
600
- intlayer(),
601
- intlayerCompiler(), // Adds the compiler plugin
602
- ],
603
- });
604
- ```
600
+ Build your application to transform your components and extract the content
605
601
 
606
602
  ```bash packageManager="npm"
607
603
  npm run build # Or npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-08-29
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + Preact i18n - Complete guide to translate your app"
5
5
  description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + Preact app. Translate with AI agents and optimize bundle size, SEO and performances."
6
6
  keywords:
@@ -19,6 +19,9 @@ slugs:
19
19
  applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
20
20
  applicationShowcase: https://intlayer-astro-template.vercel.app
21
21
  history:
22
+ - version: 9.5.5
23
+ date: 2026-09-19
24
+ changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
22
25
  - version: 8.9.0
23
26
  date: 2026-05-04
24
27
  changes: "Update Solid useIntlayer API usage to direct property access"
@@ -150,7 +153,7 @@ bun add intlayer astro-intlayer preact preact-intlayer @astrojs/preact
150
153
  The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
151
154
 
152
155
  - **astro-intlayer**
153
- Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), as well as middleware for detecting the user's preferred locale, managing cookies, and handling URL redirection.
156
+ Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
154
157
 
155
158
  - **preact**
156
159
  The core Preact package - a fast, lightweight alternative to React.
@@ -240,19 +243,21 @@ export default appContent;
240
243
  </Step>
241
244
  <Step number={5} title="Use your content in Astro">
242
245
 
243
- You can consume dictionaries directly in `.astro` files using the core helpers exported by `intlayer`. You should also add SEO metadata like hreflang and canonical links to each page, and embed the Preact island for interactive client-side content.
246
+ Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
247
+
248
+ The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
249
+
250
+ You should also add SEO metadata like hreflang and canonical links to each page, and embed the Preact island for interactive client-side content.
244
251
 
245
252
  ```astro fileName="src/pages/[...locale]/index.astro"
246
253
  ---
254
+ import { useIntlayer, useLocale } from "astro-intlayer";
247
255
  import {
248
- getIntlayer,
249
- getLocaleFromPath,
250
256
  getLocalizedUrl,
251
257
  getPrefix,
252
258
  localeMap,
253
259
  defaultLocale,
254
260
  getHTMLTextDir,
255
- type LocalesValues,
256
261
  } from "intlayer";
257
262
  import { PreactIsland } from "../../components/preact/PreactIsland";
258
263
 
@@ -262,8 +267,11 @@ export const getStaticPaths = () => {
262
267
  }));
263
268
  };
264
269
 
265
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
266
- const { title } = getIntlayer("app", locale);
270
+ // Locale resolved by the middleware (e.g. /es/about -> 'es')
271
+ const { locale } = useLocale();
272
+
273
+ // Content of the 'app' dictionary for that locale
274
+ const { title } = useIntlayer("app");
267
275
  ---
268
276
 
269
277
  <!doctype html>
@@ -319,6 +327,8 @@ const { title } = getIntlayer("app", locale);
319
327
  > <img src={String(content.image.src)} alt={String(content.image)} />
320
328
  > ```
321
329
 
330
+ > `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
331
+
322
332
  > **Note on Routing Configuration:**
323
333
  > The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
324
334
  >
@@ -435,10 +445,10 @@ const pathList: SitemapUrlEntry[] = [
435
445
  { path: "/about", changefreq: "monthly", priority: 0.7 },
436
446
  ];
437
447
 
438
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
439
-
440
448
  export const GET: APIRoute = async ({ site }) => {
441
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
449
+ const xmlOutput = generateSitemap(pathList, {
450
+ siteUrl: "https://example.com",
451
+ });
442
452
 
443
453
  return new Response(xmlOutput, {
444
454
  headers: { "Content-Type": "application/xml" },
@@ -542,21 +552,7 @@ bun x intlayer extract
542
552
  </Tab>
543
553
  <Tab value='Babel compiler'>
544
554
 
545
- > Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
546
-
547
- Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
548
-
549
- ```ts fileName="vite.config.ts"
550
- import { defineConfig } from "vite";
551
- import { intlayer, intlayerCompiler } from "vite-intlayer";
552
-
553
- export default defineConfig({
554
- plugins: [
555
- intlayer(),
556
- intlayerCompiler(), // Adds the compiler plugin
557
- ],
558
- });
559
- ```
555
+ Build your application to transform your components and extract the content
560
556
 
561
557
  ```bash packageManager="npm"
562
558
  npm run build # Or npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-03-07
3
- updatedAt: 2026-08-29
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + React i18n - Complete guide to translate your app"
5
5
  description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + React app. Translate with AI agents and optimize bundle size, SEO and performances."
6
6
  keywords:
@@ -19,6 +19,9 @@ slugs:
19
19
  applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
20
20
  applicationShowcase: https://intlayer-astro-template.vercel.app
21
21
  history:
22
+ - version: 9.5.5
23
+ date: 2026-09-19
24
+ changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
22
25
  - version: 8.9.0
23
26
  date: 2026-05-04
24
27
  changes: "Update Solid useIntlayer API usage to direct property access"
@@ -153,7 +156,7 @@ bun add intlayer astro-intlayer react react-dom react-intlayer @astrojs/react
153
156
  The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
154
157
 
155
158
  - **astro-intlayer**
156
- Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), as well as middleware for detecting the user's preferred locale, managing cookies, and handling URL redirection.
159
+ Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
157
160
 
158
161
  - **react**, **react-dom**
159
162
  The core React packages needed to render React components in the browser.
@@ -241,19 +244,21 @@ export default appContent;
241
244
  </Step>
242
245
  <Step number={5} title="Use your content in Astro">
243
246
 
244
- You can consume dictionaries directly in `.astro` files using the core helpers exported by `intlayer`. You should also add SEO metadata like hreflang and canonical links to each page, and embed the React island for interactive client-side content.
247
+ Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
248
+
249
+ The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
250
+
251
+ You should also add SEO metadata like hreflang and canonical links to each page, and embed the React island for interactive client-side content.
245
252
 
246
253
  ```astro fileName="src/pages/[...locale]/index.astro"
247
254
  ---
255
+ import { useIntlayer, useLocale } from "astro-intlayer";
248
256
  import {
249
- getIntlayer,
250
- getLocaleFromPath,
251
257
  getLocalizedUrl,
252
258
  getPrefix,
253
259
  localeMap,
254
260
  defaultLocale,
255
261
  getHTMLTextDir,
256
- type LocalesValues,
257
262
  } from "intlayer";
258
263
  import { ReactIsland } from "../../components/react/ReactIsland";
259
264
 
@@ -263,8 +268,11 @@ export const getStaticPaths = () => {
263
268
  }));
264
269
  };
265
270
 
266
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
267
- const { title } = getIntlayer("app", locale);
271
+ // Locale resolved by the middleware (e.g. /es/about -> 'es')
272
+ const { locale } = useLocale();
273
+
274
+ // Content of the 'app' dictionary for that locale
275
+ const { title } = useIntlayer("app");
268
276
  ---
269
277
 
270
278
  <!doctype html>
@@ -320,6 +328,8 @@ const { title } = getIntlayer("app", locale);
320
328
  > <img src={String(content.image.src)} alt={String(content.image)} />
321
329
  > ```
322
330
 
331
+ > `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
332
+
323
333
  > **Note on Routing Configuration:**
324
334
  > The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
325
335
  >
@@ -432,10 +442,10 @@ const pathList: SitemapUrlEntry[] = [
432
442
  { path: "/about", changefreq: "monthly", priority: 0.7 },
433
443
  ];
434
444
 
435
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
436
-
437
445
  export const GET: APIRoute = async ({ site }) => {
438
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
446
+ const xmlOutput = generateSitemap(pathList, {
447
+ siteUrl: "https://example.com",
448
+ });
439
449
 
440
450
  return new Response(xmlOutput, {
441
451
  headers: { "Content-Type": "application/xml" },
@@ -539,21 +549,7 @@ bun x intlayer extract
539
549
  </Tab>
540
550
  <Tab value='Babel compiler'>
541
551
 
542
- > Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
543
-
544
- Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
545
-
546
- ```ts fileName="vite.config.ts"
547
- import { defineConfig } from "vite";
548
- import { intlayer, intlayerCompiler } from "vite-intlayer";
549
-
550
- export default defineConfig({
551
- plugins: [
552
- intlayer(),
553
- intlayerCompiler(), // Adds the compiler plugin
554
- ],
555
- });
556
- ```
552
+ Build your application to transform your components and extract the content
557
553
 
558
554
  ```bash packageManager="npm"
559
555
  npm run build # Or npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-08-29
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + Solid i18n - Complete guide to translate your app"
5
5
  description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + Solid app. Translate with AI agents and optimize bundle size, SEO and performances."
6
6
  keywords:
@@ -19,6 +19,9 @@ slugs:
19
19
  applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
20
20
  applicationShowcase: https://intlayer-astro-template.vercel.app
21
21
  history:
22
+ - version: 9.5.5
23
+ date: 2026-09-19
24
+ changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
22
25
  - version: 8.9.0
23
26
  date: 2026-05-04
24
27
  changes: "Update Solid useIntlayer API usage to direct property access"
@@ -150,7 +153,7 @@ bun add intlayer astro-intlayer solid-js solid-intlayer @astrojs/solid-js
150
153
  The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
151
154
 
152
155
  - **astro-intlayer**
153
- Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), as well as middleware for detecting the user's preferred locale, managing cookies, and handling URL redirection.
156
+ Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
154
157
 
155
158
  - **solid-js**
156
159
  The core Solid package.
@@ -237,19 +240,21 @@ export default appContent;
237
240
  </Step>
238
241
  <Step number={5} title="Use your content in Astro">
239
242
 
240
- You can consume dictionaries directly in `.astro` files using the core helpers exported by `intlayer`. You should also add SEO metadata like hreflang and canonical links to each page, and embed the Solid island for interactive client-side content.
243
+ Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
244
+
245
+ The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
246
+
247
+ You should also add SEO metadata like hreflang and canonical links to each page, and embed the Solid island for interactive client-side content.
241
248
 
242
249
  ```astro fileName="src/pages/[...locale]/index.astro"
243
250
  ---
251
+ import { useIntlayer, useLocale } from "astro-intlayer";
244
252
  import {
245
- getIntlayer,
246
- getLocaleFromPath,
247
253
  getLocalizedUrl,
248
254
  getPrefix,
249
255
  localeMap,
250
256
  defaultLocale,
251
257
  getHTMLTextDir,
252
- type LocalesValues,
253
258
  } from "intlayer";
254
259
  import { SolidIsland } from "../../components/solid/SolidIsland";
255
260
 
@@ -259,8 +264,11 @@ export const getStaticPaths = () => {
259
264
  }));
260
265
  };
261
266
 
262
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
263
- const { title } = getIntlayer("app", locale);
267
+ // Locale resolved by the middleware (e.g. /es/about -> 'es')
268
+ const { locale } = useLocale();
269
+
270
+ // Content of the 'app' dictionary for that locale
271
+ const { title } = useIntlayer("app");
264
272
  ---
265
273
 
266
274
  <!doctype html>
@@ -316,6 +324,8 @@ const { title } = getIntlayer("app", locale);
316
324
  > <img src={String(content.image.src)} alt={String(content.image)} />
317
325
  > ```
318
326
 
327
+ > `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
328
+
319
329
  > **Note on Routing Configuration:**
320
330
  > The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
321
331
  >
@@ -432,10 +442,10 @@ const pathList: SitemapUrlEntry[] = [
432
442
  { path: "/about", changefreq: "monthly", priority: 0.7 },
433
443
  ];
434
444
 
435
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
436
-
437
445
  export const GET: APIRoute = async ({ site }) => {
438
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
446
+ const xmlOutput = generateSitemap(pathList, {
447
+ siteUrl: "https://example.com",
448
+ });
439
449
 
440
450
  return new Response(xmlOutput, {
441
451
  headers: { "Content-Type": "application/xml" },
@@ -539,21 +549,7 @@ bun x intlayer extract
539
549
  </Tab>
540
550
  <Tab value='Babel compiler'>
541
551
 
542
- > Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
543
-
544
- Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
545
-
546
- ```ts fileName="vite.config.ts"
547
- import { defineConfig } from "vite";
548
- import { intlayer, intlayerCompiler } from "vite-intlayer";
549
-
550
- export default defineConfig({
551
- plugins: [
552
- intlayer(),
553
- intlayerCompiler(), // Adds the compiler plugin
554
- ],
555
- });
556
- ```
552
+ Build your application to transform your components and extract the content
557
553
 
558
554
  ```bash packageManager="npm"
559
555
  npm run build # Or npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-08-29
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + Svelte i18n - Complete guide to translate your app"
5
5
  description: "No more i18next. The 2026 guide to building a multilingual (i18n) Astro + Svelte app. Translate with AI agents and optimize bundle size, SEO and performances."
6
6
  keywords:
@@ -19,6 +19,9 @@ slugs:
19
19
  applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
20
20
  applicationShowcase: https://intlayer-astro-template.vercel.app
21
21
  history:
22
+ - version: 9.5.5
23
+ date: 2026-09-19
24
+ changes: "Use the useIntlayer / useLocale hooks of astro-intlayer in the Astro page"
22
25
  - version: 8.9.0
23
26
  date: 2026-05-04
24
27
  changes: "Update Solid useIntlayer API usage to direct property access"
@@ -150,7 +153,7 @@ bun add intlayer astro-intlayer svelte svelte-intlayer @astrojs/svelte
150
153
  The core package that provides internationalization tools for configuration management, translation, [content declaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/dictionary/content_file.md), transpilation, and [CLI commands](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md).
151
154
 
152
155
  - **astro-intlayer**
153
- Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), as well as middleware for detecting the user's preferred locale, managing cookies, and handling URL redirection.
156
+ Includes the Astro integration plugin for integrating Intlayer with the [Vite bundler](https://vite.dev/guide/why.html#why-bundle-for-production), a middleware that resolves the locale of every request into `Astro.locals.intlayer`, and the `useIntlayer` / `useDictionary` / `useLocale` hooks. The same import path resolves to the server implementation in your `.astro` frontmatter and to the client one (backed by `vanilla-intlayer`) in `<script>` blocks.
154
157
 
155
158
  - **svelte**
156
159
  The core Svelte package.
@@ -237,19 +240,21 @@ export default appContent;
237
240
  </Step>
238
241
  <Step number={5} title="Use your content in Astro">
239
242
 
240
- You can consume dictionaries directly in `.astro` files using the core helpers exported by `intlayer`. You should also add SEO metadata like hreflang and canonical links to each page, and embed the Svelte island for interactive client-side content.
243
+ Consume your dictionaries in `.astro` files with the hooks exported by `astro-intlayer`. They share the signatures of the framework bindings: `useIntlayer("key")` returns the content of a dictionary and `useLocale()` the current locale, with no argument to pass around.
244
+
245
+ The locale comes from the `astro-intlayer` middleware, which the integration registers for you ahead of your own `src/middleware.ts`. It resolves it for every request, from the URL prefix, then the locale persisted by the client (cookie or header), then `Accept-Language`, and stores it in `Astro.locals.intlayer`. Prerendered pages only use the URL, since they are rendered once for every visitor.
246
+
247
+ You should also add SEO metadata like hreflang and canonical links to each page, and embed the Svelte island for interactive client-side content.
241
248
 
242
249
  ```astro fileName="src/pages/[...locale]/index.astro"
243
250
  ---
251
+ import { useIntlayer, useLocale } from "astro-intlayer";
244
252
  import {
245
- getIntlayer,
246
- getLocaleFromPath,
247
253
  getLocalizedUrl,
248
254
  getPrefix,
249
255
  localeMap,
250
256
  defaultLocale,
251
257
  getHTMLTextDir,
252
- type LocalesValues,
253
258
  } from "intlayer";
254
259
  import SvelteIsland from "../../components/svelte/SvelteIsland.svelte";
255
260
 
@@ -259,8 +264,11 @@ export const getStaticPaths = () => {
259
264
  }));
260
265
  };
261
266
 
262
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
263
- const { title } = getIntlayer("app", locale);
267
+ // Locale resolved by the middleware (e.g. /es/about -> 'es')
268
+ const { locale } = useLocale();
269
+
270
+ // Content of the 'app' dictionary for that locale
271
+ const { title } = useIntlayer("app");
264
272
  ---
265
273
 
266
274
  <!doctype html>
@@ -316,6 +324,8 @@ const { title } = getIntlayer("app", locale);
316
324
  > <img src={String(content.image.src)} alt={String(content.image)} />
317
325
  > ```
318
326
 
327
+ > `Astro.locals.intlayer` also exposes `locale`, `defaultLocale` and `availableLocales` to your own middleware and endpoints. Pass a locale or a selector as second argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`) to override the request locale for one call.
328
+
319
329
  > **Note on Routing Configuration:**
320
330
  > The directory structure you use depends on the `middleware.routing` setting in your `intlayer.config.ts`:
321
331
  >
@@ -436,10 +446,10 @@ const pathList: SitemapUrlEntry[] = [
436
446
  { path: "/about", changefreq: "monthly", priority: 0.7 },
437
447
  ];
438
448
 
439
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
440
-
441
449
  export const GET: APIRoute = async ({ site }) => {
442
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
450
+ const xmlOutput = generateSitemap(pathList, {
451
+ siteUrl: "https://example.com",
452
+ });
443
453
 
444
454
  return new Response(xmlOutput, {
445
455
  headers: { "Content-Type": "application/xml" },
@@ -543,21 +553,7 @@ bun x intlayer extract
543
553
  </Tab>
544
554
  <Tab value='Babel compiler'>
545
555
 
546
- > Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
547
-
548
- Update your `vite.config.ts` to include the `intlayerCompiler` plugin:
549
-
550
- ```ts fileName="vite.config.ts"
551
- import { defineConfig } from "vite";
552
- import { intlayer, intlayerCompiler } from "vite-intlayer";
553
-
554
- export default defineConfig({
555
- plugins: [
556
- intlayer(),
557
- intlayerCompiler(), // Adds the compiler plugin
558
- ],
559
- });
560
- ```
556
+ Build your application to transform your components and extract the content
561
557
 
562
558
  ```bash packageManager="npm"
563
559
  npm run build # Or npm run dev