@intlayer/docs 9.5.4-canary.0 → 9.5.5

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 (622) hide show
  1. package/README.md +2 -1
  2. package/blog/ar/how_to_pick_react_i18n_library.md +28 -0
  3. package/blog/ar/how_to_pick_solid_i18n_library.md +19 -5
  4. package/blog/de/how_to_pick_react_i18n_library.md +28 -0
  5. package/blog/de/how_to_pick_solid_i18n_library.md +19 -5
  6. package/blog/en/how_to_pick_react_i18n_library.md +28 -0
  7. package/blog/en/how_to_pick_solid_i18n_library.md +19 -5
  8. package/blog/en-GB/how_to_pick_react_i18n_library.md +28 -0
  9. package/blog/en-GB/how_to_pick_solid_i18n_library.md +19 -5
  10. package/blog/es/how_to_pick_react_i18n_library.md +28 -0
  11. package/blog/es/how_to_pick_solid_i18n_library.md +19 -5
  12. package/blog/fr/how_to_pick_react_i18n_library.md +28 -0
  13. package/blog/fr/how_to_pick_solid_i18n_library.md +19 -5
  14. package/blog/hi/how_to_pick_react_i18n_library.md +28 -0
  15. package/blog/hi/how_to_pick_solid_i18n_library.md +19 -5
  16. package/blog/id/how_to_pick_react_i18n_library.md +28 -0
  17. package/blog/id/how_to_pick_solid_i18n_library.md +19 -5
  18. package/blog/it/how_to_pick_react_i18n_library.md +28 -0
  19. package/blog/it/how_to_pick_solid_i18n_library.md +19 -5
  20. package/blog/ja/how_to_pick_react_i18n_library.md +28 -0
  21. package/blog/ja/how_to_pick_solid_i18n_library.md +19 -5
  22. package/blog/ko/how_to_pick_react_i18n_library.md +28 -0
  23. package/blog/ko/how_to_pick_solid_i18n_library.md +19 -5
  24. package/blog/pl/how_to_pick_react_i18n_library.md +28 -0
  25. package/blog/pl/how_to_pick_solid_i18n_library.md +19 -5
  26. package/blog/pt/how_to_pick_react_i18n_library.md +28 -0
  27. package/blog/pt/how_to_pick_solid_i18n_library.md +19 -5
  28. package/blog/ru/how_to_pick_react_i18n_library.md +28 -0
  29. package/blog/ru/how_to_pick_solid_i18n_library.md +19 -5
  30. package/blog/tr/how_to_pick_react_i18n_library.md +28 -0
  31. package/blog/tr/how_to_pick_solid_i18n_library.md +19 -5
  32. package/blog/uk/how_to_pick_react_i18n_library.md +28 -0
  33. package/blog/uk/how_to_pick_solid_i18n_library.md +19 -5
  34. package/blog/vi/how_to_pick_react_i18n_library.md +28 -0
  35. package/blog/vi/how_to_pick_solid_i18n_library.md +19 -5
  36. package/blog/zh/how_to_pick_react_i18n_library.md +28 -0
  37. package/blog/zh/how_to_pick_solid_i18n_library.md +19 -5
  38. package/dist/cjs/generated/docs.entry.cjs +220 -0
  39. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  40. package/dist/esm/generated/docs.entry.mjs +220 -0
  41. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  42. package/dist/types/generated/docs.entry.d.ts +11 -0
  43. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  44. package/docs/ar/how_works_intlayer.md +86 -14
  45. package/docs/ar/intlayer_visual_editor.md +7 -0
  46. package/docs/ar/intlayer_with_astro.md +60 -36
  47. package/docs/ar/intlayer_with_astro_preact.md +7 -0
  48. package/docs/ar/intlayer_with_astro_react.md +7 -0
  49. package/docs/ar/intlayer_with_astro_solid.md +7 -0
  50. package/docs/ar/intlayer_with_astro_svelte.md +7 -0
  51. package/docs/ar/intlayer_with_astro_vanilla.md +7 -0
  52. package/docs/ar/intlayer_with_astro_vue.md +7 -0
  53. package/docs/ar/intlayer_with_nextjs_14.md +7 -0
  54. package/docs/ar/intlayer_with_nextjs_15.md +7 -0
  55. package/docs/ar/intlayer_with_nextjs_16.md +7 -0
  56. package/docs/ar/intlayer_with_react_router_v7.md +7 -0
  57. package/docs/ar/intlayer_with_remix_3.md +73 -112
  58. package/docs/ar/intlayer_with_tanstack+solid.md +7 -0
  59. package/docs/ar/intlayer_with_tanstack.md +7 -0
  60. package/docs/ar/intlayer_with_vite+preact.md +7 -0
  61. package/docs/ar/intlayer_with_vite+react.md +7 -0
  62. package/docs/ar/intlayer_with_vite+solid.md +7 -0
  63. package/docs/ar/packages/astro-intlayer/exports.md +161 -9
  64. package/docs/ar/packages/astro-intlayer/intlayer.md +76 -0
  65. package/docs/ar/packages/astro-intlayer/onRequest.md +76 -0
  66. package/docs/ar/packages/astro-intlayer/useDictionary.md +95 -0
  67. package/docs/ar/packages/astro-intlayer/useIntlayer.md +98 -0
  68. package/docs/ar/packages/astro-intlayer/useLocale.md +126 -0
  69. package/docs/ar/packages/remix-intlayer/Intlayer.md +55 -0
  70. package/docs/ar/packages/remix-intlayer/exports.md +80 -0
  71. package/docs/ar/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  72. package/docs/ar/packages/remix-intlayer/useDictionary.md +95 -0
  73. package/docs/ar/packages/remix-intlayer/useIntlayer.md +94 -0
  74. package/docs/ar/packages/remix-intlayer/useLocale.md +104 -0
  75. package/docs/ar/readme.md +2 -1
  76. package/docs/de/how_works_intlayer.md +86 -14
  77. package/docs/de/intlayer_visual_editor.md +7 -0
  78. package/docs/de/intlayer_with_astro.md +60 -36
  79. package/docs/de/intlayer_with_astro_preact.md +7 -0
  80. package/docs/de/intlayer_with_astro_react.md +7 -0
  81. package/docs/de/intlayer_with_astro_solid.md +7 -0
  82. package/docs/de/intlayer_with_astro_svelte.md +7 -0
  83. package/docs/de/intlayer_with_astro_vanilla.md +7 -0
  84. package/docs/de/intlayer_with_astro_vue.md +7 -0
  85. package/docs/de/intlayer_with_nextjs_14.md +7 -0
  86. package/docs/de/intlayer_with_nextjs_15.md +7 -0
  87. package/docs/de/intlayer_with_nextjs_16.md +7 -0
  88. package/docs/de/intlayer_with_react_router_v7.md +7 -0
  89. package/docs/de/intlayer_with_remix_3.md +70 -109
  90. package/docs/de/intlayer_with_tanstack+solid.md +7 -0
  91. package/docs/de/intlayer_with_tanstack.md +7 -0
  92. package/docs/de/intlayer_with_vite+preact.md +7 -0
  93. package/docs/de/intlayer_with_vite+react.md +7 -0
  94. package/docs/de/intlayer_with_vite+solid.md +7 -0
  95. package/docs/de/packages/astro-intlayer/exports.md +164 -12
  96. package/docs/de/packages/astro-intlayer/intlayer.md +76 -0
  97. package/docs/de/packages/astro-intlayer/onRequest.md +76 -0
  98. package/docs/de/packages/astro-intlayer/useDictionary.md +95 -0
  99. package/docs/de/packages/astro-intlayer/useIntlayer.md +98 -0
  100. package/docs/de/packages/astro-intlayer/useLocale.md +126 -0
  101. package/docs/de/packages/remix-intlayer/Intlayer.md +77 -0
  102. package/docs/de/packages/remix-intlayer/exports.md +176 -0
  103. package/docs/de/packages/remix-intlayer/intlayerMiddleware.md +101 -0
  104. package/docs/de/packages/remix-intlayer/useDictionary.md +94 -0
  105. package/docs/de/packages/remix-intlayer/useIntlayer.md +94 -0
  106. package/docs/de/packages/remix-intlayer/useLocale.md +104 -0
  107. package/docs/de/readme.md +2 -1
  108. package/docs/en/how_works_intlayer.md +86 -14
  109. package/docs/en/intlayer_visual_editor.md +7 -0
  110. package/docs/en/intlayer_with_astro.md +63 -41
  111. package/docs/en/intlayer_with_astro_preact.md +7 -0
  112. package/docs/en/intlayer_with_astro_react.md +7 -0
  113. package/docs/en/intlayer_with_astro_solid.md +7 -0
  114. package/docs/en/intlayer_with_astro_svelte.md +7 -0
  115. package/docs/en/intlayer_with_astro_vanilla.md +7 -0
  116. package/docs/en/intlayer_with_astro_vue.md +7 -0
  117. package/docs/en/intlayer_with_nextjs_14.md +7 -0
  118. package/docs/en/intlayer_with_nextjs_15.md +7 -0
  119. package/docs/en/intlayer_with_nextjs_16.md +7 -0
  120. package/docs/en/intlayer_with_react_router_v7.md +7 -0
  121. package/docs/en/intlayer_with_remix_3.md +74 -122
  122. package/docs/en/intlayer_with_tanstack+solid.md +7 -0
  123. package/docs/en/intlayer_with_tanstack.md +7 -0
  124. package/docs/en/intlayer_with_vite+preact.md +7 -0
  125. package/docs/en/intlayer_with_vite+react.md +7 -0
  126. package/docs/en/intlayer_with_vite+solid.md +7 -0
  127. package/docs/en/introduction.md +2 -1
  128. package/docs/en/packages/astro-intlayer/exports.md +161 -9
  129. package/docs/en/packages/astro-intlayer/intlayer.md +76 -0
  130. package/docs/en/packages/astro-intlayer/onRequest.md +76 -0
  131. package/docs/en/packages/astro-intlayer/useDictionary.md +94 -0
  132. package/docs/en/packages/astro-intlayer/useIntlayer.md +98 -0
  133. package/docs/en/packages/astro-intlayer/useLocale.md +126 -0
  134. package/docs/en/packages/remix-intlayer/Intlayer.md +77 -0
  135. package/docs/en/packages/remix-intlayer/exports.md +176 -0
  136. package/docs/en/packages/remix-intlayer/intlayerMiddleware.md +101 -0
  137. package/docs/en/packages/remix-intlayer/useDictionary.md +94 -0
  138. package/docs/en/packages/remix-intlayer/useIntlayer.md +94 -0
  139. package/docs/en/packages/remix-intlayer/useLocale.md +104 -0
  140. package/docs/en/readme.md +2 -1
  141. package/docs/en-GB/how_works_intlayer.md +86 -14
  142. package/docs/en-GB/intlayer_visual_editor.md +7 -0
  143. package/docs/en-GB/intlayer_with_astro.md +60 -36
  144. package/docs/en-GB/intlayer_with_astro_preact.md +7 -0
  145. package/docs/en-GB/intlayer_with_astro_react.md +7 -0
  146. package/docs/en-GB/intlayer_with_astro_solid.md +7 -0
  147. package/docs/en-GB/intlayer_with_astro_svelte.md +7 -0
  148. package/docs/en-GB/intlayer_with_astro_vanilla.md +7 -0
  149. package/docs/en-GB/intlayer_with_astro_vue.md +7 -0
  150. package/docs/en-GB/intlayer_with_nextjs_14.md +7 -0
  151. package/docs/en-GB/intlayer_with_nextjs_15.md +7 -0
  152. package/docs/en-GB/intlayer_with_nextjs_16.md +7 -0
  153. package/docs/en-GB/intlayer_with_react_router_v7.md +7 -0
  154. package/docs/en-GB/intlayer_with_remix_3.md +66 -105
  155. package/docs/en-GB/intlayer_with_tanstack+solid.md +7 -0
  156. package/docs/en-GB/intlayer_with_tanstack.md +7 -0
  157. package/docs/en-GB/intlayer_with_vite+preact.md +7 -0
  158. package/docs/en-GB/intlayer_with_vite+react.md +7 -0
  159. package/docs/en-GB/intlayer_with_vite+solid.md +7 -0
  160. package/docs/en-GB/packages/astro-intlayer/exports.md +162 -10
  161. package/docs/en-GB/packages/astro-intlayer/intlayer.md +76 -0
  162. package/docs/en-GB/packages/astro-intlayer/onRequest.md +76 -0
  163. package/docs/en-GB/packages/astro-intlayer/useDictionary.md +95 -0
  164. package/docs/en-GB/packages/astro-intlayer/useIntlayer.md +98 -0
  165. package/docs/en-GB/packages/astro-intlayer/useLocale.md +126 -0
  166. package/docs/en-GB/packages/remix-intlayer/Intlayer.md +77 -0
  167. package/docs/en-GB/packages/remix-intlayer/exports.md +176 -0
  168. package/docs/en-GB/packages/remix-intlayer/intlayerMiddleware.md +101 -0
  169. package/docs/en-GB/packages/remix-intlayer/useDictionary.md +94 -0
  170. package/docs/en-GB/packages/remix-intlayer/useIntlayer.md +94 -0
  171. package/docs/en-GB/packages/remix-intlayer/useLocale.md +104 -0
  172. package/docs/en-GB/readme.md +2 -1
  173. package/docs/es/how_works_intlayer.md +86 -14
  174. package/docs/es/intlayer_visual_editor.md +7 -0
  175. package/docs/es/intlayer_with_astro.md +60 -36
  176. package/docs/es/intlayer_with_astro_preact.md +7 -0
  177. package/docs/es/intlayer_with_astro_react.md +7 -0
  178. package/docs/es/intlayer_with_astro_solid.md +7 -0
  179. package/docs/es/intlayer_with_astro_svelte.md +7 -0
  180. package/docs/es/intlayer_with_astro_vanilla.md +7 -0
  181. package/docs/es/intlayer_with_astro_vue.md +7 -0
  182. package/docs/es/intlayer_with_nextjs_14.md +7 -0
  183. package/docs/es/intlayer_with_nextjs_15.md +7 -0
  184. package/docs/es/intlayer_with_nextjs_16.md +7 -0
  185. package/docs/es/intlayer_with_react_router_v7.md +7 -0
  186. package/docs/es/intlayer_with_remix_3.md +73 -112
  187. package/docs/es/intlayer_with_tanstack+solid.md +7 -0
  188. package/docs/es/intlayer_with_tanstack.md +7 -0
  189. package/docs/es/intlayer_with_vite+preact.md +7 -0
  190. package/docs/es/intlayer_with_vite+react.md +7 -0
  191. package/docs/es/intlayer_with_vite+solid.md +7 -0
  192. package/docs/es/packages/astro-intlayer/exports.md +162 -10
  193. package/docs/es/packages/astro-intlayer/intlayer.md +76 -0
  194. package/docs/es/packages/astro-intlayer/onRequest.md +76 -0
  195. package/docs/es/packages/astro-intlayer/useDictionary.md +94 -0
  196. package/docs/es/packages/astro-intlayer/useIntlayer.md +98 -0
  197. package/docs/es/packages/astro-intlayer/useLocale.md +126 -0
  198. package/docs/es/packages/remix-intlayer/Intlayer.md +77 -0
  199. package/docs/es/packages/remix-intlayer/exports.md +176 -0
  200. package/docs/es/packages/remix-intlayer/intlayerMiddleware.md +101 -0
  201. package/docs/es/packages/remix-intlayer/useDictionary.md +94 -0
  202. package/docs/es/packages/remix-intlayer/useIntlayer.md +94 -0
  203. package/docs/es/packages/remix-intlayer/useLocale.md +104 -0
  204. package/docs/es/readme.md +2 -1
  205. package/docs/fr/how_works_intlayer.md +86 -14
  206. package/docs/fr/intlayer_visual_editor.md +7 -0
  207. package/docs/fr/intlayer_with_astro.md +60 -36
  208. package/docs/fr/intlayer_with_astro_preact.md +7 -0
  209. package/docs/fr/intlayer_with_astro_react.md +7 -0
  210. package/docs/fr/intlayer_with_astro_solid.md +7 -0
  211. package/docs/fr/intlayer_with_astro_svelte.md +7 -0
  212. package/docs/fr/intlayer_with_astro_vanilla.md +7 -0
  213. package/docs/fr/intlayer_with_astro_vue.md +7 -0
  214. package/docs/fr/intlayer_with_nextjs_14.md +7 -0
  215. package/docs/fr/intlayer_with_nextjs_15.md +7 -0
  216. package/docs/fr/intlayer_with_nextjs_16.md +7 -0
  217. package/docs/fr/intlayer_with_react_router_v7.md +7 -0
  218. package/docs/fr/intlayer_with_remix_3.md +74 -122
  219. package/docs/fr/intlayer_with_tanstack+solid.md +7 -0
  220. package/docs/fr/intlayer_with_tanstack.md +7 -0
  221. package/docs/fr/intlayer_with_vite+preact.md +7 -0
  222. package/docs/fr/intlayer_with_vite+react.md +7 -0
  223. package/docs/fr/intlayer_with_vite+solid.md +7 -0
  224. package/docs/fr/packages/astro-intlayer/exports.md +162 -10
  225. package/docs/fr/packages/astro-intlayer/intlayer.md +76 -0
  226. package/docs/fr/packages/astro-intlayer/onRequest.md +76 -0
  227. package/docs/fr/packages/astro-intlayer/useDictionary.md +94 -0
  228. package/docs/fr/packages/astro-intlayer/useIntlayer.md +98 -0
  229. package/docs/fr/packages/astro-intlayer/useLocale.md +126 -0
  230. package/docs/fr/packages/remix-intlayer/Intlayer.md +77 -0
  231. package/docs/fr/packages/remix-intlayer/exports.md +176 -0
  232. package/docs/fr/packages/remix-intlayer/intlayerMiddleware.md +101 -0
  233. package/docs/fr/packages/remix-intlayer/useDictionary.md +94 -0
  234. package/docs/fr/packages/remix-intlayer/useIntlayer.md +94 -0
  235. package/docs/fr/packages/remix-intlayer/useLocale.md +104 -0
  236. package/docs/fr/readme.md +2 -1
  237. package/docs/hi/how_works_intlayer.md +86 -14
  238. package/docs/hi/intlayer_visual_editor.md +7 -0
  239. package/docs/hi/intlayer_with_astro.md +61 -37
  240. package/docs/hi/intlayer_with_astro_preact.md +7 -0
  241. package/docs/hi/intlayer_with_astro_react.md +7 -0
  242. package/docs/hi/intlayer_with_astro_solid.md +7 -0
  243. package/docs/hi/intlayer_with_astro_svelte.md +7 -0
  244. package/docs/hi/intlayer_with_astro_vanilla.md +7 -0
  245. package/docs/hi/intlayer_with_astro_vue.md +7 -0
  246. package/docs/hi/intlayer_with_nextjs_14.md +7 -0
  247. package/docs/hi/intlayer_with_nextjs_15.md +7 -0
  248. package/docs/hi/intlayer_with_nextjs_16.md +7 -0
  249. package/docs/hi/intlayer_with_react_router_v7.md +7 -0
  250. package/docs/hi/intlayer_with_remix_3.md +73 -112
  251. package/docs/hi/intlayer_with_tanstack+solid.md +7 -0
  252. package/docs/hi/intlayer_with_tanstack.md +7 -0
  253. package/docs/hi/intlayer_with_vite+preact.md +7 -0
  254. package/docs/hi/intlayer_with_vite+react.md +7 -0
  255. package/docs/hi/intlayer_with_vite+solid.md +7 -0
  256. package/docs/hi/packages/astro-intlayer/exports.md +165 -13
  257. package/docs/hi/packages/astro-intlayer/intlayer.md +76 -0
  258. package/docs/hi/packages/astro-intlayer/onRequest.md +76 -0
  259. package/docs/hi/packages/astro-intlayer/useDictionary.md +95 -0
  260. package/docs/hi/packages/astro-intlayer/useIntlayer.md +98 -0
  261. package/docs/hi/packages/astro-intlayer/useLocale.md +126 -0
  262. package/docs/hi/packages/remix-intlayer/Intlayer.md +55 -0
  263. package/docs/hi/packages/remix-intlayer/exports.md +80 -0
  264. package/docs/hi/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  265. package/docs/hi/packages/remix-intlayer/useDictionary.md +95 -0
  266. package/docs/hi/packages/remix-intlayer/useIntlayer.md +94 -0
  267. package/docs/hi/packages/remix-intlayer/useLocale.md +104 -0
  268. package/docs/hi/readme.md +2 -1
  269. package/docs/id/how_works_intlayer.md +86 -14
  270. package/docs/id/intlayer_visual_editor.md +7 -0
  271. package/docs/id/intlayer_with_astro.md +60 -36
  272. package/docs/id/intlayer_with_astro_preact.md +7 -0
  273. package/docs/id/intlayer_with_astro_react.md +7 -0
  274. package/docs/id/intlayer_with_astro_solid.md +7 -0
  275. package/docs/id/intlayer_with_astro_svelte.md +7 -0
  276. package/docs/id/intlayer_with_astro_vanilla.md +7 -0
  277. package/docs/id/intlayer_with_astro_vue.md +7 -0
  278. package/docs/id/intlayer_with_nextjs_14.md +7 -0
  279. package/docs/id/intlayer_with_nextjs_15.md +7 -0
  280. package/docs/id/intlayer_with_nextjs_16.md +7 -0
  281. package/docs/id/intlayer_with_react_router_v7.md +7 -0
  282. package/docs/id/intlayer_with_remix_3.md +101 -148
  283. package/docs/id/intlayer_with_tanstack+solid.md +7 -0
  284. package/docs/id/intlayer_with_tanstack.md +7 -0
  285. package/docs/id/intlayer_with_vite+preact.md +7 -0
  286. package/docs/id/intlayer_with_vite+react.md +7 -0
  287. package/docs/id/intlayer_with_vite+solid.md +7 -0
  288. package/docs/id/packages/astro-intlayer/exports.md +163 -11
  289. package/docs/id/packages/astro-intlayer/intlayer.md +76 -0
  290. package/docs/id/packages/astro-intlayer/onRequest.md +76 -0
  291. package/docs/id/packages/astro-intlayer/useDictionary.md +94 -0
  292. package/docs/id/packages/astro-intlayer/useIntlayer.md +98 -0
  293. package/docs/id/packages/astro-intlayer/useLocale.md +126 -0
  294. package/docs/id/packages/remix-intlayer/Intlayer.md +55 -0
  295. package/docs/id/packages/remix-intlayer/exports.md +80 -0
  296. package/docs/id/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  297. package/docs/id/packages/remix-intlayer/useDictionary.md +95 -0
  298. package/docs/id/packages/remix-intlayer/useIntlayer.md +94 -0
  299. package/docs/id/packages/remix-intlayer/useLocale.md +104 -0
  300. package/docs/id/readme.md +2 -1
  301. package/docs/it/how_works_intlayer.md +86 -14
  302. package/docs/it/intlayer_visual_editor.md +7 -0
  303. package/docs/it/intlayer_with_astro.md +60 -36
  304. package/docs/it/intlayer_with_astro_preact.md +7 -0
  305. package/docs/it/intlayer_with_astro_react.md +7 -0
  306. package/docs/it/intlayer_with_astro_solid.md +7 -0
  307. package/docs/it/intlayer_with_astro_svelte.md +7 -0
  308. package/docs/it/intlayer_with_astro_vanilla.md +7 -0
  309. package/docs/it/intlayer_with_astro_vue.md +7 -0
  310. package/docs/it/intlayer_with_nextjs_14.md +7 -0
  311. package/docs/it/intlayer_with_nextjs_15.md +7 -0
  312. package/docs/it/intlayer_with_nextjs_16.md +7 -0
  313. package/docs/it/intlayer_with_react_router_v7.md +7 -0
  314. package/docs/it/intlayer_with_remix_3.md +70 -109
  315. package/docs/it/intlayer_with_tanstack+solid.md +7 -0
  316. package/docs/it/intlayer_with_tanstack.md +7 -0
  317. package/docs/it/intlayer_with_vite+preact.md +7 -0
  318. package/docs/it/intlayer_with_vite+react.md +7 -0
  319. package/docs/it/intlayer_with_vite+solid.md +7 -0
  320. package/docs/it/packages/astro-intlayer/exports.md +161 -9
  321. package/docs/it/packages/astro-intlayer/intlayer.md +76 -0
  322. package/docs/it/packages/astro-intlayer/onRequest.md +76 -0
  323. package/docs/it/packages/astro-intlayer/useDictionary.md +95 -0
  324. package/docs/it/packages/astro-intlayer/useIntlayer.md +98 -0
  325. package/docs/it/packages/astro-intlayer/useLocale.md +126 -0
  326. package/docs/it/packages/remix-intlayer/Intlayer.md +77 -0
  327. package/docs/it/packages/remix-intlayer/exports.md +176 -0
  328. package/docs/it/packages/remix-intlayer/intlayerMiddleware.md +101 -0
  329. package/docs/it/packages/remix-intlayer/useDictionary.md +94 -0
  330. package/docs/it/packages/remix-intlayer/useIntlayer.md +94 -0
  331. package/docs/it/packages/remix-intlayer/useLocale.md +104 -0
  332. package/docs/it/readme.md +2 -1
  333. package/docs/ja/how_works_intlayer.md +86 -14
  334. package/docs/ja/intlayer_visual_editor.md +7 -0
  335. package/docs/ja/intlayer_with_astro.md +61 -37
  336. package/docs/ja/intlayer_with_astro_preact.md +7 -0
  337. package/docs/ja/intlayer_with_astro_react.md +7 -0
  338. package/docs/ja/intlayer_with_astro_solid.md +7 -0
  339. package/docs/ja/intlayer_with_astro_svelte.md +7 -0
  340. package/docs/ja/intlayer_with_astro_vanilla.md +7 -0
  341. package/docs/ja/intlayer_with_astro_vue.md +7 -0
  342. package/docs/ja/intlayer_with_nextjs_14.md +7 -0
  343. package/docs/ja/intlayer_with_nextjs_15.md +7 -0
  344. package/docs/ja/intlayer_with_nextjs_16.md +7 -0
  345. package/docs/ja/intlayer_with_react_router_v7.md +7 -0
  346. package/docs/ja/intlayer_with_remix_3.md +73 -112
  347. package/docs/ja/intlayer_with_tanstack+solid.md +7 -0
  348. package/docs/ja/intlayer_with_tanstack.md +7 -0
  349. package/docs/ja/intlayer_with_vite+preact.md +7 -0
  350. package/docs/ja/intlayer_with_vite+react.md +7 -0
  351. package/docs/ja/intlayer_with_vite+solid.md +7 -0
  352. package/docs/ja/packages/astro-intlayer/exports.md +163 -11
  353. package/docs/ja/packages/astro-intlayer/intlayer.md +76 -0
  354. package/docs/ja/packages/astro-intlayer/onRequest.md +76 -0
  355. package/docs/ja/packages/astro-intlayer/useDictionary.md +95 -0
  356. package/docs/ja/packages/astro-intlayer/useIntlayer.md +98 -0
  357. package/docs/ja/packages/astro-intlayer/useLocale.md +126 -0
  358. package/docs/ja/packages/remix-intlayer/Intlayer.md +55 -0
  359. package/docs/ja/packages/remix-intlayer/exports.md +80 -0
  360. package/docs/ja/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  361. package/docs/ja/packages/remix-intlayer/useDictionary.md +95 -0
  362. package/docs/ja/packages/remix-intlayer/useIntlayer.md +94 -0
  363. package/docs/ja/packages/remix-intlayer/useLocale.md +104 -0
  364. package/docs/ja/readme.md +2 -1
  365. package/docs/ko/how_works_intlayer.md +86 -14
  366. package/docs/ko/intlayer_visual_editor.md +7 -0
  367. package/docs/ko/intlayer_with_astro.md +61 -37
  368. package/docs/ko/intlayer_with_astro_preact.md +7 -0
  369. package/docs/ko/intlayer_with_astro_react.md +7 -0
  370. package/docs/ko/intlayer_with_astro_solid.md +7 -0
  371. package/docs/ko/intlayer_with_astro_svelte.md +7 -0
  372. package/docs/ko/intlayer_with_astro_vanilla.md +7 -0
  373. package/docs/ko/intlayer_with_astro_vue.md +7 -0
  374. package/docs/ko/intlayer_with_nextjs_14.md +7 -0
  375. package/docs/ko/intlayer_with_nextjs_15.md +7 -0
  376. package/docs/ko/intlayer_with_nextjs_16.md +7 -0
  377. package/docs/ko/intlayer_with_react_router_v7.md +7 -0
  378. package/docs/ko/intlayer_with_remix_3.md +73 -112
  379. package/docs/ko/intlayer_with_tanstack+solid.md +7 -0
  380. package/docs/ko/intlayer_with_tanstack.md +7 -0
  381. package/docs/ko/intlayer_with_vite+preact.md +7 -0
  382. package/docs/ko/intlayer_with_vite+react.md +7 -0
  383. package/docs/ko/intlayer_with_vite+solid.md +7 -0
  384. package/docs/ko/packages/astro-intlayer/exports.md +163 -11
  385. package/docs/ko/packages/astro-intlayer/intlayer.md +76 -0
  386. package/docs/ko/packages/astro-intlayer/onRequest.md +76 -0
  387. package/docs/ko/packages/astro-intlayer/useDictionary.md +95 -0
  388. package/docs/ko/packages/astro-intlayer/useIntlayer.md +98 -0
  389. package/docs/ko/packages/astro-intlayer/useLocale.md +126 -0
  390. package/docs/ko/packages/remix-intlayer/Intlayer.md +55 -0
  391. package/docs/ko/packages/remix-intlayer/exports.md +80 -0
  392. package/docs/ko/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  393. package/docs/ko/packages/remix-intlayer/useDictionary.md +95 -0
  394. package/docs/ko/packages/remix-intlayer/useIntlayer.md +94 -0
  395. package/docs/ko/packages/remix-intlayer/useLocale.md +104 -0
  396. package/docs/ko/readme.md +2 -1
  397. package/docs/pl/how_works_intlayer.md +86 -14
  398. package/docs/pl/intlayer_visual_editor.md +7 -0
  399. package/docs/pl/intlayer_with_astro.md +61 -37
  400. package/docs/pl/intlayer_with_astro_preact.md +7 -0
  401. package/docs/pl/intlayer_with_astro_react.md +7 -0
  402. package/docs/pl/intlayer_with_astro_solid.md +7 -0
  403. package/docs/pl/intlayer_with_astro_svelte.md +7 -0
  404. package/docs/pl/intlayer_with_astro_vanilla.md +7 -0
  405. package/docs/pl/intlayer_with_astro_vue.md +7 -0
  406. package/docs/pl/intlayer_with_nextjs_14.md +7 -0
  407. package/docs/pl/intlayer_with_nextjs_15.md +7 -0
  408. package/docs/pl/intlayer_with_nextjs_16.md +7 -0
  409. package/docs/pl/intlayer_with_react_router_v7.md +7 -0
  410. package/docs/pl/intlayer_with_remix_3.md +101 -148
  411. package/docs/pl/intlayer_with_tanstack+solid.md +7 -0
  412. package/docs/pl/intlayer_with_tanstack.md +7 -0
  413. package/docs/pl/intlayer_with_vite+preact.md +7 -0
  414. package/docs/pl/intlayer_with_vite+react.md +7 -0
  415. package/docs/pl/intlayer_with_vite+solid.md +7 -0
  416. package/docs/pl/packages/astro-intlayer/exports.md +162 -10
  417. package/docs/pl/packages/astro-intlayer/intlayer.md +76 -0
  418. package/docs/pl/packages/astro-intlayer/onRequest.md +76 -0
  419. package/docs/pl/packages/astro-intlayer/useDictionary.md +94 -0
  420. package/docs/pl/packages/astro-intlayer/useIntlayer.md +98 -0
  421. package/docs/pl/packages/astro-intlayer/useLocale.md +126 -0
  422. package/docs/pl/packages/remix-intlayer/Intlayer.md +55 -0
  423. package/docs/pl/packages/remix-intlayer/exports.md +80 -0
  424. package/docs/pl/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  425. package/docs/pl/packages/remix-intlayer/useDictionary.md +95 -0
  426. package/docs/pl/packages/remix-intlayer/useIntlayer.md +94 -0
  427. package/docs/pl/packages/remix-intlayer/useLocale.md +104 -0
  428. package/docs/pl/readme.md +2 -1
  429. package/docs/pt/how_works_intlayer.md +86 -14
  430. package/docs/pt/intlayer_visual_editor.md +7 -0
  431. package/docs/pt/intlayer_with_astro.md +61 -37
  432. package/docs/pt/intlayer_with_astro_preact.md +7 -0
  433. package/docs/pt/intlayer_with_astro_react.md +7 -0
  434. package/docs/pt/intlayer_with_astro_solid.md +7 -0
  435. package/docs/pt/intlayer_with_astro_svelte.md +7 -0
  436. package/docs/pt/intlayer_with_astro_vanilla.md +7 -0
  437. package/docs/pt/intlayer_with_astro_vue.md +7 -0
  438. package/docs/pt/intlayer_with_nextjs_14.md +7 -0
  439. package/docs/pt/intlayer_with_nextjs_15.md +7 -0
  440. package/docs/pt/intlayer_with_nextjs_16.md +7 -0
  441. package/docs/pt/intlayer_with_react_router_v7.md +7 -0
  442. package/docs/pt/intlayer_with_remix_3.md +73 -112
  443. package/docs/pt/intlayer_with_tanstack+solid.md +7 -0
  444. package/docs/pt/intlayer_with_tanstack.md +7 -0
  445. package/docs/pt/intlayer_with_vite+preact.md +7 -0
  446. package/docs/pt/intlayer_with_vite+react.md +7 -0
  447. package/docs/pt/intlayer_with_vite+solid.md +7 -0
  448. package/docs/pt/packages/astro-intlayer/exports.md +162 -10
  449. package/docs/pt/packages/astro-intlayer/intlayer.md +76 -0
  450. package/docs/pt/packages/astro-intlayer/onRequest.md +76 -0
  451. package/docs/pt/packages/astro-intlayer/useDictionary.md +95 -0
  452. package/docs/pt/packages/astro-intlayer/useIntlayer.md +98 -0
  453. package/docs/pt/packages/astro-intlayer/useLocale.md +126 -0
  454. package/docs/pt/packages/remix-intlayer/Intlayer.md +77 -0
  455. package/docs/pt/packages/remix-intlayer/exports.md +176 -0
  456. package/docs/pt/packages/remix-intlayer/intlayerMiddleware.md +101 -0
  457. package/docs/pt/packages/remix-intlayer/useDictionary.md +94 -0
  458. package/docs/pt/packages/remix-intlayer/useIntlayer.md +94 -0
  459. package/docs/pt/packages/remix-intlayer/useLocale.md +104 -0
  460. package/docs/pt/readme.md +2 -1
  461. package/docs/ru/how_works_intlayer.md +86 -14
  462. package/docs/ru/intlayer_visual_editor.md +7 -0
  463. package/docs/ru/intlayer_with_astro.md +61 -37
  464. package/docs/ru/intlayer_with_astro_preact.md +7 -0
  465. package/docs/ru/intlayer_with_astro_react.md +7 -0
  466. package/docs/ru/intlayer_with_astro_solid.md +7 -0
  467. package/docs/ru/intlayer_with_astro_svelte.md +7 -0
  468. package/docs/ru/intlayer_with_astro_vanilla.md +7 -0
  469. package/docs/ru/intlayer_with_astro_vue.md +7 -0
  470. package/docs/ru/intlayer_with_nextjs_14.md +7 -0
  471. package/docs/ru/intlayer_with_nextjs_15.md +7 -0
  472. package/docs/ru/intlayer_with_nextjs_16.md +7 -0
  473. package/docs/ru/intlayer_with_react_router_v7.md +7 -0
  474. package/docs/ru/intlayer_with_remix_3.md +73 -112
  475. package/docs/ru/intlayer_with_tanstack+solid.md +7 -0
  476. package/docs/ru/intlayer_with_tanstack.md +7 -0
  477. package/docs/ru/intlayer_with_vite+preact.md +7 -0
  478. package/docs/ru/intlayer_with_vite+react.md +7 -0
  479. package/docs/ru/intlayer_with_vite+solid.md +7 -0
  480. package/docs/ru/packages/astro-intlayer/exports.md +164 -12
  481. package/docs/ru/packages/astro-intlayer/intlayer.md +76 -0
  482. package/docs/ru/packages/astro-intlayer/onRequest.md +76 -0
  483. package/docs/ru/packages/astro-intlayer/useDictionary.md +95 -0
  484. package/docs/ru/packages/astro-intlayer/useIntlayer.md +98 -0
  485. package/docs/ru/packages/astro-intlayer/useLocale.md +126 -0
  486. package/docs/ru/packages/remix-intlayer/Intlayer.md +55 -0
  487. package/docs/ru/packages/remix-intlayer/exports.md +80 -0
  488. package/docs/ru/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  489. package/docs/ru/packages/remix-intlayer/useDictionary.md +95 -0
  490. package/docs/ru/packages/remix-intlayer/useIntlayer.md +94 -0
  491. package/docs/ru/packages/remix-intlayer/useLocale.md +104 -0
  492. package/docs/ru/readme.md +2 -1
  493. package/docs/tr/how_works_intlayer.md +86 -14
  494. package/docs/tr/intlayer_visual_editor.md +7 -0
  495. package/docs/tr/intlayer_with_astro.md +60 -36
  496. package/docs/tr/intlayer_with_astro_preact.md +7 -0
  497. package/docs/tr/intlayer_with_astro_react.md +7 -0
  498. package/docs/tr/intlayer_with_astro_solid.md +7 -0
  499. package/docs/tr/intlayer_with_astro_svelte.md +7 -0
  500. package/docs/tr/intlayer_with_astro_vanilla.md +7 -0
  501. package/docs/tr/intlayer_with_astro_vue.md +7 -0
  502. package/docs/tr/intlayer_with_nextjs_14.md +7 -0
  503. package/docs/tr/intlayer_with_nextjs_15.md +7 -0
  504. package/docs/tr/intlayer_with_nextjs_16.md +7 -0
  505. package/docs/tr/intlayer_with_react_router_v7.md +7 -0
  506. package/docs/tr/intlayer_with_remix_3.md +101 -148
  507. package/docs/tr/intlayer_with_tanstack+solid.md +7 -0
  508. package/docs/tr/intlayer_with_tanstack.md +7 -0
  509. package/docs/tr/intlayer_with_vite+preact.md +7 -0
  510. package/docs/tr/intlayer_with_vite+react.md +7 -0
  511. package/docs/tr/intlayer_with_vite+solid.md +7 -0
  512. package/docs/tr/packages/astro-intlayer/exports.md +165 -13
  513. package/docs/tr/packages/astro-intlayer/intlayer.md +76 -0
  514. package/docs/tr/packages/astro-intlayer/onRequest.md +76 -0
  515. package/docs/tr/packages/astro-intlayer/useDictionary.md +95 -0
  516. package/docs/tr/packages/astro-intlayer/useIntlayer.md +98 -0
  517. package/docs/tr/packages/astro-intlayer/useLocale.md +126 -0
  518. package/docs/tr/packages/remix-intlayer/Intlayer.md +55 -0
  519. package/docs/tr/packages/remix-intlayer/exports.md +80 -0
  520. package/docs/tr/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  521. package/docs/tr/packages/remix-intlayer/useDictionary.md +95 -0
  522. package/docs/tr/packages/remix-intlayer/useIntlayer.md +94 -0
  523. package/docs/tr/packages/remix-intlayer/useLocale.md +104 -0
  524. package/docs/tr/readme.md +2 -1
  525. package/docs/uk/how_works_intlayer.md +86 -14
  526. package/docs/uk/intlayer_visual_editor.md +7 -0
  527. package/docs/uk/intlayer_with_astro.md +61 -37
  528. package/docs/uk/intlayer_with_astro_preact.md +7 -0
  529. package/docs/uk/intlayer_with_astro_react.md +7 -0
  530. package/docs/uk/intlayer_with_astro_solid.md +7 -0
  531. package/docs/uk/intlayer_with_astro_svelte.md +7 -0
  532. package/docs/uk/intlayer_with_astro_vanilla.md +7 -0
  533. package/docs/uk/intlayer_with_astro_vue.md +7 -0
  534. package/docs/uk/intlayer_with_nextjs_14.md +7 -0
  535. package/docs/uk/intlayer_with_nextjs_15.md +7 -0
  536. package/docs/uk/intlayer_with_nextjs_16.md +7 -0
  537. package/docs/uk/intlayer_with_react_router_v7.md +7 -0
  538. package/docs/uk/intlayer_with_remix_3.md +101 -148
  539. package/docs/uk/intlayer_with_tanstack+solid.md +7 -0
  540. package/docs/uk/intlayer_with_tanstack.md +7 -0
  541. package/docs/uk/intlayer_with_vite+preact.md +7 -0
  542. package/docs/uk/intlayer_with_vite+react.md +7 -0
  543. package/docs/uk/intlayer_with_vite+solid.md +7 -0
  544. package/docs/uk/packages/astro-intlayer/exports.md +162 -10
  545. package/docs/uk/packages/astro-intlayer/intlayer.md +76 -0
  546. package/docs/uk/packages/astro-intlayer/onRequest.md +76 -0
  547. package/docs/uk/packages/astro-intlayer/useDictionary.md +94 -0
  548. package/docs/uk/packages/astro-intlayer/useIntlayer.md +98 -0
  549. package/docs/uk/packages/astro-intlayer/useLocale.md +126 -0
  550. package/docs/uk/packages/remix-intlayer/Intlayer.md +55 -0
  551. package/docs/uk/packages/remix-intlayer/exports.md +80 -0
  552. package/docs/uk/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  553. package/docs/uk/packages/remix-intlayer/useDictionary.md +95 -0
  554. package/docs/uk/packages/remix-intlayer/useIntlayer.md +94 -0
  555. package/docs/uk/packages/remix-intlayer/useLocale.md +104 -0
  556. package/docs/uk/readme.md +2 -1
  557. package/docs/vi/how_works_intlayer.md +86 -14
  558. package/docs/vi/intlayer_visual_editor.md +7 -0
  559. package/docs/vi/intlayer_with_astro.md +60 -36
  560. package/docs/vi/intlayer_with_astro_preact.md +7 -0
  561. package/docs/vi/intlayer_with_astro_react.md +7 -0
  562. package/docs/vi/intlayer_with_astro_solid.md +7 -0
  563. package/docs/vi/intlayer_with_astro_svelte.md +7 -0
  564. package/docs/vi/intlayer_with_astro_vanilla.md +7 -0
  565. package/docs/vi/intlayer_with_astro_vue.md +7 -0
  566. package/docs/vi/intlayer_with_nextjs_14.md +7 -0
  567. package/docs/vi/intlayer_with_nextjs_15.md +7 -0
  568. package/docs/vi/intlayer_with_nextjs_16.md +7 -0
  569. package/docs/vi/intlayer_with_react_router_v7.md +7 -0
  570. package/docs/vi/intlayer_with_remix_3.md +101 -148
  571. package/docs/vi/intlayer_with_tanstack+solid.md +7 -0
  572. package/docs/vi/intlayer_with_tanstack.md +7 -0
  573. package/docs/vi/intlayer_with_vite+preact.md +7 -0
  574. package/docs/vi/intlayer_with_vite+react.md +7 -0
  575. package/docs/vi/intlayer_with_vite+solid.md +7 -0
  576. package/docs/vi/packages/astro-intlayer/exports.md +167 -15
  577. package/docs/vi/packages/astro-intlayer/intlayer.md +76 -0
  578. package/docs/vi/packages/astro-intlayer/onRequest.md +76 -0
  579. package/docs/vi/packages/astro-intlayer/useDictionary.md +94 -0
  580. package/docs/vi/packages/astro-intlayer/useIntlayer.md +98 -0
  581. package/docs/vi/packages/astro-intlayer/useLocale.md +126 -0
  582. package/docs/vi/packages/remix-intlayer/Intlayer.md +55 -0
  583. package/docs/vi/packages/remix-intlayer/exports.md +80 -0
  584. package/docs/vi/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  585. package/docs/vi/packages/remix-intlayer/useDictionary.md +95 -0
  586. package/docs/vi/packages/remix-intlayer/useIntlayer.md +94 -0
  587. package/docs/vi/packages/remix-intlayer/useLocale.md +104 -0
  588. package/docs/vi/readme.md +2 -1
  589. package/docs/zh/how_works_intlayer.md +86 -14
  590. package/docs/zh/intlayer_visual_editor.md +7 -0
  591. package/docs/zh/intlayer_with_astro.md +61 -37
  592. package/docs/zh/intlayer_with_astro_preact.md +7 -0
  593. package/docs/zh/intlayer_with_astro_react.md +7 -0
  594. package/docs/zh/intlayer_with_astro_solid.md +7 -0
  595. package/docs/zh/intlayer_with_astro_svelte.md +7 -0
  596. package/docs/zh/intlayer_with_astro_vanilla.md +7 -0
  597. package/docs/zh/intlayer_with_astro_vue.md +7 -0
  598. package/docs/zh/intlayer_with_nextjs_14.md +7 -0
  599. package/docs/zh/intlayer_with_nextjs_15.md +7 -0
  600. package/docs/zh/intlayer_with_nextjs_16.md +7 -0
  601. package/docs/zh/intlayer_with_react_router_v7.md +7 -0
  602. package/docs/zh/intlayer_with_remix_3.md +74 -112
  603. package/docs/zh/intlayer_with_tanstack+solid.md +7 -0
  604. package/docs/zh/intlayer_with_tanstack.md +7 -0
  605. package/docs/zh/intlayer_with_vite+preact.md +7 -0
  606. package/docs/zh/intlayer_with_vite+react.md +7 -0
  607. package/docs/zh/intlayer_with_vite+solid.md +7 -0
  608. package/docs/zh/packages/astro-intlayer/exports.md +166 -14
  609. package/docs/zh/packages/astro-intlayer/intlayer.md +76 -0
  610. package/docs/zh/packages/astro-intlayer/onRequest.md +76 -0
  611. package/docs/zh/packages/astro-intlayer/useDictionary.md +95 -0
  612. package/docs/zh/packages/astro-intlayer/useIntlayer.md +98 -0
  613. package/docs/zh/packages/astro-intlayer/useLocale.md +126 -0
  614. package/docs/zh/packages/remix-intlayer/Intlayer.md +55 -0
  615. package/docs/zh/packages/remix-intlayer/exports.md +80 -0
  616. package/docs/zh/packages/remix-intlayer/intlayerMiddleware.md +55 -0
  617. package/docs/zh/packages/remix-intlayer/useDictionary.md +95 -0
  618. package/docs/zh/packages/remix-intlayer/useIntlayer.md +94 -0
  619. package/docs/zh/packages/remix-intlayer/useLocale.md +104 -0
  620. package/docs/zh/readme.md +2 -1
  621. package/package.json +6 -6
  622. package/src/generated/docs.entry.ts +223 -0
@@ -0,0 +1,95 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: useDictionary フックのドキュメント | remix-intlayer
5
+ description: Remix 3 アプリケーションで useDictionary フックを使用して、現在のリクエストロケールに対応する辞書オブジェクトを解決する方法を説明します。
6
+ keywords:
7
+ - useDictionary
8
+ - dictionary
9
+ - remix
10
+ - remix-3
11
+ - Intlayer
12
+ - intlayer
13
+ - 国際化
14
+ - ドキュメント
15
+ slugs:
16
+ - doc
17
+ - packages
18
+ - remix-intlayer
19
+ - useDictionary
20
+ history:
21
+ - version: 9.5.5
22
+ date: 2026-09-19
23
+ changes: "useDictionary フックの初期ドキュメント"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # useDictionary フックのドキュメント
28
+
29
+ `useDictionary` フックは、インポートされた、またはインラインの辞書オブジェクトを変換し、Remix 3 アプリケーションで現在のリクエストロケールに対応するコンテンツを返します。
30
+
31
+ グローバル辞書レジストリから文字列キーによって辞書を解決する `useIntlayer` とは異なり、`useDictionary` は辞書オブジェクトを直接受け入れます。
32
+
33
+ ## 使用方法
34
+
35
+ ```ts fileName="src/views/home.ts"
36
+ import { useDictionary } from "remix-intlayer";
37
+ import homeContent from "./home.content";
38
+
39
+ export const HomeView = () => {
40
+ const content = useDictionary(homeContent);
41
+
42
+ return `
43
+ <div>
44
+ <h1>${content.title}</h1>
45
+ <p>${content.subtitle}</p>
46
+ </div>
47
+ `;
48
+ };
49
+ ```
50
+
51
+ `t()` を使用して定義されたインライン辞書を渡すこともできます。
52
+
53
+ ```ts
54
+ import { useDictionary } from "remix-intlayer";
55
+ import { t } from "intlayer";
56
+
57
+ export const FooterView = () => {
58
+ const content = useDictionary({
59
+ key: "footer",
60
+ content: {
61
+ copyright: t({
62
+ ja: "無断転載を禁じます。",
63
+ en: "All rights reserved.",
64
+ fr: "Tous droits réservés.",
65
+ es: "Todos los derechos reservados.",
66
+ }),
67
+ },
68
+ });
69
+
70
+ return `<footer>${content.copyright}</footer>`;
71
+ };
72
+ ```
73
+
74
+ ## パラメーター
75
+
76
+ ```ts
77
+ useDictionary(dictionary, localeOrSelector?)
78
+ ```
79
+
80
+ 1. **`dictionary`**: 辞書オブジェクト、または修飾された辞書グループ。
81
+ 2. **`localeOrSelector`**(オプション): 特定のロケールまたはセレクターオブジェクト(`{ item }`、`{ variant }`、必要に応じて `locale`)。指定された場合、リクエストロケールよりも優先されます。
82
+
83
+ ## 説明
84
+
85
+ このフックは以下の処理を実行します。
86
+
87
+ 1. **ロケール検出**: `intlayer()` ミドルウェアによって作成された `AsyncLocalStorage` ストアからアクティブなリクエストロケールを読み取ります。
88
+ 2. **コンテンツ解決**: 解決されたロケールに従って、翻訳(`t()`)、列挙、条件、およびネストされた構造を評価します。
89
+ 3. **セレクター処理**: 引数で指定されたアイテムまたはバリアントセレクターを適用します。
90
+
91
+ ## 関連ドキュメント
92
+
93
+ - [`intlayer` ミドルウェア](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/intlayerMiddleware.md)
94
+ - [`useIntlayer` フック](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/useIntlayer.md)
95
+ - [`useLocale` フック](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/useLocale.md)
@@ -0,0 +1,94 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: useIntlayer フックのドキュメント | remix-intlayer
5
+ description: Remix 3 アプリケーションで useIntlayer フックを使用して、キーによってローカライズされたコンテンツにアクセスする方法を説明します。
6
+ keywords:
7
+ - useIntlayer
8
+ - dictionary
9
+ - remix
10
+ - remix-3
11
+ - Intlayer
12
+ - intlayer
13
+ - 国際化
14
+ - ドキュメント
15
+ slugs:
16
+ - doc
17
+ - packages
18
+ - remix-intlayer
19
+ - useIntlayer
20
+ history:
21
+ - version: 9.5.5
22
+ date: 2026-09-19
23
+ changes: "useIntlayer フックの初期ドキュメント"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # useIntlayer フックのドキュメント
28
+
29
+ `useIntlayer` フックを使用すると、Remix 3 アプリケーションでキーを指定して Intlayer 辞書からローカライズされたコンテンツを取得できます。
30
+
31
+ 現在のリクエストコンテキスト(`AsyncLocalStorage` 経由)からアクティブなロケールを自動的に読み取るため、ルートハンドラー、ビューテンプレート、またはコンポーネント間でロケールを受け渡す必要はありません。
32
+
33
+ ## 使用方法
34
+
35
+ ### ルートハンドラー内での使用
36
+
37
+ ```ts fileName="src/server.ts"
38
+ import { createRouter } from "remix/router";
39
+ import { intlayer, useIntlayer } from "remix-intlayer";
40
+
41
+ const router = createRouter({
42
+ middleware: [intlayer()],
43
+ });
44
+
45
+ router.get("/api/welcome", () => {
46
+ const content = useIntlayer("home");
47
+
48
+ return Response.json({
49
+ title: content.title,
50
+ subtitle: content.subtitle,
51
+ });
52
+ });
53
+ ```
54
+
55
+ ### ビューテンプレートおよびコンポーネント内での使用
56
+
57
+ ```tsx fileName="src/views/home.ts"
58
+ import { useIntlayer } from "remix-intlayer";
59
+
60
+ export const HomeView = () => {
61
+ const content = useIntlayer("home");
62
+
63
+ return `
64
+ <main>
65
+ <h1>${content.title}</h1>
66
+ <p>${content.subtitle}</p>
67
+ </main>
68
+ `;
69
+ };
70
+ ```
71
+
72
+ ## パラメーター
73
+
74
+ ```ts
75
+ useIntlayer(key, localeOrSelector?)
76
+ ```
77
+
78
+ 1. **`key`**: 辞書の一意のキー(`.content.ts` 宣言ファイルで定義されたもの)。
79
+ 2. **`localeOrSelector`**(オプション): 特定のロケールまたはセレクターオブジェクト(`{ item }`、`{ variant }`、必要に応じて `locale`)。指定された場合、リクエストコンテキストから検出されたロケールを上書きします。
80
+
81
+ ## 説明
82
+
83
+ このフックは以下の処理を実行します。
84
+
85
+ 1. **コンテキストロケールの取得**: `intlayer()` ミドルウェアによって設定されたリクエストスコープの `AsyncLocalStorage` から現在のロケールを検出します。
86
+ 2. **辞書の取得**: 指定されたキーに対応する事前コンパイル済み辞書を取得します。
87
+ 3. **翻訳処理**: 解決されたロケールに基づいて、翻訳、列挙、マークダウン、および条件付きコンテンツを解決します。
88
+ 4. **フォールバック処理**: アクティブな HTTP リクエストコンテキスト外(ミドルウェアのないバックグラウンドタスクや単体テストなど)で呼び出された場合、設定された `defaultLocale` に安全にフォールバックします。
89
+
90
+ ## 関連ドキュメント
91
+
92
+ - [`intlayer` ミドルウェア](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/intlayerMiddleware.md)
93
+ - [`useDictionary` フック](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/useDictionary.md)
94
+ - [`useLocale` フック](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/useLocale.md)
@@ -0,0 +1,104 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: useLocale フックのドキュメント | remix-intlayer
5
+ description: Remix 3 アプリケーションで useLocale フックを使用して、現在のリクエストロケール、デフォルトロケール、および利用可能なロケールを取得する方法を説明します。
6
+ keywords:
7
+ - useLocale
8
+ - locale
9
+ - remix
10
+ - remix-3
11
+ - Intlayer
12
+ - intlayer
13
+ - 国際化
14
+ - ドキュメント
15
+ slugs:
16
+ - doc
17
+ - packages
18
+ - remix-intlayer
19
+ - useLocale
20
+ history:
21
+ - version: 9.5.5
22
+ date: 2026-09-19
23
+ changes: "useLocale フックの初期ドキュメント"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # useLocale フックのドキュメント
28
+
29
+ `remix-intlayer` の `useLocale` フックは、現在処理中の HTTP リクエストのロケールと、プロジェクトで設定されたデフォルトロケールおよび利用可能なロケールへのアクセスを提供します。
30
+
31
+ ## 使用方法
32
+
33
+ Remixコンポーネント内(例:言語スイッチャー):
34
+
35
+ ```tsx fileName="src/components/LocaleSwitcher.tsx"
36
+ import { type FC } from "react";
37
+ import { Link } from "@remix-run/react";
38
+ import { useLocale } from "remix-intlayer";
39
+ import { getLocalizedUrl, getPathWithoutLocale } from "intlayer";
40
+
41
+ export const LocaleSwitcher: FC = () => {
42
+ const { locale, availableLocales } = useLocale();
43
+ const pathWithoutLocale = getPathWithoutLocale();
44
+
45
+ return (
46
+ <nav>
47
+ <ul>
48
+ {availableLocales.map((localeItem) => (
49
+ <li key={localeItem} className="p-1">
50
+ <Link
51
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
52
+ aria-current={localeItem === locale ? "page" : undefined}
53
+ >
54
+ {localeItem.toUpperCase()}
55
+ </Link>
56
+ </li>
57
+ ))}
58
+ </ul>
59
+ </nav>
60
+ );
61
+ };
62
+ ```
63
+
64
+ ルートハンドラー内での使用:
65
+
66
+ ```ts fileName="src/server.ts"
67
+ import { createRouter } from "remix/router";
68
+ import { intlayer, useLocale } from "remix-intlayer";
69
+
70
+ const router = createRouter({
71
+ middleware: [intlayer()],
72
+ });
73
+
74
+ router.get("/api/locale-info", () => {
75
+ const { locale, defaultLocale, availableLocales } = useLocale();
76
+
77
+ return Response.json({
78
+ locale,
79
+ defaultLocale,
80
+ availableLocales,
81
+ });
82
+ });
83
+ ```
84
+
85
+ ## 戻り値
86
+
87
+ このフックは `UseLocaleResult` 型のオブジェクトを返します。
88
+
89
+ | プロパティ | タイプ | 説明 |
90
+ | ------------------ | ------------------- | --------------------------------------------------------------------- |
91
+ | `locale` | `DeclaredLocales` | 現在のリクエストに対して解決されたロケール。 |
92
+ | `defaultLocale` | `DeclaredLocales` | `intlayer.config.ts` で設定されたデフォルトのフォールバックロケール。 |
93
+ | `availableLocales` | `DeclaredLocales[]` | `intlayer.config.ts` で設定されたすべての利用可能なロケールの配列。 |
94
+
95
+ ## 説明
96
+
97
+ 1. **リクエストスコープの解決**: `intlayer()` ミドルウェアによって処理されるアクティブなリクエスト内で、`useLocale` はリクエストストレージから解決されたロケールを読み取ります。
98
+ 2. **安全なフォールバック**: 初期化スクリプトやテストスイートなど、リクエストコンテキスト外で呼び出された場合、設定された `defaultLocale` にフォールバックします。
99
+
100
+ ## 関連ドキュメント
101
+
102
+ - [`intlayer` ミドルウェア](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/intlayerMiddleware.md)
103
+ - [`useIntlayer` フック](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/useIntlayer.md)
104
+ - [`useDictionary` フック](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/remix-intlayer/useDictionary.md)
package/docs/ja/readme.md CHANGED
@@ -199,7 +199,8 @@ Intlayer の包括的なドキュメントを探索し、Intlayer の使い始
199
199
  <li><a href="https://intlayer.org/doc/environment/create-react-app" rel=''>React CRA</a></li>
200
200
  <li><a href="https://intlayer.org/doc/environment/vite-and-react" rel=''>Vite + React</a></li>
201
201
  <li><a href="https://intlayer.org/doc/environment/vite-and-react" rel=''>コンパイラを使用した Vite + React</a></li>
202
- <li><a href="https://intlayer.org/doc/environment/vite-and-react/compiler" rel=''>React-router-v7</a></li>
202
+ <li><a href="https://intlayer.org/doc/environment/vite-and-react/react-router-v7" rel=''>React-router-v7</a></li>
203
+ <li><a href="https://intlayer.org/doc/environment/remix-3" rel=''>Remix 3</a></li>
203
204
  <li><a href="https://intlayer.org/doc/environment/tanstack-start" rel=''>Tanstack start</a>
204
205
  <ul>
205
206
  <li><a href="https://intlayer.org/doc/environment/tanstack-start/solid" rel=''>Solid</a></li>
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-12
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-19
4
4
  title: Intlayer 작동 방식
5
5
  description: Intlayer가 내부적으로 어떻게 작동하는지 알아보세요. Intlayer를 강력하게 만드는 아키텍처와 구성 요소를 이해하십시오.
6
6
  keywords:
@@ -135,49 +135,105 @@ Intlayer는 번역 프로세스에서 특정 역할을 하는 여러 패키지
135
135
 
136
136
  `intlayer` 패키지는 애플리케이션에서 콘텐츠 파일 내의 콘텐츠를 선언하는 데 사용됩니다.
137
137
 
138
- ### react-intlayer
138
+ ### 프론트엔드 프레임워크
139
+
140
+ <Tabs group="framework">
141
+ <Tab label="React" value="react">
139
142
 
140
143
  `react-intlayer` 패키지는 Intlayer 사전을 해석하여 React 애플리케이션에서 사용할 수 있도록 합니다.
141
144
 
142
- ### next-intlayer
145
+ </Tab>
146
+ <Tab label="Next.js" value="nextjs">
143
147
 
144
148
  `next-intlayer` 패키지는 `react-intlayer` 위에 레이어로 작동하여 Intlayer 사전을 Next.js 애플리케이션에서 사용할 수 있도록 합니다. 번역 미들웨어, 라우팅, 또는 `next.config.js` 파일 구성과 같은 Next.js 환경에서 Intlayer가 작동하도록 필수 기능을 통합합니다.
145
149
 
146
- ### vue-intlayer
150
+ </Tab>
151
+ <Tab label="Vue" value="vue">
147
152
 
148
153
  `vue-intlayer` 패키지는 Intlayer 사전을 해석하여 Vue 애플리케이션에서 사용할 수 있도록 합니다.
149
154
 
150
- ### nuxt-intlayer
155
+ </Tab>
156
+ <Tab label="Nuxt" value="nuxt">
151
157
 
152
158
  `nuxt-intlayer` 패키지는 Nuxt 모듈로서 Intlayer 사전을 Nuxt 애플리케이션에서 사용할 수 있도록 합니다. 이 패키지는 번역 미들웨어, 라우팅, `nuxt.config.js` 파일 구성 등 Nuxt 환경에서 Intlayer가 작동하는 데 필요한 필수 기능을 통합합니다.
153
159
 
154
- ### svelte-intlayer (작업 중)
160
+ </Tab>
161
+ <Tab label="Svelte" value="svelte">
155
162
 
156
163
  `svelte-intlayer` 패키지는 Intlayer 사전을 해석하여 Svelte 애플리케이션에서 사용할 수 있도록 합니다.
157
164
 
158
- ### solid-intlayer (작업 중)
165
+ </Tab>
166
+ <Tab label="Solid" value="solid">
159
167
 
160
168
  `solid-intlayer` 패키지는 Intlayer 사전을 해석하여 Solid.js 애플리케이션에서 사용할 수 있도록 합니다.
161
169
 
162
- ### preact-intlayer
170
+ </Tab>
171
+ <Tab label="Preact" value="preact">
163
172
 
164
173
  `preact-intlayer` 패키지는 Intlayer 사전을 해석하여 Preact 애플리케이션에서 사용할 수 있도록 합니다.
165
174
 
166
- ### angular-intlayer (작업 중)
175
+ </Tab>
176
+ <Tab label="Angular" value="angular">
167
177
 
168
178
  `angular-intlayer` 패키지는 Intlayer 사전을 해석하여 Angular 애플리케이션에서 사용할 수 있도록 합니다.
169
179
 
170
- ### express-intlayer
180
+ </Tab>
181
+ <Tab label="Astro" value="astro">
171
182
 
172
- `express-intlayer` 패키지는 Express.js 백엔드에서 Intlayer를 사용할 수 있도록 합니다.
183
+ `astro-intlayer` 패키지는 Intlayer를 Astro 애플리케이션에 통합하기 위한 필수 도구를 제공합니다. 로케일 기반 라우팅 및 사전 관리(딕셔너리 관리를) 구성합니다.
184
+
185
+ </Tab>
186
+ <Tab label="Remix" value="remix">
187
+
188
+ `remix-intlayer` 패키지는 Intlayer를 Remix 애플리케이션에 통합하기 위한 필수 도구를 제공합니다. 로케일 기반 라우팅, 서버 측 컨텍스트 및 사전 관리를 구성합니다.
173
189
 
174
- ### react-native-intlayer
190
+ </Tab>
191
+ <Tab label="React Native" value="react-native">
175
192
 
176
193
  `react-native-intlayer` 패키지는 Metro 번들러와 함께 작동하도록 Intlayer 플러그인을 통합하는 도구를 제공합니다.
177
194
 
178
- ### lynx-intlayer
195
+ </Tab>
196
+ <Tab label="Lit" value="lit">
197
+
198
+ `lit-intlayer` 패키지는 Lit 애플리케이션에서 Intlayer 사전을 해석하고 사용하기 위한 도구와 컴포넌트를 제공합니다.
199
+
200
+ </Tab>
201
+ <Tab label="Vanilla JS" value="vanilla">
202
+
203
+ `vanilla-intlayer` 패키지는 Intlayer를 바닐라 JavaScript, HTML 또는 PHP 애플리케이션에 통합하기 위한 도구를 제공합니다.
204
+
205
+ </Tab>
206
+ </Tabs>
207
+
208
+ ### 백엔드 프레임워크
209
+
210
+ <Tabs group="backend">
211
+ <Tab label="Express" value="express">
212
+
213
+ `express-intlayer` 패키지는 Express.js 백엔드에서 Intlayer를 사용할 수 있도록 합니다.
214
+
215
+ </Tab>
216
+ <Tab label="Fastify" value="fastify">
217
+
218
+ `fastify-intlayer` 패키지는 Fastify 애플리케이션에서 국제화를 처리하기 위한 플러그인을 제공합니다. 사용자 로케일을 감지하고 요청(request) 객체에 데코레이터를 추가합니다.
179
219
 
180
- `lynx-intlayer` 패키지는 Lynx 번들러와 함께 작동하도록 Intlayer 플러그인을 통합하는 도구를 제공합니다.
220
+ </Tab>
221
+ <Tab label="Hono" value="hono">
222
+
223
+ `hono-intlayer` 패키지는 국제화를 처리하기 위한 Hono 애플리케이션용 미들웨어를 제공합니다. 사용자의 로케일을 감지하고 컨텍스트 객체를 채웁니다.
224
+
225
+ </Tab>
226
+ <Tab label="Elysia" value="elysia">
227
+
228
+ `elysia-intlayer` 패키지는 Elysia 애플리케이션에서 국제화를 처리하기 위한 플러그인을 제공합니다. 사용자 로케일을 감지하고 라우트 컨텍스트에 `intlayer` 객체를 주입합니다.
229
+
230
+ </Tab>
231
+ <Tab label="AdonisJS" value="adonis">
232
+
233
+ `adonis-intlayer` 패키지는 AdonisJS 애플리케이션이 국제화를 처리할 수 있도록 미들웨어를 제공합니다. 사용자의 로케일을 감지하고 번역 기능을 제공합니다.
234
+
235
+ </Tab>
236
+ </Tabs>
181
237
 
182
238
  ### vite-intlayer
183
239
 
@@ -187,6 +243,10 @@ Intlayer는 번역 프로세스에서 특정 역할을 하는 여러 패키지
187
243
 
188
244
  `react-scripts-intlayer` 명령어와 플러그인을 포함하며, Create React App 기반 애플리케이션과 Intlayer를 통합하는 데 사용됩니다. 이 플러그인들은 [craco](https://craco.js.org/)를 기반으로 하며, [Webpack](https://webpack.js.org/) 번들러에 대한 추가 구성을 포함합니다.
189
245
 
246
+ ### eslint-plugin-intlayer
247
+
248
+ `eslint-plugin-intlayer` 패키지는 번역되지 않은 문자열을 감지하고 사전 정의를 검증하며 i18n 모범 사례를 적용하기 위한 ESLint 및 oxlint 규칙을 제공합니다.
249
+
190
250
  ### intlayer-editor
191
251
 
192
252
  `intlayer-editor` 패키지는 시각적 편집기를 사용할 수 있도록 하는 데 사용됩니다. 이 패키지는 선택 사항으로, 애플리케이션에 설치할 수 있으며 `react-intlayer` 패키지에서 사용됩니다.
@@ -220,6 +280,18 @@ Express를 기반으로 한 서버는 시각적 편집기 요청을 수신하고
220
280
 
221
281
  `@intlayer/mcp` 패키지는 Intlayer 생태계에 맞춘 AI 기반 IDE 지원을 제공하는 MCP(Model Context Protocol) 서버를 제공합니다. 이 서버는 문서를 자동으로 로드하며 Intlayer CLI와 통합됩니다.
222
282
 
283
+ ### @intlayer/lsp
284
+
285
+ `@intlayer/lsp` 패키지는 Intlayer에 맞춘 Language Server Protocol (LSP) 서버를 제공합니다. 정의로 이동, 모든 참조 찾기, 호버 미리보기, 사전 키 자동 완성 및 진단 경고와 같은 IDE 기능을 지원합니다.
286
+
287
+ ### @intlayer/ai
288
+
289
+ `@intlayer/ai` 패키지는 Intlayer 애플리케이션을 위한 SDK 기능을 제공하여 자동 번역 및 AI 기반 콘텐츠 생성을 지원합니다.
290
+
291
+ ### @intlayer/analytics
292
+
293
+ `@intlayer/analytics` 패키지는 콘텐츠 노출 지표, 페이지/로케일 및 노드 수준 분석을 수집하고 콘텐츠 A/B 테스트를 지원하는 도구를 제공합니다.
294
+
223
295
  ### @intlayer/dictionaries-entry
224
296
 
225
297
  `@intlayer/dictionaries-entry` 패키지는 Intlayer 사전의 진입 경로를 반환합니다. 루트의 병합된 사전과 `/unmerged`, `/remote`, `/dynamic`, `/fetch` 하위 경로의 미병합, 원격, 동적 및 fetch 사전입니다. 브라우저에서 파일 시스템을 검색하는 것이 불가능하기 때문에, Webpack이나 Rollup과 같은 번들러를 사용하여 사전의 진입 경로를 가져오는 것은 불가능합니다. 이 패키지와 해당 하위 경로는 별칭(alias)으로 설계되어 Vite, Webpack, Turbopack 등 다양한 번들러에서 번들링 최적화를 가능하게 합니다.
@@ -278,6 +278,13 @@ pnpm intlayer-editor start -e development
278
278
 
279
279
  비주얼 에디터는 편집 후 재빌드가 허용되는 개발 및 스테이징 환경용으로 설계되었습니다. 배포 없이 실시간 사이트의 콘텐츠를 편집하려면 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)와 원격 사전을 사용하는 것이 좋습니다.
280
280
 
281
+ </Question>
282
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
283
+
284
+ Intlayer 비주얼 에디터는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
285
+
286
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
287
+
281
288
  </Question>
282
289
  <Question title="비주얼 에디터는 무료인가요?">
283
290
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-03-07
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-19
4
4
  title: "Astro i18n - 앱을 번역하는 완전 가이드"
5
5
  description: "i18next는 이제 그만. 2026년 다국어 (i18n) Astro 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO, 성능을 최적화하세요."
6
6
  keywords:
@@ -18,6 +18,9 @@ slugs:
18
18
  applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
19
19
  applicationShowcase: https://intlayer-astro-template.vercel.app
20
20
  history:
21
+ - version: 9.5.5
22
+ date: 2026-09-19
23
+ changes: "astro-intlayer에 useIntlayer / useLocale 훅 및 Astro.locals 미들웨어 추가"
21
24
  - version: 8.9.0
22
25
  date: 2026-05-04
23
26
  changes: "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
@@ -152,7 +155,7 @@ bun add intlayer astro-intlayer
152
155
  설정 관리, 번역, [콘텐츠 선언](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)를 위한 국제화 도구를 제공하는 핵심 패키지입니다.
153
156
 
154
157
  - **astro-intlayer**
155
- Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인과 사용자의 선호 로케일을 감지하고 쿠키를 관리하며 URL 리디렉션을 처리하는 미들웨어가 포함되어 있습니다.
158
+ Intlayer를 [Vite 번들러](https://vite.dev/guide/why.html#why-bundle-for-production)와 통합하기 위한 Astro 통합 플러그인, 모든 요청의 로케일을 `Astro.locals.intlayer`로 확인하는 미들웨어, `useIntlayer` / `useDictionary` / `useLocale` 훅이 포함되어 있습니다. 동일한 import 경로가 `.astro` 프론트매터에서는 서버 구현체로, `<script>` 블록에서는 클라이언트 구현체(`vanilla-intlayer` 기반)로 확인됩니다.
156
159
 
157
160
  </Step>
158
161
  <Step number={2} title="프로젝트 설정">
@@ -229,26 +232,28 @@ export default appContent;
229
232
  </Step>
230
233
  <Step number={5} title="Astro에서 콘텐츠 사용">
231
234
 
232
- `intlayer`에서 내보낸 핵심 헬퍼를 사용하여 `.astro` 파일에서 직접 사전을 소비할 수 있습니다.
235
+ `astro-intlayer`에서 내보낸 훅을 사용하여 `.astro` 파일에서 사전을 사용하세요. 이 훅들은 `react-intlayer`와 동일한 시그니처를 공유합니다. `useIntlayer("key")`는 사전의 내용을 반환하고 `useLocale()`은 인수를 전달할 필요 없이 현재 로케일을 반환합니다.
236
+
237
+ 로케일은 통합 플러그인이 자체 `src/middleware.ts`보다 먼저 등록하는 `astro-intlayer` 미들웨어에서 제공됩니다. URL 접두사, 클라이언트가 저장한 로케일(쿠키 또는 헤더), `Accept-Language` 순으로 모든 요청에 대해 로케일을 확인하고 이를 `Astro.locals.intlayer`에 저장합니다. 사전 렌더링된 페이지는 방문자마다 한 번만 렌더링되므로 URL만 사용합니다.
238
+
239
+ 또한 각 페이지에 hreflang 및 정식(canonical) 링크와 같은 SEO 메타데이터를 추가하고 사용자가 언어를 변경할 수 있도록 언어 전환기를 포함해야 합니다.
233
240
 
234
241
  ```astro fileName="src/pages/index.astro"
235
242
  ---
243
+ import { useIntlayer, useLocale } from "astro-intlayer";
236
244
  import {
237
- getIntlayer,
238
- getLocaleFromPath,
239
245
  getLocalizedUrl,
240
246
  defaultLocale,
241
247
  localeMap,
242
248
  getHTMLTextDir,
243
- type LocalesValues,
244
249
  } from "intlayer";
245
250
  import LocaleSwitcher from "../components/LocaleSwitcher.astro";
246
251
 
247
- // Get the current locale from the URL (e.g. /es/about -> 'es')
248
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
252
+ // 미들웨어에 의해 확인된 로케일 (예: /ko/about -> 'ko')
253
+ const { locale } = useLocale();
249
254
 
250
- // Get the content for the 'app' dictionary
251
- const { title } = getIntlayer("app", locale);
255
+ // 해당 로케일의 'app' 사전 내용
256
+ const { title } = useIntlayer("app");
252
257
  ---
253
258
 
254
259
  <!doctype html>
@@ -300,6 +305,8 @@ const { title } = getIntlayer("app", locale);
300
305
  </html>
301
306
  ```
302
307
 
308
+ > `Astro.locals.intlayer`는 자체 미들웨어 및 엔드포인트에 `locale`, `defaultLocale`, `availableLocales`도 노출합니다. 단일 호출에 대해 요청 로케일을 재정의하려면 로케일이나 선택기를 두 번째 인수로 전달하세요(`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`).
309
+
303
310
  </Step>
304
311
  <Step number={6} title="로컬라이즈된 라우팅">
305
312
 
@@ -325,44 +332,51 @@ Astro 통합은 개발 중에 언어 인식 라우팅 및 환경 정의를 돕
325
332
 
326
333
  ```astro fileName="src/components/LocaleSwitcher.astro"
327
334
  ---
328
- import {
329
- locales,
330
- getLocaleName,
331
- getLocalizedUrl,
332
- getLocaleFromPath,
333
- getPathWithoutLocale,
334
- type LocalesValues,
335
- } from "intlayer";
335
+ import { useLocale } from "astro-intlayer";
336
+ import { getLocaleName, getLocalizedUrl, getPathWithoutLocale } from "intlayer";
336
337
 
337
- const locale = getLocaleFromPath(Astro.url.pathname) as LocalesValues;
338
+ const { locale, availableLocales } = useLocale();
338
339
  const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
339
340
  ---
340
341
 
341
- <nav>
342
- {
343
- locales.map((localeItem) => (
344
- <a
345
- href={getLocalizedUrl(pathWithoutLocale, localeItem)}
346
- data-locale={localeItem}
347
- aria-current={localeItem === locale ? "page" : undefined}
348
- >
349
- {getLocaleName(localeItem)}
350
- </a>
351
- ))
352
- }
342
+ <nav aria-label="Languages">
343
+ <ul>
344
+ {
345
+ availableLocales.map((localeItem) => (
346
+ <li key={localeItem} class="p-1">
347
+ <a
348
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
349
+ data-locale={localeItem}
350
+ aria-current={localeItem === locale ? "page" : undefined}
351
+ >
352
+ {getLocaleName(localeItem)}
353
+ </a>
354
+ </li>
355
+ ))
356
+ }
357
+ </ul>
353
358
  </nav>
354
359
 
355
360
  <script>
356
- import { setLocaleInStorageClient, getLocalizedUrl, type LocalesValues } from "intlayer";
361
+ // 브라우저에서는 동일한 import가 클라이언트 구현체로 확인됩니다
362
+ import { useLocale } from "astro-intlayer";
363
+ import { getLocalizedUrl, type LocalesValues } from "intlayer";
364
+
365
+ // 로케일 쿠키에 선택 사항을 저장한 다음 현지화된 URL로 이동합니다
366
+ const { setLocale } = useLocale({
367
+ onLocaleChange: (newLocale) => {
368
+ window.location.href = getLocalizedUrl(window.location.pathname, newLocale);
369
+ },
370
+ });
357
371
 
358
372
  const localeLinks = document.querySelectorAll("[data-locale]");
359
373
 
360
374
  localeLinks.forEach((link) => {
361
- link.addEventListener("click", (e) => {
375
+ link.addEventListener("click", (event) => {
362
376
  const locale = link.getAttribute("data-locale") as LocalesValues;
363
377
 
364
- // Update the locale cookie
365
- setLocaleInStorageClient(locale);
378
+ event.preventDefault();
379
+ setLocale(locale);
366
380
  });
367
381
  });
368
382
  </script>
@@ -372,6 +386,13 @@ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
372
386
  display: flex;
373
387
  gap: 1rem;
374
388
  }
389
+ ul {
390
+ display: flex;
391
+ list-style: none;
392
+ padding: 0;
393
+ margin: 0;
394
+ gap: 0.5rem;
395
+ }
375
396
  a[aria-current="page"] {
376
397
  font-weight: bold;
377
398
  text-decoration: underline;
@@ -379,8 +400,11 @@ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
379
400
  </style>
380
401
  ```
381
402
 
382
- > **지속성에 대한 참고 사항:**
383
- > 클라이언트 측 스크립트에서 `setLocaleInStorageClient`를 사용하면 사용자의 언어 선호도가 쿠키에 저장됩니다. 이를 통해 Intlayer 미들웨어는 선택을 기억하고 향후 방문 시 사용자가 선호하는 언어로 자동으로 리다이렉트할 수 있습니다.
403
+ > **영속성에 대한 참고 사항:**
404
+ > 클라이언트 측 `useLocale`의 `setLocale`은 사용자의 언어 설정을 쿠키에 저장합니다. 이를 통해 Intlayer 미들웨어는 선택 항목을 기억하고 향후 방문 시 사용자를 선호하는 언어로 자동 리디렉션할 수 있습니다.
405
+ >
406
+ > **서버 / 클라이언트 상호 호환성:**
407
+ > `astro-intlayer`는 프론트매터에서는 서버 훅(`Astro.locals` 읽기)으로 확인되고, `<script>` 블록과 아일랜드에서는 `vanilla-intlayer`의 클라이언트 훅으로 확인되며 동일한 이름과 데이터 구조를 가집니다. `setLocale`과 `onChange`는 클라이언트에서만 동작하므로, 클라이언트 스토어를 초기화하려면 클라이언트에서 `installIntlayer()`를 한 번 호출하세요. `astro-intlayer/client`는 클라이언트 엔트리를 명시적으로 노출합니다.
384
408
 
385
409
  </Step>
386
410
  <Step number={8} title="Sitemap 및 Robots.txt">