@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,126 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: Tài liệu Hook useLocale | astro-intlayer
5
+ description: Xem cách sử dụng hook useLocale trong các ứng dụng Astro để truy cập và quản lý ngôn ngữ hiện tại.
6
+ keywords:
7
+ - useLocale
8
+ - locale
9
+ - astro
10
+ - astro-intlayer
11
+ - Intlayer
12
+ - intlayer
13
+ - Quốc tế hóa
14
+ - Tài liệu
15
+ slugs:
16
+ - doc
17
+ - packages
18
+ - astro-intlayer
19
+ - useLocale
20
+ history:
21
+ - version: 9.5.5
22
+ date: 2026-09-19
23
+ changes: "Khởi tạo tài liệu"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # Tài liệu Hook useLocale
28
+
29
+ Hook `useLocale` từ `astro-intlayer` cung cấp quyền truy cập vào ngôn ngữ yêu cầu hiện tại, ngôn ngữ mặc định được định cấu hình và tất cả các ngôn ngữ khả dụng trong các ứng dụng Astro.
30
+
31
+ Nó hoạt động nhất quán trên frontmatter `.astro` được render trên máy chủ và các khối script `<script>` phía client.
32
+
33
+ ## Cách sử dụng
34
+
35
+ ### Trong Frontmatter Thành phần (Render trên máy chủ)
36
+
37
+ ```astro fileName="src/layouts/Layout.astro"
38
+ ---
39
+ import { useLocale } from "astro-intlayer";
40
+ import { getLocalizedUrl, getPathWithoutLocale } from "intlayer";
41
+
42
+ const { locale, defaultLocale, availableLocales } = useLocale();
43
+ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
44
+ ---
45
+
46
+ <!DOCTYPE html>
47
+ <html lang={locale}>
48
+ <head>
49
+ <meta charset="utf-8" />
50
+ <title>Astro + Intlayer</title>
51
+ </head>
52
+ <body>
53
+ <header>
54
+ <span>Hiện tại: {locale}</span>
55
+ <span>Mặc định: {defaultLocale}</span>
56
+ <nav>
57
+ <ul>
58
+ {availableLocales.map((localeItem) => (
59
+ <li key={localeItem} className="p-1">
60
+ <a
61
+ href={getLocalizedUrl(pathWithoutLocale, localeItem)}
62
+ aria-current={localeItem === locale ? "page" : undefined}
63
+ >
64
+ {localeItem.toUpperCase()}
65
+ </a>
66
+ </li>
67
+ ))}
68
+ </ul>
69
+ </nav>
70
+ </header>
71
+ <slot />
72
+ </body>
73
+ </html>
74
+ ```
75
+
76
+ ### Trong `<script>` Client (Tương tác)
77
+
78
+ ```astro fileName="src/components/LocaleSwitcher.astro"
79
+ ---
80
+ import { useLocale } from "astro-intlayer";
81
+
82
+ const { locale, availableLocales } = useLocale();
83
+ ---
84
+
85
+ <select id="locale-select">
86
+ {availableLocales.map((loc) => (
87
+ <option value={loc} selected={loc === locale}>
88
+ {loc.toUpperCase()}
89
+ </option>
90
+ ))}
91
+ </select>
92
+
93
+ <script>
94
+ import { useLocale, setLocaleInStorage } from "astro-intlayer";
95
+
96
+ const { setLocale } = useLocale();
97
+
98
+ document.getElementById("locale-select")?.addEventListener("change", (e) => {
99
+ const target = e.target as HTMLSelectElement;
100
+ setLocale(target.value);
101
+ });
102
+ </script>
103
+ ```
104
+
105
+ ## Giá trị trả về
106
+
107
+ Hook trả về một đối tượng thuộc kiểu `UseLocaleResult`:
108
+
109
+ | Thuộc tính | Kiểu | Mô tả |
110
+ | ------------------ | -------------------------------------- | ----------------------------------------------------------------------------------------- |
111
+ | `locale` | `DeclaredLocales` | Ngôn ngữ đang hoạt động. |
112
+ | `defaultLocale` | `DeclaredLocales` | Ngôn ngữ dự phòng mặc định được cấu hình trong `intlayer.config.ts`. |
113
+ | `availableLocales` | `DeclaredLocales[]` | Mảng tất cả các ngôn ngữ được hỗ trợ đã cấu hình cho dự án. |
114
+ | `setLocale` | `(locale: LocalesValues) => void` | Hàm cập nhật ngôn ngữ. (Tương tác trong `<script>` client, cảnh báo trong quá trình SSR). |
115
+ | `subscribe` | `(callback: () => void) => () => void` | Đăng ký theo dõi các thay đổi ngôn ngữ phía client. |
116
+
117
+ ## Hành vi Máy chủ và Client
118
+
119
+ - **Trong quá trình SSR / Render Máy chủ**: Một yêu cầu được render một lần với các tham số cố định. Việc gọi `setLocale()` trong quá trình render trên máy chủ không có tác dụng và đưa ra cảnh báo; việc chuyển đổi ngôn ngữ nên được thực hiện ở client hoặc bằng cách điều hướng đến URL ngôn ngữ đích.
120
+ - **Trong Script Client**: `setLocale` cập nhật store phía client và cập nhật cookie hoặc local storage đã lưu theo cấu hình Intlayer của bạn.
121
+
122
+ ## Tài liệu liên quan
123
+
124
+ - [Tích hợp `intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/astro-intlayer/intlayer.md)
125
+ - [Hook `useIntlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/astro-intlayer/useIntlayer.md)
126
+ - [Hook `useDictionary`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/astro-intlayer/useDictionary.md)
@@ -0,0 +1,55 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: Tài liệu Context Intlayer | remix-intlayer
5
+ description: Tài liệu về khóa lưu trữ context yêu cầu Intlayer trong các ứng dụng Remix 3.
6
+ keywords:
7
+ - Intlayer
8
+ - remix
9
+ - remix-3
10
+ - context yêu cầu
11
+ - quốc tế hóa
12
+ - i18n
13
+ slugs:
14
+ - doc
15
+ - packages
16
+ - remix-intlayer
17
+ - Intlayer
18
+ history:
19
+ - version: 9.5.5
20
+ date: 2026-09-19
21
+ changes: "Khởi tạo tài liệu khóa context Intlayer"
22
+ author: aymericzip
23
+ ---
24
+
25
+ # Khóa Context yêu cầu Intlayer
26
+
27
+ Export `Intlayer` đóng vai trò là mã định danh lưu trữ context yêu cầu trong Remix 3. Nó cho phép truy xuất trạng thái Intlayer trực tiếp từ đối tượng context của Remix bên trong các route handler hoặc middleware tùy chỉnh.
28
+
29
+ ## Cách sử dụng
30
+
31
+ ```ts fileName="src/server.ts"
32
+ import { createRouter } from "remix/router";
33
+ import { intlayer, Intlayer } from "remix-intlayer";
34
+
35
+ const router = createRouter({
36
+ middleware: [intlayer()],
37
+ });
38
+
39
+ router.get("/api/current-locale", (context) => {
40
+ const intlayerState = context.get(Intlayer);
41
+
42
+ return Response.json({
43
+ locale: intlayerState?.locale,
44
+ });
45
+ });
46
+ ```
47
+
48
+ ## Mô tả
49
+
50
+ `Intlayer` được middleware `intlayer()` sử dụng để liên kết trạng thái phiên hiện tại với context yêu cầu của Remix (`RequestContext`). Thông thường, việc sử dụng các hook như `useLocale()` hoặc `useIntlayer()` được ưu tiên hơn. Truy cập trực tiếp qua `context.get(Intlayer)` hữu ích trong các trình xử lý middleware cấp thấp hoặc các tuyến API nơi cá thể context được truyền tường minh.
51
+
52
+ ## Tài liệu liên quan
53
+
54
+ - [Middleware `intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/intlayerMiddleware.md)
55
+ - [Hook `useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useLocale.md)
@@ -0,0 +1,80 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: Tài liệu gói remix-intlayer
5
+ description: Tài liệu về các exports của gói remix-intlayer, cung cấp quốc tế hóa (i18n) cho các ứng dụng Remix 3.
6
+ keywords:
7
+ - remix-intlayer
8
+ - remix
9
+ - remix-3
10
+ - intlayer
11
+ - quốc tế hóa
12
+ - i18n
13
+ slugs:
14
+ - doc
15
+ - packages
16
+ - remix-intlayer
17
+ - exports
18
+ history:
19
+ - version: 9.5.5
20
+ date: 2026-09-19
21
+ changes: "Khởi tạo tài liệu exports cho remix-intlayer"
22
+ author: aymericzip
23
+ ---
24
+
25
+ # Gói remix-intlayer
26
+
27
+ Gói `remix-intlayer` cung cấp các công cụ cần thiết để tích hợp Intlayer vào các ứng dụng Remix 3. Gói bao gồm middleware để phát hiện locale của yêu cầu, quyền truy cập vào context của yêu cầu, và các hook để lấy từ điển và quản lý locale.
28
+
29
+ ## Cài đặt
30
+
31
+ ```bash
32
+ npm install remix-intlayer
33
+ ```
34
+
35
+ ## Các Exports của gói
36
+
37
+ ### Middleware
38
+
39
+ | Export | Loại | Mô tả | Tài liệu liên quan |
40
+ | ---------- | -------------- | ----------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
41
+ | `intlayer` | Hàm Middleware | Middleware cho Remix 3 giúp phát hiện locale của yêu cầu, quản lý chuyển hướng và điền vào context yêu cầu. | [Middleware intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/intlayerMiddleware.md) |
42
+
43
+ ### Lưu trữ Context
44
+
45
+ | Export | Loại | Mô tả | Tài liệu liên quan |
46
+ | ---------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- |
47
+ | `Intlayer` | Khóa RequestContext / Lưu trữ | Khóa context yêu cầu được sử dụng để lấy trạng thái Intlayer từ context yêu cầu Remix 3 (`context.get(Intlayer)`). | [Context Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/Intlayer.md) |
48
+
49
+ ### Hooks
50
+
51
+ | Export | Loại | Mô tả | Tài liệu liên quan |
52
+ | --------------- | ---- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
53
+ | `useIntlayer` | Hook | Lấy và xử lý nội dung từ điển theo khóa cho locale hiện tại của yêu cầu. | [Hook useIntlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useIntlayer.md) |
54
+ | `useDictionary` | Hook | Trả về nội dung của đối tượng từ điển đã import tương ứng với locale hiện tại của yêu cầu. | [Hook useDictionary](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useDictionary.md) |
55
+ | `useLocale` | Hook | Cung cấp quyền truy cập vào locale yêu cầu hiện tại, locale mặc định và danh sách locale có sẵn. | [Hook useLocale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useLocale.md) |
56
+
57
+ ## Bắt đầu nhanh
58
+
59
+ ### Cấu hình Router với Middleware
60
+
61
+ ```ts fileName="src/server.ts"
62
+ import { createRouter } from "remix/router";
63
+ import { intlayer } from "remix-intlayer";
64
+
65
+ export const router = createRouter({
66
+ middleware: [intlayer()],
67
+ });
68
+ ```
69
+
70
+ ### Sử dụng nội dung trong View và Component
71
+
72
+ ```ts fileName="src/views/home.ts"
73
+ import { useIntlayer } from "remix-intlayer";
74
+
75
+ export const HomeView = () => {
76
+ const content = useIntlayer("home");
77
+
78
+ return `<h1>${content.title}</h1><p>${content.description}</p>`;
79
+ };
80
+ ```
@@ -0,0 +1,55 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: Tài liệu Middleware intlayer | remix-intlayer
5
+ description: Tìm hiểu cách sử dụng middleware intlayer trong Remix 3 để phát hiện locale, xử lý chuyển hướng và đưa trạng thái Intlayer vào context yêu cầu.
6
+ keywords:
7
+ - intlayer
8
+ - middleware
9
+ - remix
10
+ - remix-3
11
+ - quốc tế hóa
12
+ - i18n
13
+ slugs:
14
+ - doc
15
+ - packages
16
+ - remix-intlayer
17
+ - intlayerMiddleware
18
+ history:
19
+ - version: 9.5.5
20
+ date: 2026-09-19
21
+ changes: "Khởi tạo tài liệu middleware intlayer"
22
+ author: aymericzip
23
+ ---
24
+
25
+ # Middleware intlayer
26
+
27
+ Hàm middleware `intlayer` cấu hình quốc tế hóa trên từng yêu cầu trong các ứng dụng Remix 3. Nó phát hiện locale của từng yêu cầu đến, áp dụng quy tắc chuyển hướng URL và lưu trữ trạng thái locale trong context yêu cầu.
28
+
29
+ ## Cách sử dụng
30
+
31
+ Đăng ký middleware trong router Remix của bạn:
32
+
33
+ ```ts fileName="src/server.ts"
34
+ import { createRouter } from "remix/router";
35
+ import { intlayer } from "remix-intlayer";
36
+
37
+ export const router = createRouter({
38
+ middleware: [intlayer()],
39
+ });
40
+ ```
41
+
42
+ ## Cách thức hoạt động
43
+
44
+ Middleware thực hiện các tác vụ sau cho mỗi yêu cầu đến:
45
+
46
+ 1. **Phát hiện Locale**: Trích xuất locale từ tiền tố đường dẫn URL (ví dụ `/vi/about`), cookie hoặc tiêu đề `Accept-Language` theo cấu hình Intlayer của bạn.
47
+ 2. **Chuyển hướng URL**: Nếu đường dẫn được yêu cầu thiếu tiền tố locale và cấu hình yêu cầu định tuyến có tiền tố, middleware sẽ trả về phản hồi chuyển hướng (302/307/308) đến URL có tiền tố thích hợp.
48
+ 3. **Điền vào Context yêu cầu**: Lưu locale đã được phân giải hiện tại vào context yêu cầu Remix bằng khóa `Intlayer`, cho phép các hook (`useLocale`, `useIntlayer`, `useDictionary`) sử dụng một cách minh bạch.
49
+ 4. **Quản lý Cookie**: Thiết lập tiêu đề `Set-Cookie` khi cần lưu lại locale ưu tiên của người dùng.
50
+
51
+ ## Tài liệu liên quan
52
+
53
+ - [Context yêu cầu `Intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/Intlayer.md)
54
+ - [Hook `useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useLocale.md)
55
+ - [Hook `useIntlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useIntlayer.md)
@@ -0,0 +1,95 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: Tài liệu Hook useDictionary | remix-intlayer
5
+ description: Xem cách sử dụng hook useDictionary trong các ứng dụng Remix 3 để giải quyết các đối tượng từ điển cho locale hiện tại của yêu cầu.
6
+ keywords:
7
+ - useDictionary
8
+ - dictionary
9
+ - remix
10
+ - remix-3
11
+ - Intlayer
12
+ - intlayer
13
+ - quốc tế hóa
14
+ - tài liệu
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: "Khởi tạo tài liệu hook useDictionary"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # Tài liệu Hook useDictionary
28
+
29
+ Hook `useDictionary` chuyển đổi một đối tượng từ điển được import hoặc nội tuyến và trả về nội dung của nó đã được phân giải cho locale hiện tại của yêu cầu trong các ứng dụng Remix 3.
30
+
31
+ Khác với `useIntlayer` tìm kiếm từ điển theo khóa chuỗi từ sổ đăng ký từ điển toàn cục, `useDictionary` chấp nhận trực tiếp một đối tượng từ điển.
32
+
33
+ ## Cách sử dụng
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
+ Bạn cũng có thể truyền các từ điển nội tuyến được định nghĩa bằng `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
+ vi: "Đã đăng ký bản quyền.",
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
+ ## Tham số
75
+
76
+ ```ts
77
+ useDictionary(dictionary, localeOrSelector?)
78
+ ```
79
+
80
+ 1. **`dictionary`**: Một đối tượng từ điển hoặc nhóm từ điển đủ điều kiện.
81
+ 2. **`localeOrSelector`** (tùy chọn): Một locale hoặc đối tượng bộ chọn cụ thể (`{ item }`, `{ variant }`, có thể kèm `locale`). Có quyền ưu tiên cao hơn locale của yêu cầu nếu được cung cấp.
82
+
83
+ ## Mô tả
84
+
85
+ Hook thực hiện các nhiệm vụ sau:
86
+
87
+ 1. **Phát hiện Locale**: Đọc locale yêu cầu đang hoạt động từ bộ lưu trữ `AsyncLocalStorage` do middleware `intlayer()` tạo ra.
88
+ 2. **Phân giải Nội dung**: Đánh giá các bản dịch (`t()`), phép liệt kê, điều kiện và các cấu trúc lồng nhau theo locale đã giải quyết.
89
+ 3. **Xử lý Bộ chọn**: Áp dụng bất kỳ bộ chọn mục hoặc biến thể nào được chỉ định trong đối số.
90
+
91
+ ## Tài liệu liên quan
92
+
93
+ - [Middleware `intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/intlayerMiddleware.md)
94
+ - [Hook `useIntlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useIntlayer.md)
95
+ - [Hook `useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useLocale.md)
@@ -0,0 +1,94 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: Tài liệu Hook useIntlayer | remix-intlayer
5
+ description: Xem cách sử dụng hook useIntlayer trong các ứng dụng Remix 3 để truy cập nội dung được bản địa hóa theo khóa.
6
+ keywords:
7
+ - useIntlayer
8
+ - dictionary
9
+ - remix
10
+ - remix-3
11
+ - Intlayer
12
+ - intlayer
13
+ - quốc tế hóa
14
+ - tài liệu
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: "Khởi tạo tài liệu hook useIntlayer"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # Tài liệu Hook useIntlayer
28
+
29
+ Hook `useIntlayer` cho phép bạn truy xuất nội dung được bản địa hóa từ từ điển Intlayer theo khóa trong các ứng dụng Remix 3.
30
+
31
+ Nó tự động đọc locale đang hoạt động từ context yêu cầu hiện tại (thông qua `AsyncLocalStorage`), do đó bạn không cần phải truyền locale qua các route handler, template view hoặc component.
32
+
33
+ ## Cách sử dụng
34
+
35
+ ### Trong Route Handler
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
+ ### Trong Template View và Component
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
+ ## Tham số
73
+
74
+ ```ts
75
+ useIntlayer(key, localeOrSelector?)
76
+ ```
77
+
78
+ 1. **`key`**: Khóa duy nhất của từ điển (như được định nghĩa trong các tệp khai báo `.content.ts` của bạn).
79
+ 2. **`localeOrSelector`** (tùy chọn): Một locale hoặc đối tượng bộ chọn cụ thể (`{ item }`, `{ variant }`, có thể kèm `locale`). Khi được cung cấp, nó sẽ ghi đè locale được phát hiện từ context yêu cầu.
80
+
81
+ ## Mô tả
82
+
83
+ Hook thực hiện các nhiệm vụ sau:
84
+
85
+ 1. **Truy xuất Locale từ Context**: Phát hiện locale hiện tại từ phạm vi `AsyncLocalStorage` gắn liền với yêu cầu do middleware `intlayer()` thiết lập.
86
+ 2. **Truy xuất Từ điển**: Lấy từ điển được biên dịch trước tương ứng với khóa được cung cấp.
87
+ 3. **Xử lý Dịch thuật**: Giải quyết các bản dịch, liệt kê, markdown và nội dung có điều kiện cho locale đã được phân giải.
88
+ 4. **Xử lý Fallback**: Nếu được gọi bên ngoài context yêu cầu HTTP đang hoạt động (ví dụ: các tác vụ nền hoặc kiểm thử đơn vị không có middleware), nó sẽ quay về `defaultLocale` đã được định cấu hình một cách an toàn.
89
+
90
+ ## Tài liệu liên quan
91
+
92
+ - [Middleware `intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/intlayerMiddleware.md)
93
+ - [Hook `useDictionary`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useDictionary.md)
94
+ - [Hook `useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useLocale.md)
@@ -0,0 +1,104 @@
1
+ ---
2
+ createdAt: 2026-09-19
3
+ updatedAt: 2026-09-19
4
+ title: Tài liệu Hook useLocale | remix-intlayer
5
+ description: Xem cách sử dụng hook useLocale trong các ứng dụng Remix 3 để lấy locale của yêu cầu hiện tại, locale mặc định và danh sách các locale có sẵn.
6
+ keywords:
7
+ - useLocale
8
+ - locale
9
+ - remix
10
+ - remix-3
11
+ - Intlayer
12
+ - intlayer
13
+ - quốc tế hóa
14
+ - tài liệu
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: "Khởi tạo tài liệu hook useLocale"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # Tài liệu Hook useLocale
28
+
29
+ Hook `useLocale` từ `remix-intlayer` cung cấp quyền truy cập vào locale của yêu cầu HTTP hiện đang được xử lý, cùng với locale mặc định và các locale có sẵn được định cấu hình trong dự án.
30
+
31
+ ## Cách sử dụng
32
+
33
+ Trong một thành phần Remix (ví dụ bộ chuyển đổi ngôn ngữ):
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
+ Trong một route handler:
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
+ ## Giá trị trả về
86
+
87
+ Hook trả về một đối tượng thuộc loại `UseLocaleResult`:
88
+
89
+ | Thuộc tính | Loại | Mô tả |
90
+ | ------------------ | ------------------- | -------------------------------------------------------------------------------- |
91
+ | `locale` | `DeclaredLocales` | Locale đã được giải quyết cho yêu cầu hiện tại. |
92
+ | `defaultLocale` | `DeclaredLocales` | Locale dự phòng mặc định được định cấu hình trong `intlayer.config.ts`. |
93
+ | `availableLocales` | `DeclaredLocales[]` | Mảng gồm tất cả các locale có sẵn được định cấu hình trong `intlayer.config.ts`. |
94
+
95
+ ## Mô tả
96
+
97
+ 1. **Phân giải theo phạm vi yêu cầu**: Trong một yêu cầu đang hoạt động được xử lý bởi middleware `intlayer()`, `useLocale` đọc locale đã được phân giải từ bộ lưu trữ yêu cầu.
98
+ 2. **Dự phòng an toàn (Fallback)**: Nếu được gọi bên ngoài context yêu cầu (chẳng hạn như trong quá trình khởi tạo script hoặc bộ kiểm thử), nó sẽ mặc định chuyển về `defaultLocale` đã định cấu hình.
99
+
100
+ ## Tài liệu liên quan
101
+
102
+ - [Middleware `intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/intlayerMiddleware.md)
103
+ - [Hook `useIntlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useIntlayer.md)
104
+ - [Hook `useDictionary`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/packages/remix-intlayer/useDictionary.md)
package/docs/vi/readme.md CHANGED
@@ -199,7 +199,8 @@ Khám phá tài liệu toàn diện của chúng tôi để bắt đầu với I
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 sử dụng trình biên dịch</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>