@intlayer/docs 9.5.4 → 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
@@ -736,6 +736,13 @@ Astro 페이지가 이를 prop으로 전달하고 아일랜드의 Intlayer 프
736
736
 
737
737
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
738
738
 
739
+ </Question>
740
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
741
+
742
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
743
+
744
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
745
+
739
746
  </Question>
740
747
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
741
748
 
@@ -729,6 +729,13 @@ Astro 페이지가 이를 prop으로 전달하고 아일랜드의 Intlayer 프
729
729
 
730
730
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
731
731
 
732
+ </Question>
733
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
734
+
735
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
736
+
737
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
738
+
732
739
  </Question>
733
740
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
734
741
 
@@ -729,6 +729,13 @@ Astro 페이지가 이를 prop으로 전달하고 아일랜드의 Intlayer 프
729
729
 
730
730
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
731
731
 
732
+ </Question>
733
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
734
+
735
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
736
+
737
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
738
+
732
739
  </Question>
733
740
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
734
741
 
@@ -733,6 +733,13 @@ Astro 페이지가 이를 prop으로 전달하고 아일랜드의 Intlayer 프
733
733
 
734
734
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
735
735
 
736
+ </Question>
737
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
738
+
739
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
740
+
741
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
742
+
736
743
  </Question>
737
744
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
738
745
 
@@ -703,6 +703,13 @@ UI 프레임워크가 없는 환경에서는 i18n 라이브러리의 런타임
703
703
 
704
704
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
705
705
 
706
+ </Question>
707
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
708
+
709
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
710
+
711
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
712
+
706
713
  </Question>
707
714
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
708
715
 
@@ -731,6 +731,13 @@ Astro 페이지가 이를 prop으로 전달하고 아일랜드의 Intlayer 프
731
731
 
732
732
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
733
733
 
734
+ </Question>
735
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
736
+
737
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
738
+
739
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
740
+
734
741
  </Question>
735
742
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
736
743
 
@@ -1122,6 +1122,13 @@ Next.js 12, 13, 14, 15 및 16을 지원합니다. 본 가이드는 Next.js 14를
1122
1122
 
1123
1123
  자체 호스팅되는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)를 통해 누구나 실행 중인 앱에서 직접 텍스트를 수정할 수 있으며, 배포 없이 콘텐츠를 변경해야 하는 경우에는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 활용할 수 있습니다.
1124
1124
 
1125
+ </Question>
1126
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
1127
+
1128
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
1129
+
1130
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
1131
+
1125
1132
  </Question>
1126
1133
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
1127
1134
 
@@ -1144,6 +1144,13 @@ Next.js 12, 13, 14, 15 및 16을 지원합니다. 본 가이드는 Next.js 15를
1144
1144
 
1145
1145
  자체 호스팅되는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)를 통해 누구나 실행 중인 앱에서 직접 텍스트를 수정할 수 있으며, 배포 없이 콘텐츠를 변경해야 하는 경우에는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 활용할 수 있습니다.
1146
1146
 
1147
+ </Question>
1148
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
1149
+
1150
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
1151
+
1152
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
1153
+
1147
1154
  </Question>
1148
1155
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
1149
1156
 
@@ -1434,6 +1434,13 @@ Next.js의 `generateMetadata` 함수를 Intlayer의 `getMultilingualUrls`와 함
1434
1434
 
1435
1435
  두 가지 옵션이 모두 선택 사항으로 제공됩니다. [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 자체 인프라에서 실행되며 사이트의 텍스트를 직접 클릭하여 수정할 수 있습니다. [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)는 콘텐츠를 외부화하여 배포 없이도 업데이트할 수 있게 하며, [라이브 동기화](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/live.md)를 통해 런타임에 변경 사항을 즉시 반영합니다.
1436
1436
 
1437
+ </Question>
1438
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
1439
+
1440
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
1441
+
1442
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
1443
+
1437
1444
  </Question>
1438
1445
  <Question title="배포 전에 누락된 번역을 어떻게 감지하나요?">
1439
1446
 
@@ -1077,6 +1077,13 @@ React Router v7은 자체 메시지 레이어를 제공하지 않으므로 i18n
1077
1077
 
1078
1078
  자체 호스팅되는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 콘텐츠를 수정할 수 있도록 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
1079
1079
 
1080
+ </Question>
1081
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
1082
+
1083
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
1084
+
1085
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
1086
+
1080
1087
  </Question>
1081
1088
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
1082
1089
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-09-09
3
- updatedAt: 2026-09-11
3
+ updatedAt: 2026-09-19
4
4
  title: "Remix 3 i18n - 앱 다국어 번역 완벽 가이드"
5
5
  description: "더 이상 i18next는 필요 없습니다. 2026년 다국어(i18n) Remix 3 앱 구축 가이드. AI 에이전트로 번역하고 번들 크기, SEO 및 성능을 최적화하세요."
6
6
  keywords:
@@ -19,6 +19,9 @@ slugs:
19
19
  applicationTemplate: https://github.com/aymericzip/intlayer-remix-3-template
20
20
  applicationShowcase: https://intlayer-remix-3-template.vercel.app
21
21
  history:
22
+ - version: 9.5.5
23
+ date: 2026-09-19
24
+ changes: "remix-intlayer 미들웨어 및 훅 사용"
22
25
  - version: 9.5.0
23
26
  date: 2026-09-09
24
27
  changes: "Remix 3 초기 문서"
@@ -39,7 +42,7 @@ author: aymericzip
39
42
  - **`remix/node-fetch-server`**: Bun, Deno 및 엣지 런타임을 기본 지원하는 Node.js용 서버 어댑터.
40
43
  - **`remix/cookie`**: 암호학적으로 안전한 쿠키 파싱 및 직렬화.
41
44
 
42
- **Intlayer**와 결합하면 컴파일 타임 안전성, 자동화된 AI 번역, 서버 렌더링 시 추가 오버헤드 없는 성능, 매끄러운 언어 라우팅을 제공하는 완전한 국제화 시스템을 구축할 수 있습니다.
45
+ **Intlayer**와 **`remix-intlayer`** 패키지(로케일 미들웨어 및 Remix 요청 컨텍스트에 바인딩된 `react-intlayer`와 동일한 `useIntlayer` / `useDictionary` / `useLocale` 훅)를 결합하면 컴파일 타임 안전성, 자동화된 AI 번역, 오버헤드 없는 서버 렌더링 및 원활한 로케일 라우팅을 제공하는 완전한 국제화 시스템을 얻을 수 있습니다.
43
46
 
44
47
  ## 목차
45
48
 
@@ -52,7 +55,7 @@ author: aymericzip
52
55
  <AccordionGroup>
53
56
  <Accordion header="Remix 3 및 웹 표준 완전 지원">
54
57
 
55
- Intlayer는 웹 표준(`Request`, `Response`, `Headers`, `URL`)과 완벽하게 작동하도록 설계되었습니다. 가벼운 미들웨어를 통해 Remix 3의 Fetch 라우터에 쉽게 통합되어 특정 런타임에 종속되지 않고 URL 경로, 쿠키 또는 `Accept-Language` 헤더에서 언어를 추출합니다.
58
+ Intlayer는 웹 표준(`Request`, `Response`, `Headers`, `URL`)과 원활하게 작동하도록 구축되었습니다. `remix-intlayer`는 가벼운 미들웨어로 Remix 3의 Fetch 라우터에 플러그인되어 URL 경로, 쿠키 또는 `Accept-Language` 헤더에서 로케일을 추출하고, 인수를 직접 전달하지 않고도 핸들러, 뷰, `remix/ui` 컴포넌트 등 요청의 나머지 부분에 로케일을 노출합니다.
56
59
 
57
60
  </Accordion>
58
61
  <Accordion header="타입 안전한 콘텐츠 선언">
@@ -109,25 +112,26 @@ GitHub에서 [애플리케이션 템플릿](https://github.com/aymericzip/intlay
109
112
  <Steps>
110
113
  <Step number={1} title="종속성 설치">
111
114
 
112
- 원하는 패키지 관리자를 사용하여 `intlayer` 및 `remix`(버전 3)를 설치합니다.
115
+ 원하는 패키지 관리자를 사용하여 `intlayer`, `remix-intlayer` 및 `remix`(버전 3)를 설치합니다:
113
116
 
114
117
  ```bash packageManager="npm"
115
- npm install intlayer remix@next
118
+ npm install intlayer remix-intlayer remix@next
116
119
  ```
117
120
 
118
121
  ```bash packageManager="pnpm"
119
- pnpm add intlayer remix@next
122
+ pnpm add intlayer remix-intlayer remix@next
120
123
  ```
121
124
 
122
125
  ```bash packageManager="yarn"
123
- yarn add intlayer remix@next
126
+ yarn add intlayer remix-intlayer remix@next
124
127
  ```
125
128
 
126
129
  ```bash packageManager="bun"
127
- bun add intlayer remix@next
130
+ bun add intlayer remix-intlayer remix@next
128
131
  ```
129
132
 
130
133
  - **`intlayer`**: 구성 관리, 사전 선언(`t()`, `Dictionary`), CLI 도구 및 런타임 인터프리터를 제공하는 핵심 국제화 엔진입니다.
134
+ - **`remix-intlayer`**: Remix 3 통합: 각 요청의 로케일을 확인하는 `intlayer()` 라우터 미들웨어와 이후 모든 곳에서 이를 읽는 `useIntlayer`, `useDictionary`, `useLocale` 훅.
131
135
  - **`remix`**: `remix/router`, `remix/routes`, `remix/ui`, `remix/middleware/render`, `remix/node-fetch-server`를 내보내는 통합 Remix 3 프레임워크 패키지입니다.
132
136
 
133
137
  </Step>
@@ -239,65 +243,30 @@ bun x intlayer build
239
243
  이 명령은 콘텐츠를 `.intlayer` 아티팩트 디렉터리로 컴파일하여 완벽한 TypeScript 자동 완성과 빠른 사전 조회를 제공합니다.
240
244
 
241
245
  </Step>
242
- <Step number={5} title="Intlayer 미들웨어 구현">
243
-
244
- Remix 3는 `createRouter({ middleware: [...] })`를 통해 조합 가능한 미들웨어 파이프라인을 제공합니다.
245
-
246
- 다음 우선순위에 따라 들어오는 각 요청의 언어를 확인하는 Intlayer 미들웨어를 생성합니다.
247
-
248
- 1. Intlayer의 `getLocaleFromPath`를 통한 URL 경로 접두사(예: `/ko` 또는 `/fr`).
249
- 2. 저장 쿠키(`INTLAYER_LOCALE`), 사용자 정의 헤더(`x-intlayer-locale`), 표준 `Accept-Language` 헤더 및 설정된 `defaultLocale`을 자동으로 협상하는 Intlayer의 `getLocale` 헬퍼.
250
-
251
- ```typescript fileName="src/middleware/intlayer.ts" codeFormat={["typescript", "esm"]}
252
- import {
253
- defaultLocale,
254
- getCookie,
255
- getLocale,
256
- getLocaleFromPath,
257
- type Locale,
258
- } from "intlayer";
259
- import { createContextKey, type Middleware } from "remix/router";
260
-
261
- /**
262
- * Remix 3 RequestContext에서 확인된 언어를 검색하기 위한 타입 안전한 컨텍스트 키입니다.
263
- */
264
- export const localeKey = createContextKey<Locale>(defaultLocale);
265
-
266
- /**
267
- * Remix 3용 Intlayer 미들웨어입니다.
268
- *
269
- * 다음 우선순위에 따라 요청 언어를 확인합니다:
270
- * 1. `getLocaleFromPath`를 통한 URL 경로 접두사(예: `/ko/...`)
271
- * 2. `getLocale`을 통한 헤더 및 저장소 협상(쿠키, 사용자 정의 헤더, Accept-Language, 기본 defaultLocale 대체)
272
- *
273
- * 확인된 언어를 Remix 3 RequestContext에 연결합니다.
274
- */
275
- export const intlayer = (): Middleware => {
276
- return async (context, next) => {
277
- // 경로 감지 (/ko/about -> "ko", /about -> undefined)
278
- const pathLocale = getLocaleFromPath(context.url.pathname);
279
-
280
- if (pathLocale) {
281
- // 확인된 언어를 Remix 3 요청 컨텍스트에 첨부
282
- context.set(localeKey, pathLocale);
283
-
284
- return next();
285
- }
286
-
287
- const storedLocale = await getLocale({
288
- getHeader: (name) => context.headers.get(name),
289
- getCookie: (name) =>
290
- getCookie(name, context.headers.get("cookie") ?? undefined),
291
- });
292
-
293
- // 확인된 언어를 Remix 3 요청 컨텍스트에 첨부
294
- context.set(localeKey, storedLocale ?? defaultLocale);
295
-
296
- return next();
297
- };
298
- };
246
+ <Step number={5} title="Intlayer 미들웨어 추가">
247
+
248
+ Remix 3은 `createRouter({ middleware: [...] })`를 통해 구성 가능한 미들웨어 파이프라인을 제공합니다.
249
+
250
+ `remix-intlayer`는 `intlayer()` 미들웨어를 제공합니다. 들어오는 각 요청에 대해 다음을 사용하여 로케일을 확인합니다:
251
+
252
+ 1. `no-prefix`를 제외한 모든 라우팅 모드의 URL: 경로 접두사(예: `/ko` 또는 `/en`) 또는 `?locale=` 검색 매개변수.
253
+ 2. 클라이언트에 의해 저장된 로케일: 스토리지 쿠키(`INTLAYER_LOCALE`) 또는 커스텀 헤더(`x-intlayer-locale`).
254
+ 3. 표준 `Accept-Language` 협상(구성된 `defaultLocale`로 대체).
255
+
256
+ 결과는 `locale`, `defaultLocale`, `availableLocales`와 함께 Remix 요청 컨텍스트에 `context.intlayer`(또는 `context.get(Intlayer)`)로 저장됩니다. 그런 다음 미들웨어는 해당 컨텍스트에 바인딩된 `AsyncLocalStorage` 범위 내에서 요청의 나머지 부분을 실행하므로 라우트 핸들러, 뷰, `remix/ui` 컴포넌트 모두에서 인수 없이 로케일을 읽을 수 있습니다:
257
+
258
+ ```typescript
259
+ import { useIntlayer, useLocale } from "remix-intlayer";
260
+
261
+ // 미들웨어 이후 어디에서나
262
+ const { locale, availableLocales } = useLocale();
263
+ const { title } = useIntlayer("home");
299
264
  ```
300
265
 
266
+ `useIntlayer("home", "fr")` 또는 `useIntlayer("faq", { item: 2 })`는 단일 호출에 대해 요청 로케일을 재정의하며, `useDictionary(homeContent)`는 키 대신 가져온 사전을 읽습니다. 요청 외부에서 훅은 기본 로케일로 대체됩니다.
267
+
268
+ > 미들웨어는 서버 시작 시 Intlayer 사전도 준비하므로 `intlayer build`가 누락되어도 레지스트리가 비어 있지 않습니다.
269
+
301
270
  </Step>
302
271
  <Step number={6} title="타입 안전한 라우트 정의">
303
272
 
@@ -327,20 +296,21 @@ routes.localizedHome.href({ locale: "ko" }); // "/ko"
327
296
 
328
297
  Remix 3는 `remix/ui`의 JSX 컴포넌트를 사용하여 UI를 렌더링합니다. 컴포넌트는 `Handle`을 받아 **렌더 함수**를 반환하는 **셋업 함수**입니다. 셋업은 인스턴스당 한 번 실행되고, 렌더는 매 업데이트마다 실행되며, props는 `handle.props`를 통해 읽습니다.
329
298
 
330
- 확인된 언어로부터 `<html lang="..." dir="...">` 속성을 설정하는 공유 `Document` 셸부터 시작합니다.
299
+ 미들웨어에서 확인된 로케일로부터 `<html lang="..." dir="...">` 속성을 설정하는 공유 `Document` 셸로 시작합니다:
331
300
 
332
301
  ```tsx fileName="src/views/document.tsx" codeFormat={["typescript", "esm"]}
333
- import { getHTMLTextDir, type Locale } from "intlayer";
302
+ import { getHTMLTextDir } from "intlayer";
303
+ import { useLocale } from "remix-intlayer";
334
304
  import type { Handle, RemixNode } from "remix/ui";
335
305
 
336
306
  type DocumentProps = {
337
- locale: Locale;
338
307
  title: string;
339
308
  children?: RemixNode;
340
309
  };
341
310
 
342
311
  export const Document = (handle: Handle<DocumentProps>) => () => {
343
- const { locale, title, children } = handle.props;
312
+ const { title, children } = handle.props;
313
+ const { locale } = useLocale();
344
314
 
345
315
  return (
346
316
  <html lang={locale} dir={getHTMLTextDir(locale)}>
@@ -355,47 +325,40 @@ export const Document = (handle: Handle<DocumentProps>) => () => {
355
325
  };
356
326
  ```
357
327
 
358
- 그런 다음 홈페이지를 만듭니다. `getIntlayer`로 지역화된 사전을 추출하고 언어 전환기를 렌더링합니다.
328
+ 그런 다음 홈 페이지를 만듭니다. `useIntlayer`로 현지화된 사전을 읽고 언어 전환기를 렌더링합니다:
359
329
 
360
330
  ```tsx fileName="src/views/home.tsx" codeFormat={["typescript", "esm"]}
361
- import {
362
- getIntlayer,
363
- getLocaleName,
364
- getLocalizedPath,
365
- type Locale,
366
- locales,
367
- } from "intlayer";
368
- import type { Handle } from "remix/ui";
369
- import { routes } from "../routes";
331
+ import { getLocaleName, getLocalizedUrl, getPathWithoutLocale } from "intlayer";
332
+ import { useIntlayer, useLocale } from "remix-intlayer";
370
333
  import { Document } from "./document";
371
334
 
372
- type HomePageProps = {
373
- locale: Locale;
374
- };
375
-
376
- export const HomePage = (handle: Handle<HomePageProps>) => () => {
377
- const { locale } = handle.props;
378
- const home = getIntlayer("home", locale);
335
+ export const HomePage = () => () => {
336
+ const { locale, availableLocales } = useLocale();
337
+ const home = useIntlayer("home");
338
+ const pathWithoutLocale = getPathWithoutLocale();
379
339
 
380
340
  return (
381
- <Document locale={locale} title={home.title}>
341
+ <Document title={home.title}>
382
342
  <header>
383
343
  <nav aria-label="Languages">
384
344
  <span>{home.switchLanguage}</span>
385
- {locales.map((targetLocale) => {
386
- const isActive = targetLocale === locale;
387
-
388
- return (
389
- <a
390
- key={targetLocale}
391
- href={getLocalizedPath(routes.home.href(), targetLocale)}
392
- class={isActive ? "active" : undefined}
393
- aria-current={isActive ? "page" : undefined}
394
- >
395
- {getLocaleName(targetLocale, locale)}
396
- </a>
397
- );
398
- })}
345
+ <ul>
346
+ {availableLocales.map((localeItem) => {
347
+ const isActive = localeItem === locale;
348
+
349
+ return (
350
+ <li key={localeItem} class="p-1">
351
+ <a
352
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
353
+ class={isActive ? "active" : undefined}
354
+ aria-current={isActive ? "page" : undefined}
355
+ >
356
+ {getLocaleName(localeItem, locale)}
357
+ </a>
358
+ </li>
359
+ );
360
+ })}
361
+ </ul>
399
362
  </nav>
400
363
  </header>
401
364
  <main>
@@ -407,7 +370,7 @@ export const HomePage = (handle: Handle<HomePageProps>) => () => {
407
370
  };
408
371
  ```
409
372
 
410
- > Remix JSX는 React가 아닙니다. 훅이 없으며, `class`는 있는 그대로 작성하고(`className`도 허용됨), 재렌더링은 `handle.update()`로 명시적으로 트리거합니다. 보간된 값은 자동으로 이스케이프됩니다.
373
+ > Remix JSX는 React가 아닙니다: `class`는 있는 그대로 작성되며(`className`도 허용됨), 재렌더링은 `handle.update()`를 통해 명시적으로 트리거됩니다. 보간된 값은 자동으로 이스케이프됩니다. Intlayer 훅은 요청 범위를 읽는 일반 함수이므로 setup 함수나 render 함수 모두에서 호출할 수 있습니다.
411
374
 
412
375
  </Step>
413
376
  <Step number={8} title="라우터 및 서버 연결">
@@ -416,39 +379,37 @@ Intlayer 미들웨어 옆에 `remix/middleware/render`의 `render()` 미들웨
416
379
 
417
380
  ```tsx fileName="src/router.tsx" codeFormat={["typescript", "esm"]}
418
381
  import { isDeclaredLocale } from "intlayer";
382
+ import { intlayer } from "remix-intlayer";
419
383
  import { render } from "remix/middleware/render";
420
384
  import { createRouter } from "remix/router";
421
- import { intlayer, localeKey } from "./middleware/intlayer";
422
385
  import { routes } from "./routes";
423
386
  import { HomePage } from "./views/home";
424
387
 
425
- // 1. Intlayer + render 미들웨어로 라우터 초기화
388
+ // 1. Initialize router with Intlayer + render middleware
426
389
  export const router = createRouter({
427
390
  middleware: [intlayer(), render()],
428
391
  });
429
392
 
430
- // 2. 라우트 핸들러 매핑
393
+ // 2. Map route handlers
431
394
  router.map(routes, {
432
395
  actions: {
433
- // 기본 로케일 라우트
396
+ // Default locale route
434
397
  home(context) {
435
- const locale = context.get(localeKey);
436
- return context.render(<HomePage locale={locale} />);
398
+ return context.render(<HomePage />);
437
399
  },
438
400
 
439
- // 현지화된 라우트
401
+ // Localized route
440
402
  localizedHome(context) {
441
403
  if (!isDeclaredLocale(context.params.locale)) {
442
404
  return new Response("Not Found", { status: 404 });
443
405
  }
444
- const locale = context.get(localeKey);
445
- return context.render(<HomePage locale={locale} />);
406
+ return context.render(<HomePage />);
446
407
  },
447
408
  },
448
409
  });
449
410
  ```
450
411
 
451
- > `context.render`는 두 번째 인수로 선택적 `ResponseInit`을 받습니다(예: `context.render(<NotFoundPage locale={locale} />, { status: 404 })`).
412
+ > `context.render`는 두 번째 인수로 선택적 `ResponseInit`을 허용합니다(예: `context.render(<NotFoundPage />, { status: 404 })`). 확인된 로케일은 예를 들어 `Response.json` 페이로드를 생성하기 위해 핸들러에서 `context.intlayer.locale`로 계속 접근할 수 있습니다.
452
413
 
453
414
  마지막으로 표준 `fetch` 핸들러를 통해 라우터를 노출합니다. 동일한 라우터가 Node.js, Bun, Deno 및 Cloudflare Workers에서 실행됩니다.
454
415
 
@@ -1260,6 +1260,13 @@ TanStack Start는 자체 i18n 레이어를 제공하지 않으며, Solid 생태
1260
1260
 
1261
1261
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
1262
1262
 
1263
+ </Question>
1264
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
1265
+
1266
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
1267
+
1268
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
1269
+
1263
1270
  </Question>
1264
1271
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
1265
1272
 
@@ -1328,6 +1328,13 @@ TanStack Start에서 중요한 차이점은 라우팅과 서버 렌더링입니
1328
1328
 
1329
1329
  자체 인프라에서 실행되어 실행 중인 사이트에서 누구나 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
1330
1330
 
1331
+ </Question>
1332
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
1333
+
1334
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
1335
+
1336
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
1337
+
1331
1338
  </Question>
1332
1339
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
1333
1340
 
@@ -1123,6 +1123,13 @@ React에서와 똑같이 컴포넌트에서 `useIntlayer`를 호출하면 됩니
1123
1123
 
1124
1124
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
1125
1125
 
1126
+ </Question>
1127
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
1128
+
1129
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
1130
+
1131
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
1132
+
1126
1133
  </Question>
1127
1134
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
1128
1135
 
@@ -1082,6 +1082,13 @@ Intlayer는 로케일 확인을 처리하고 라우팅은 사용 중인 라우
1082
1082
 
1083
1083
  자체 호스팅되는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)를 통해 누구나 실행 중인 앱에서 직접 텍스트를 수정할 수 있으며, 배포 없이 콘텐츠를 변경해야 하는 경우에는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 활용할 수 있습니다.
1084
1084
 
1085
+ </Question>
1086
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
1087
+
1088
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
1089
+
1090
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
1091
+
1085
1092
  </Question>
1086
1093
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
1087
1094
 
@@ -811,6 +811,13 @@ Vite 특화된 장점은 번역이 런타임에 JSON으로 가져오는 대신
811
811
 
812
812
  자체 인프라에서 실행되어 실행 중인 앱에서 직접 텍스트를 수정할 수 있는 [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md) 또는 배포 없이 변경할 수 있도록 콘텐츠를 외부화하는 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_CMS.md)를 통해 가능합니다.
813
813
 
814
+ </Question>
815
+ <Question title="비주얼 에디터의 비용은 얼마인가요? 필요하지 않은 경우 과도한가요?">
816
+
817
+ Intlayer [비주얼 에디터](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/intlayer_visual_editor.md)는 설정되지 않은 경우 애플리케이션에 **비용이 전혀 들지 않습니다**. 추가 로직은 명시적으로 활성화되고 필요할 때만 로드됩니다.
818
+
819
+ 활성화하더라도 대부분의 로직은 [app.intlayer.org](https://app.intlayer.org)의 서버 에디터나 `intlayer-editor` 패키지를 통해 처리되므로 영향은 극히 미미합니다(활성화 시 동적으로 로드되는 +5 kB에 불과함). 비주얼 편집 없이 간단한 번역 솔루션만 필요한 경우 Intlayer는 앱에 어떠한 오버헤드도 추가하지 않습니다.
820
+
814
821
  </Question>
815
822
  <Question title="Intlayer는 무료이며 오픈 소스인가요?">
816
823