@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
@@ -1328,10 +1328,6 @@ Intlayer は、ロケールとルーティングモードに基づいてサイ
1328
1328
  import { createFileRoute } from "@tanstack/react-router";
1329
1329
  import { generateSitemap } from "intlayer";
1330
1330
 
1331
- const SITE_URL = (
1332
- import.meta.env.VITE_SITE_URL ?? "http://localhost:3000"
1333
- ).replace(/\/$/, "");
1334
-
1335
1331
  export const Route = createFileRoute("/sitemap.xml")({
1336
1332
  server: {
1337
1333
  handlers: {
@@ -1341,7 +1337,7 @@ export const Route = createFileRoute("/sitemap.xml")({
1341
1337
  { path: "/", changefreq: "daily", priority: 1.0 },
1342
1338
  { path: "/about", changefreq: "monthly", priority: 0.8 },
1343
1339
  ],
1344
- { siteUrl: SITE_URL }
1340
+ { siteUrl: "https://example.com" }
1345
1341
  );
1346
1342
 
1347
1343
  return new Response(sitemap, {
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-03-07
3
- updatedAt: 2026-09-19
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro i18n - 앱을 번역하는 완전 가이드"
5
5
  description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
6
6
  keywords:
@@ -401,7 +401,7 @@ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
401
401
  ```
402
402
 
403
403
  > **영속성에 대한 참고 사항:**
404
- > 클라이언트 측 `useLocale`의 `setLocale`은 사용자의 언어 설정을 쿠키에 저장합니다. 이를 통해 Intlayer 미들웨어는 선택 항목을 기억하고 향후 방문 시 사용자를 선호하는 언어로 자동 리디렉션할 수 있습니다.
404
+ > 클라이언트 측 `useLocale`의 `setLocale`은 사용자의 언어 설정을 쿠키에 저장합니다. 이를 통해 Intlayer는 선택 사항을 기억하고 향후 방문 시 사용자를 선호하는 언어로 자동 리디렉션할 수 있습니다. 온디맨드 렌더링 페이지(`output: 'server'` 또는 `prerender = false`인 어댑터)는 HTML이 전송되기 전에 Intlayer 미들웨어에 의해 리디렉션되며, 정적 파일로 제공되는 사전 렌더링 페이지는 통합 플러그인이 모든 페이지에 삽입하는 작은 스크립트에 의해 리디렉션됩니다. 둘 다 끄려면 `routing.enableProxy`를 `false`로 설정하세요. `astro dev`에서는 `routing.enableProxy`가 `true`로 설정되지 않는 한 쿠키가 리디렉션 소스로 무시되므로 오래된 쿠키가 작업 중인 페이지를 가로채지 않습니다.
405
405
  >
406
406
  > **서버 / 클라이언트 상호 호환성:**
407
407
  > `astro-intlayer`는 프론트매터에서는 서버 훅(`Astro.locals` 읽기)으로 확인되고, `<script>` 블록과 아일랜드에서는 `vanilla-intlayer`의 클라이언트 훅으로 확인되며 동일한 이름과 데이터 구조를 가집니다. `setLocale`과 `onChange`는 클라이언트에서만 동작하므로, 클라이언트 스토어를 초기화하려면 클라이언트에서 `installIntlayer()`를 한 번 호출하세요. `astro-intlayer/client`는 클라이언트 엔트리를 명시적으로 노출합니다.
@@ -428,10 +428,10 @@ const pathList: SitemapUrlEntry[] = [
428
428
  { path: "/about", changefreq: "monthly", priority: 0.7 },
429
429
  ];
430
430
 
431
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
432
-
433
431
  export const GET: APIRoute = async ({ site }) => {
434
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
432
+ const xmlOutput = generateSitemap(pathList, {
433
+ siteUrl: "https://example.com",
434
+ });
435
435
 
436
436
  return new Response(xmlOutput, {
437
437
  headers: { "Content-Type": "application/xml" },
@@ -478,7 +478,6 @@ export const GET: APIRoute = ({ site }) => {
478
478
  - Intlayer + Solid: [Intlayer with Solid](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_astro_solid.md)
479
479
  - Intlayer + Preact: [Intlayer with Preact](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_astro_preact.md)
480
480
  - Intlayer + Lit: [Intlayer with Lit](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_astro_lit.md)
481
- - Intlayer + Vanilla JS: [Intlayer with Vanilla JS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_with_astro_vanilla.md)
482
481
  </Step>
483
482
 
484
483
  <Step number={15} title="컴포넌트에서 콘텐츠 추출" isOptional={true}>
@@ -548,21 +547,7 @@ bun x intlayer extract
548
547
  </Tab>
549
548
  <Tab value='Babel compiler'>
550
549
 
551
- > v9 이후로, `intlayerCompiler`는 `intlayer` 플러그인에 포함되어 있습니다. 따라서 수동으로 추가할 필요가 없습니다.
552
-
553
- `vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함시키세요:
554
-
555
- ```ts fileName="vite.config.ts"
556
- import { defineConfig } from "vite";
557
- import { intlayer, intlayerCompiler } from "vite-intlayer";
558
-
559
- export default defineConfig({
560
- plugins: [
561
- intlayer(),
562
- intlayerCompiler(), // 컴파일러 플러그인 추가
563
- ],
564
- });
565
- ```
550
+ 애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
566
551
 
567
552
  ```bash packageManager="npm"
568
553
  npm run build # 또는 npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + Lit i18n - 앱을 번역하는 완전 가이드"
5
5
  description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Lit 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
23
26
  - version: 8.9.0
24
27
  date: 2026-05-04
25
28
  changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
@@ -163,7 +166,7 @@ bun x intlayer init
163
166
  설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
164
167
 
165
168
  - **astro-intlayer**
166
- Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인과 사용자의 선호 로케일을 감지하고 쿠키를 관리하며 URL 리디렉션을 처리하는 미들웨어가 포함되어 있습니다.
169
+ Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
167
170
 
168
171
  - **lit**
169
172
  빠르고 가벼운 웹 컴포넌트를 빌드하기 위한 핵심 Lit 패키지입니다.
@@ -257,19 +260,21 @@ export default litDemoContent;
257
260
  </Step>
258
261
  <Step number={5} title="Astro에서 콘텐츠 사용">
259
262
 
260
- `intlayer`에서 내보낸 핵심 헬퍼를 사용하여 `.astro` 파일에서 직접 사전을 소비할 수 있습니다. 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가해야 합니다. Lit 커스텀 엘리먼트는 클라이언트 사이드 `<script>`를 통해 임포트되어 body에 배치됩니다.
263
+ `astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
264
+
265
+ 로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
266
+
267
+ Lit 커스텀 엘리먼트는 클라이언트 사이드 `<script>`를 통해 임포트되어 body에 배치됩니다.
261
268
 
262
269
  ```astro fileName="src/pages/[...locale]/index.astro"
263
270
  ---
271
+ import { useIntlayer, useLocale } from "astro-intlayer";
264
272
  import {
265
- getIntlayer,
266
- getLocaleFromPath,
267
273
  getLocalizedUrl,
268
- getHTMLTextDir,
269
274
  getPrefix,
270
275
  localeMap,
271
276
  defaultLocale,
272
- type LocalesValues,
277
+ getHTMLTextDir,
273
278
  } from "intlayer";
274
279
 
275
280
  export const getStaticPaths = () => {
@@ -278,8 +283,11 @@ export const getStaticPaths = () => {
278
283
  }));
279
284
  };
280
285
 
281
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
282
- const { greeting } = getIntlayer("lit-demo", locale);
286
+ // 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
287
+ const { locale } = useLocale();
288
+
289
+ // 해당 로케일의 'lit-demo' 사전 내용
290
+ const { greeting } = useIntlayer("lit-demo");
283
291
  ---
284
292
 
285
293
  <!doctype html>
@@ -338,6 +346,8 @@ const { greeting } = getIntlayer("lit-demo", locale);
338
346
  > <img src={String(content.image.src)} alt={String(content.image)} />
339
347
  > ```
340
348
 
349
+ > `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
350
+
341
351
  > **라우팅 설정에 관한 참고 사항:**
342
352
  > 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
343
353
  >
@@ -494,10 +504,10 @@ const pathList: SitemapUrlEntry[] = [
494
504
  { path: "/about", changefreq: "monthly", priority: 0.7 },
495
505
  ];
496
506
 
497
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
498
-
499
507
  export const GET: APIRoute = async ({ site }) => {
500
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
508
+ const xmlOutput = generateSitemap(pathList, {
509
+ siteUrl: "https://example.com",
510
+ });
501
511
 
502
512
  return new Response(xmlOutput, {
503
513
  headers: { "Content-Type": "application/xml" },
@@ -601,21 +611,7 @@ bun x intlayer extract
601
611
  </Tab>
602
612
  <Tab value='Babel compiler'>
603
613
 
604
- > v9부터 `intlayerCompiler`는 `intlayer` plugin에 포함되어 있습니다. 따라서 수동으로 추가할 필요가 없습니다.
605
-
606
- `vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함합니다:
607
-
608
- ```ts fileName="vite.config.ts"
609
- import { defineConfig } from "vite";
610
- import { intlayer, intlayerCompiler } from "vite-intlayer";
611
-
612
- export default defineConfig({
613
- plugins: [
614
- intlayer(),
615
- intlayerCompiler(), // 컴파일러 플러그인 추가
616
- ],
617
- });
618
- ```
614
+ 애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
619
615
 
620
616
  ```bash packageManager="npm"
621
617
  npm run build # 또는 npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + Preact i18n - 앱을 번역하는 완전 가이드"
5
5
  description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Preact 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
22
25
  - version: 8.9.0
23
26
  date: 2026-05-04
24
27
  changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
@@ -162,7 +165,7 @@ bun x intlayer init
162
165
  설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
163
166
 
164
167
  - **astro-intlayer**
165
- Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인과 사용자의 선호 로케일을 감지하고 쿠키를 관리하며 URL 리디렉션을 처리하는 미들웨어가 포함되어 있습니다.
168
+ Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
166
169
 
167
170
  - **preact**
168
171
  핵심 Preact 패키지 - React의 빠르고 가벼운 대안입니다.
@@ -253,19 +256,21 @@ export default appContent;
253
256
  </Step>
254
257
  <Step number={5} title="Astro에서 콘텐츠 사용">
255
258
 
256
- `intlayer`에서 내보낸 핵심 헬퍼를 사용하여 `.astro` 파일에서 직접 사전을 소비할 수 있습니다. 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Preact 아일랜드를 포함해야 합니다.
259
+ `astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
260
+
261
+ 로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
262
+
263
+ 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Preact 아일랜드를 포함해야 합니다.
257
264
 
258
265
  ```astro fileName="src/pages/[...locale]/index.astro"
259
266
  ---
267
+ import { useIntlayer, useLocale } from "astro-intlayer";
260
268
  import {
261
- getIntlayer,
262
- getLocaleFromPath,
263
269
  getLocalizedUrl,
264
- getHTMLTextDir,
265
270
  getPrefix,
266
271
  localeMap,
267
272
  defaultLocale,
268
- type LocalesValues,
273
+ getHTMLTextDir,
269
274
  } from "intlayer";
270
275
  import { PreactIsland } from "../../components/preact/PreactIsland";
271
276
 
@@ -275,8 +280,11 @@ export const getStaticPaths = () => {
275
280
  }));
276
281
  };
277
282
 
278
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
279
- const { title } = getIntlayer("app", locale);
283
+ // 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
284
+ const { locale } = useLocale();
285
+
286
+ // 해당 로케일의 'app' 사전 내용
287
+ const { title } = useIntlayer("app");
280
288
  ---
281
289
 
282
290
  <!doctype html>
@@ -332,6 +340,8 @@ const { title } = getIntlayer("app", locale);
332
340
  > <img src={String(content.image.src)} alt={String(content.image)} />
333
341
  > ```
334
342
 
343
+ > `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
344
+
335
345
  > **라우팅 설정에 관한 참고 사항:**
336
346
  > 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
337
347
  >
@@ -448,10 +458,10 @@ const pathList: SitemapUrlEntry[] = [
448
458
  { path: "/about", changefreq: "monthly", priority: 0.7 },
449
459
  ];
450
460
 
451
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
452
-
453
461
  export const GET: APIRoute = async ({ site }) => {
454
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
462
+ const xmlOutput = generateSitemap(pathList, {
463
+ siteUrl: "https://example.com",
464
+ });
455
465
 
456
466
  return new Response(xmlOutput, {
457
467
  headers: { "Content-Type": "application/xml" },
@@ -555,21 +565,7 @@ bun x intlayer extract
555
565
  </Tab>
556
566
  <Tab value='Babel compiler'>
557
567
 
558
- > v9부터 `intlayerCompiler`가 `intlayer` 플러그인에 포함되어 있습니다. 따라서 수동으로 추가할 필요가 없습니다.
559
-
560
- `vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
561
-
562
- ```ts fileName="vite.config.ts"
563
- import { defineConfig } from "vite";
564
- import { intlayer, intlayerCompiler } from "vite-intlayer";
565
-
566
- export default defineConfig({
567
- plugins: [
568
- intlayer(),
569
- intlayerCompiler(), // 컴파일러 플러그인 추가
570
- ],
571
- });
572
- ```
568
+ 애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
573
569
 
574
570
  ```bash packageManager="npm"
575
571
  npm run build # 또는 npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-03-07
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + React i18n - 앱을 번역하는 완전 가이드"
5
5
  description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + React 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
22
25
  - version: 8.9.0
23
26
  date: 2026-05-04
24
27
  changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
@@ -165,7 +168,7 @@ bun x intlayer init
165
168
  설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
166
169
 
167
170
  - **astro-intlayer**
168
- Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인과 사용자의 선호 로케일을 감지하고 쿠키를 관리하며 URL 리디렉션을 처리하는 미들웨어가 포함되어 있습니다.
171
+ Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
169
172
 
170
173
  - **react**, **react-dom**
171
174
  브라우저에서 React 컴포넌트를 렌더링하는 데 필요한 핵심 React 패키지입니다.
@@ -254,19 +257,21 @@ export default appContent;
254
257
  </Step>
255
258
  <Step number={5} title="Astro에서 콘텐츠 사용">
256
259
 
257
- `intlayer`에서 내보낸 핵심 헬퍼를 사용하여 `.astro` 파일에서 직접 사전을 소비할 수 있습니다. 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 React 아일랜드를 포함해야 합니다.
260
+ `astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
261
+
262
+ 로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
263
+
264
+ 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 React 아일랜드를 포함해야 합니다.
258
265
 
259
266
  ```astro fileName="src/pages/[...locale]/index.astro"
260
267
  ---
268
+ import { useIntlayer, useLocale } from "astro-intlayer";
261
269
  import {
262
- getIntlayer,
263
- getLocaleFromPath,
264
270
  getLocalizedUrl,
265
- getHTMLTextDir,
266
271
  getPrefix,
267
272
  localeMap,
268
273
  defaultLocale,
269
- type LocalesValues,
274
+ getHTMLTextDir,
270
275
  } from "intlayer";
271
276
  import { ReactIsland } from "../../components/react/ReactIsland";
272
277
 
@@ -276,8 +281,11 @@ export const getStaticPaths = () => {
276
281
  }));
277
282
  };
278
283
 
279
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
280
- const { title } = getIntlayer("app", locale);
284
+ // 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
285
+ const { locale } = useLocale();
286
+
287
+ // 해당 로케일의 'app' 사전 내용
288
+ const { title } = useIntlayer("app");
281
289
  ---
282
290
 
283
291
  <!doctype html>
@@ -333,6 +341,8 @@ const { title } = getIntlayer("app", locale);
333
341
  > <img src={String(content.image.src)} alt={String(content.image)} />
334
342
  > ```
335
343
 
344
+ > `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
345
+
336
346
  > **라우팅 설정에 관한 참고 사항:**
337
347
  > 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
338
348
  >
@@ -445,10 +455,10 @@ const pathList: SitemapUrlEntry[] = [
445
455
  { path: "/about", changefreq: "monthly", priority: 0.7 },
446
456
  ];
447
457
 
448
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
449
-
450
458
  export const GET: APIRoute = async ({ site }) => {
451
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
459
+ const xmlOutput = generateSitemap(pathList, {
460
+ siteUrl: "https://example.com",
461
+ });
452
462
 
453
463
  return new Response(xmlOutput, {
454
464
  headers: { "Content-Type": "application/xml" },
@@ -552,21 +562,7 @@ bun x intlayer extract
552
562
  </Tab>
553
563
  <Tab value='Babel compiler'>
554
564
 
555
- > v9 이후로 `intlayerCompiler`는 `intlayer` 플러그인에 포함되어 있습니다. 따라서 수동으로 추가할 필요가 없습니다.
556
-
557
- `vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
558
-
559
- ```ts fileName="vite.config.ts"
560
- import { defineConfig } from "vite";
561
- import { intlayer, intlayerCompiler } from "vite-intlayer";
562
-
563
- export default defineConfig({
564
- plugins: [
565
- intlayer(),
566
- intlayerCompiler(), // 컴파일러 플러그인을 추가합니다
567
- ],
568
- });
569
- ```
565
+ 애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
570
566
 
571
567
  ```bash packageManager="npm"
572
568
  npm run build # 또는 npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + Solid i18n - 앱을 번역하는 완전 가이드"
5
5
  description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Solid 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
22
25
  - version: 8.9.0
23
26
  date: 2026-05-04
24
27
  changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
@@ -162,7 +165,7 @@ bun x intlayer init
162
165
  설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
163
166
 
164
167
  - **astro-intlayer**
165
- Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인과 사용자의 선호 로케일을 감지하고 쿠키를 관리하며 URL 리디렉션을 처리하는 미들웨어가 포함되어 있습니다.
168
+ Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
166
169
 
167
170
  - **solid-js**
168
171
  핵심 Solid 패키지입니다.
@@ -250,19 +253,21 @@ export default appContent;
250
253
  </Step>
251
254
  <Step number={5} title="Astro에서 콘텐츠 사용">
252
255
 
253
- `intlayer`에서 내보낸 핵심 헬퍼를 사용하여 `.astro` 파일에서 직접 사전을 소비할 수 있습니다. 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Solid 아일랜드를 포함해야 합니다.
256
+ `astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
257
+
258
+ 로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
259
+
260
+ 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Solid 아일랜드를 포함해야 합니다.
254
261
 
255
262
  ```astro fileName="src/pages/[...locale]/index.astro"
256
263
  ---
264
+ import { useIntlayer, useLocale } from "astro-intlayer";
257
265
  import {
258
- getIntlayer,
259
- getLocaleFromPath,
260
266
  getLocalizedUrl,
261
- getHTMLTextDir,
262
267
  getPrefix,
263
268
  localeMap,
264
269
  defaultLocale,
265
- type LocalesValues,
270
+ getHTMLTextDir,
266
271
  } from "intlayer";
267
272
  import { SolidIsland } from "../../components/solid/SolidIsland";
268
273
 
@@ -272,8 +277,11 @@ export const getStaticPaths = () => {
272
277
  }));
273
278
  };
274
279
 
275
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
276
- const { title } = getIntlayer("app", locale);
280
+ // 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
281
+ const { locale } = useLocale();
282
+
283
+ // 해당 로케일의 'app' 사전 내용
284
+ const { title } = useIntlayer("app");
277
285
  ---
278
286
 
279
287
  <!doctype html>
@@ -329,6 +337,8 @@ const { title } = getIntlayer("app", locale);
329
337
  > <img src={String(content.image.src)} alt={String(content.image)} />
330
338
  > ```
331
339
 
340
+ > `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
341
+
332
342
  > **라우팅 설정에 관한 참고 사항:**
333
343
  > 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
334
344
  >
@@ -445,10 +455,10 @@ const pathList: SitemapUrlEntry[] = [
445
455
  { path: "/about", changefreq: "monthly", priority: 0.7 },
446
456
  ];
447
457
 
448
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
449
-
450
458
  export const GET: APIRoute = async ({ site }) => {
451
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
459
+ const xmlOutput = generateSitemap(pathList, {
460
+ siteUrl: "https://example.com",
461
+ });
452
462
 
453
463
  return new Response(xmlOutput, {
454
464
  headers: { "Content-Type": "application/xml" },
@@ -552,21 +562,7 @@ bun x intlayer extract
552
562
  </Tab>
553
563
  <Tab value='Babel compiler'>
554
564
 
555
- > v9 이후로, `intlayerCompiler`는 `intlayer` 플러그인에 포함되어 있습니다. 따라서 수동으로 추가할 필요가 없습니다.
556
-
557
- `vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
558
-
559
- ```ts fileName="vite.config.ts"
560
- import { defineConfig } from "vite";
561
- import { intlayer, intlayerCompiler } from "vite-intlayer";
562
-
563
- export default defineConfig({
564
- plugins: [
565
- intlayer(),
566
- intlayerCompiler(), // 컴파일러 플러그인 추가
567
- ],
568
- });
569
- ```
565
+ 애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
570
566
 
571
567
  ```bash packageManager="npm"
572
568
  npm run build # 또는 npm run dev
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-20
4
4
  title: "Astro + Svelte i18n - 앱을 번역하는 완전 가이드"
5
5
  description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro + Svelte 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
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: "Astro 페이지에서 astro-intlayer의 useIntlayer / useLocale 훅 사용"
22
25
  - version: 8.9.0
23
26
  date: 2026-05-04
24
27
  changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
@@ -162,7 +165,7 @@ bun x intlayer init
162
165
  설정 관리, 번역, [콘텐츠 선언](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md), 트랜스파일 및 [CLI 명령어](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
163
166
 
164
167
  - **astro-intlayer**
165
- Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인과 사용자의 선호 로케일을 감지하고 쿠키를 관리하며 URL 리디렉션을 처리하는 미들웨어가 포함되어 있습니다.
168
+ Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
166
169
 
167
170
  - **svelte**
168
171
  핵심 Svelte 패키지입니다.
@@ -250,19 +253,21 @@ export default appContent;
250
253
  </Step>
251
254
  <Step number={5} title="Astro에서 콘텐츠 사용">
252
255
 
253
- `intlayer`에서 내보낸 핵심 헬퍼를 사용하여 `.astro` 파일에서 직접 사전을 소비할 수 있습니다. 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Svelte 아일랜드를 포함해야 합니다.
256
+ `astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
257
+
258
+ 로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
259
+
260
+ 또한 각 페이지에 hreflang 및 canonical 링크와 같은 SEO 메타데이터를 추가하고, 클라이언트 사이드의 인터랙티브 콘텐츠를 위해 Svelte 아일랜드를 포함해야 합니다.
254
261
 
255
262
  ```astro fileName="src/pages/[...locale]/index.astro"
256
263
  ---
264
+ import { useIntlayer, useLocale } from "astro-intlayer";
257
265
  import {
258
- getIntlayer,
259
- getLocaleFromPath,
260
266
  getLocalizedUrl,
261
- getHTMLTextDir,
262
267
  getPrefix,
263
268
  localeMap,
264
269
  defaultLocale,
265
- type LocalesValues,
270
+ getHTMLTextDir,
266
271
  } from "intlayer";
267
272
  import SvelteIsland from "../../components/svelte/SvelteIsland.svelte";
268
273
 
@@ -272,8 +277,11 @@ export const getStaticPaths = () => {
272
277
  }));
273
278
  };
274
279
 
275
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
276
- const { title } = getIntlayer("app", locale);
280
+ // 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
281
+ const { locale } = useLocale();
282
+
283
+ // 해당 로케일의 'app' 사전 내용
284
+ const { title } = useIntlayer("app");
277
285
  ---
278
286
 
279
287
  <!doctype html>
@@ -329,6 +337,8 @@ const { title } = getIntlayer("app", locale);
329
337
  > <img src={String(content.image.src)} alt={String(content.image)} />
330
338
  > ```
331
339
 
340
+ > `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
341
+
332
342
  > **라우팅 설정에 관한 참고 사항:**
333
343
  > 사용하는 디렉토리 구조는 `intlayer.config.ts`의 `middleware.routing` 설정에 따라 달라집니다:
334
344
  >
@@ -449,10 +459,10 @@ const pathList: SitemapUrlEntry[] = [
449
459
  { path: "/about", changefreq: "monthly", priority: 0.7 },
450
460
  ];
451
461
 
452
- const SITE_URL = import.meta.env.SITE ?? "http://localhost:4321";
453
-
454
462
  export const GET: APIRoute = async ({ site }) => {
455
- const xmlOutput = generateSitemap(pathList, { siteUrl: SITE_URL });
463
+ const xmlOutput = generateSitemap(pathList, {
464
+ siteUrl: "https://example.com",
465
+ });
456
466
 
457
467
  return new Response(xmlOutput, {
458
468
  headers: { "Content-Type": "application/xml" },
@@ -556,21 +566,7 @@ bun x intlayer extract
556
566
  </Tab>
557
567
  <Tab value='Babel compiler'>
558
568
 
559
- > v9 이상에서는 `intlayerCompiler`이 `intlayer` 플러그인에 포함되어 있습니다. 따라서 수동으로 추가할 필요가 없습니다.
560
-
561
- `vite.config.ts`를 업데이트하여 `intlayerCompiler` 플러그인을 포함하세요:
562
-
563
- ```ts fileName="vite.config.ts"
564
- import { defineConfig } from "vite";
565
- import { intlayer, intlayerCompiler } from "vite-intlayer";
566
-
567
- export default defineConfig({
568
- plugins: [
569
- intlayer(),
570
- intlayerCompiler(), // 컴파일러 플러그인을 추가합니다
571
- ],
572
- });
573
- ```
569
+ 애플리케이션을 빌드하여 컴포넌트를 변환하고 콘텐츠를 추출합니다.
574
570
 
575
571
  ```bash packageManager="npm"
576
572
  npm run build # 또는 npm run dev