@intlayer/docs 9.1.3 → 9.2.0

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 (415) hide show
  1. package/blog/ar/rag_powered_documentation_assistant.md +7 -0
  2. package/blog/de/rag_powered_documentation_assistant.md +6 -0
  3. package/blog/en-GB/rag_powered_documentation_assistant.md +6 -0
  4. package/blog/es/rag_powered_documentation_assistant.md +7 -0
  5. package/blog/fr/i18n_meaning.md +7 -1
  6. package/blog/fr/list_i18n_technologies/frameworks/angular.md +5 -1
  7. package/blog/fr/rag_powered_documentation_assistant.md +6 -0
  8. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +119 -42
  9. package/blog/hi/rag_powered_documentation_assistant.md +7 -0
  10. package/blog/id/rag_powered_documentation_assistant.md +6 -0
  11. package/blog/it/rag_powered_documentation_assistant.md +6 -0
  12. package/blog/ja/rag_powered_documentation_assistant.md +7 -0
  13. package/blog/ko/list_i18n_technologies/frameworks/react.md +7 -7
  14. package/blog/ko/rag_powered_documentation_assistant.md +6 -0
  15. package/blog/pl/rag_powered_documentation_assistant.md +6 -0
  16. package/blog/pt/rag_powered_documentation_assistant.md +6 -0
  17. package/blog/ru/rag_powered_documentation_assistant.md +7 -0
  18. package/blog/tr/intlayer_with_react-intl.md +3 -1
  19. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +175 -42
  20. package/blog/tr/rag_powered_documentation_assistant.md +6 -0
  21. package/blog/uk/rag_powered_documentation_assistant.md +6 -0
  22. package/blog/vi/rag_powered_documentation_assistant.md +6 -0
  23. package/blog/zh/intlayer_with_i18next.md +87 -28
  24. package/blog/zh/intlayer_with_next-i18next.md +86 -29
  25. package/blog/zh/intlayer_with_next-intl.md +88 -28
  26. package/blog/zh/intlayer_with_react-i18next.md +87 -28
  27. package/blog/zh/intlayer_with_react-intl.md +88 -27
  28. package/blog/zh/intlayer_with_vue-i18n.md +117 -8
  29. package/blog/zh/rag_powered_documentation_assistant.md +6 -0
  30. package/dist/cjs/generated/blog.entry.cjs +27 -27
  31. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  32. package/dist/cjs/generated/docs.entry.cjs +234 -214
  33. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  34. package/dist/cjs/generated/frequentQuestions.entry.cjs +17 -17
  35. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  36. package/dist/cjs/generated/legal.entry.cjs +2 -2
  37. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  38. package/dist/esm/generated/blog.entry.mjs +27 -27
  39. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  40. package/dist/esm/generated/docs.entry.mjs +234 -214
  41. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  42. package/dist/esm/generated/frequentQuestions.entry.mjs +17 -17
  43. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  44. package/dist/esm/generated/legal.entry.mjs +2 -2
  45. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  46. package/dist/types/generated/docs.entry.d.ts +1 -0
  47. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  48. package/docs/ar/analytics.md +222 -0
  49. package/docs/ar/autoFill.md +28 -9
  50. package/docs/ar/configuration.md +25 -8
  51. package/docs/ar/dictionary/file.md +3 -1
  52. package/docs/ar/dictionary/nesting.md +47 -30
  53. package/docs/ar/formatters.md +148 -193
  54. package/docs/ar/intlayer_CMS.md +152 -0
  55. package/docs/ar/intlayer_with_angular_21.md +9 -9
  56. package/docs/ar/intlayer_with_nextjs_14.md +1 -28
  57. package/docs/ar/intlayer_with_nextjs_15.md +1 -33
  58. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +40 -83
  59. package/docs/ar/intlayer_with_solid_start.md +1078 -0
  60. package/docs/ar/intlayer_with_vite+vue.md +1 -3
  61. package/docs/ar/packages/intlayer/getLocalizedUrl.md +26 -24
  62. package/docs/ar/packages/intlayer/getMultilingualUrls.md +4 -18
  63. package/docs/ar/packages/react-intlayer/useDictionary.md +4 -21
  64. package/docs/ar/packages/react-intlayer/useIntlayer.md +2 -2
  65. package/docs/ar/packages/vite-intlayer/exports.md +15 -0
  66. package/docs/ar/packages/vite-intlayer/intlayer.md +121 -6
  67. package/docs/ar/packages/vite-intlayer/intlayerPrune.md +70 -3
  68. package/docs/ar/releases/v9.md +0 -37
  69. package/docs/ar/self_hosting.md +46 -49
  70. package/docs/bn/configuration.md +25 -8
  71. package/docs/bn/intlayer_with_angular_21.md +9 -9
  72. package/docs/cs/configuration.md +25 -8
  73. package/docs/cs/intlayer_with_angular_21.md +9 -9
  74. package/docs/de/analytics.md +222 -0
  75. package/docs/de/autoFill.md +28 -9
  76. package/docs/de/configuration.md +25 -8
  77. package/docs/de/dictionary/file.md +3 -1
  78. package/docs/de/dictionary/nesting.md +47 -31
  79. package/docs/de/formatters.md +208 -334
  80. package/docs/de/intlayer_CMS.md +66 -15
  81. package/docs/de/intlayer_with_angular_21.md +9 -9
  82. package/docs/de/intlayer_with_nestjs.md +11 -7
  83. package/docs/de/intlayer_with_nextjs_14.md +1 -28
  84. package/docs/de/intlayer_with_nextjs_15.md +1 -33
  85. package/docs/de/intlayer_with_solid_start.md +1078 -0
  86. package/docs/de/intlayer_with_vite+vue.md +1 -3
  87. package/docs/de/packages/intlayer/getLocalizedUrl.md +33 -25
  88. package/docs/de/packages/intlayer/getMultilingualUrls.md +4 -18
  89. package/docs/de/packages/react-intlayer/useDictionary.md +2 -5
  90. package/docs/de/packages/vite-intlayer/exports.md +15 -0
  91. package/docs/de/packages/vite-intlayer/intlayer.md +121 -6
  92. package/docs/de/packages/vite-intlayer/intlayerPrune.md +77 -4
  93. package/docs/de/releases/v9.md +0 -15
  94. package/docs/de/self_hosting.md +46 -50
  95. package/docs/en/cli/doc-review.md +13 -2
  96. package/docs/en/configuration.md +24 -15
  97. package/docs/en/intlayer_with_angular_21.md +9 -9
  98. package/docs/en/intlayer_with_solid_start.md +1091 -0
  99. package/docs/en/intlayer_with_vite+solid.md +12 -0
  100. package/docs/en-GB/analytics.md +222 -0
  101. package/docs/en-GB/autoFill.md +26 -7
  102. package/docs/en-GB/configuration.md +25 -8
  103. package/docs/en-GB/dictionary/file.md +2 -0
  104. package/docs/en-GB/dictionary/nesting.md +64 -205
  105. package/docs/en-GB/formatters.md +146 -181
  106. package/docs/en-GB/intlayer_CMS.md +152 -0
  107. package/docs/en-GB/intlayer_with_angular_21.md +9 -9
  108. package/docs/en-GB/intlayer_with_nestjs.md +6 -2
  109. package/docs/en-GB/intlayer_with_nextjs_14.md +0 -27
  110. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -33
  111. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +40 -82
  112. package/docs/en-GB/intlayer_with_solid_start.md +1078 -0
  113. package/docs/en-GB/intlayer_with_vite+vue.md +1 -3
  114. package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +30 -22
  115. package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +16 -48
  116. package/docs/en-GB/packages/vite-intlayer/exports.md +15 -0
  117. package/docs/en-GB/packages/vite-intlayer/intlayer.md +121 -6
  118. package/docs/en-GB/packages/vite-intlayer/intlayerPrune.md +77 -4
  119. package/docs/en-GB/self_hosting.md +60 -49
  120. package/docs/es/analytics.md +222 -0
  121. package/docs/es/autoFill.md +28 -9
  122. package/docs/es/configuration.md +24 -7
  123. package/docs/es/dictionary/file.md +3 -1
  124. package/docs/es/dictionary/nesting.md +47 -30
  125. package/docs/es/formatters.md +114 -168
  126. package/docs/es/intlayer_CMS.md +35 -10
  127. package/docs/es/intlayer_with_angular_21.md +9 -9
  128. package/docs/es/intlayer_with_nextjs_14.md +1 -28
  129. package/docs/es/intlayer_with_nextjs_15.md +1 -33
  130. package/docs/es/intlayer_with_solid_start.md +1078 -0
  131. package/docs/es/packages/intlayer/getLocalizedUrl.md +31 -23
  132. package/docs/es/packages/intlayer/getMultilingualUrls.md +4 -18
  133. package/docs/es/packages/vite-intlayer/exports.md +15 -0
  134. package/docs/es/packages/vite-intlayer/intlayer.md +121 -6
  135. package/docs/es/packages/vite-intlayer/intlayerPrune.md +69 -2
  136. package/docs/es/releases/v9.md +0 -15
  137. package/docs/es/self_hosting.md +46 -49
  138. package/docs/fr/analytics.md +222 -0
  139. package/docs/fr/autoFill.md +27 -8
  140. package/docs/fr/configuration.md +25 -8
  141. package/docs/fr/dictionary/file.md +2 -0
  142. package/docs/fr/dictionary/nesting.md +37 -184
  143. package/docs/fr/formatters.md +95 -236
  144. package/docs/fr/intlayer_CMS.md +66 -15
  145. package/docs/fr/intlayer_with_angular_21.md +9 -9
  146. package/docs/fr/intlayer_with_nextjs_14.md +1 -28
  147. package/docs/fr/intlayer_with_nextjs_15.md +1 -33
  148. package/docs/fr/intlayer_with_solid_start.md +1078 -0
  149. package/docs/fr/packages/intlayer/getLocalizedUrl.md +37 -27
  150. package/docs/fr/packages/intlayer/getMultilingualUrls.md +18 -20
  151. package/docs/fr/packages/vite-intlayer/exports.md +15 -0
  152. package/docs/fr/packages/vite-intlayer/intlayer.md +121 -6
  153. package/docs/fr/packages/vite-intlayer/intlayerPrune.md +77 -4
  154. package/docs/fr/releases/v9.md +0 -15
  155. package/docs/fr/self_hosting.md +46 -49
  156. package/docs/hi/analytics.md +222 -0
  157. package/docs/hi/autoFill.md +28 -9
  158. package/docs/hi/configuration.md +25 -8
  159. package/docs/hi/dictionary/file.md +3 -1
  160. package/docs/hi/dictionary/nesting.md +47 -30
  161. package/docs/hi/formatters.md +233 -334
  162. package/docs/hi/how_works_intlayer.md +3 -1
  163. package/docs/hi/intlayer_CMS.md +152 -0
  164. package/docs/hi/intlayer_with_angular_21.md +9 -9
  165. package/docs/hi/intlayer_with_nestjs.md +11 -7
  166. package/docs/hi/intlayer_with_nextjs_14.md +1 -28
  167. package/docs/hi/intlayer_with_nextjs_15.md +1 -33
  168. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +40 -83
  169. package/docs/hi/intlayer_with_solid_start.md +1077 -0
  170. package/docs/hi/intlayer_with_vite+preact.md +56 -49
  171. package/docs/hi/intlayer_with_vite+react.md +48 -41
  172. package/docs/hi/intlayer_with_vite+solid.md +32 -41
  173. package/docs/hi/intlayer_with_vite+vue.md +49 -44
  174. package/docs/hi/packages/intlayer/getLocalizedUrl.md +26 -24
  175. package/docs/hi/packages/intlayer/getMultilingualUrls.md +4 -18
  176. package/docs/hi/packages/next-intlayer/t.md +33 -1
  177. package/docs/hi/packages/react-intlayer/useDictionary.md +4 -21
  178. package/docs/hi/packages/vite-intlayer/exports.md +15 -0
  179. package/docs/hi/packages/vite-intlayer/intlayer.md +121 -6
  180. package/docs/hi/packages/vite-intlayer/intlayerPrune.md +78 -5
  181. package/docs/hi/plugins/sync-json.md +9 -9
  182. package/docs/hi/releases/v9.md +0 -15
  183. package/docs/hi/self_hosting.md +38 -51
  184. package/docs/id/analytics.md +223 -0
  185. package/docs/id/configuration.md +25 -8
  186. package/docs/id/dictionary/nesting.md +37 -184
  187. package/docs/id/formatters.md +208 -305
  188. package/docs/id/intlayer_CMS.md +164 -0
  189. package/docs/id/intlayer_with_angular_21.md +9 -9
  190. package/docs/id/intlayer_with_nextjs_14.md +1 -26
  191. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +70 -63
  192. package/docs/id/intlayer_with_solid_start.md +1078 -0
  193. package/docs/id/packages/intlayer/getMultilingualUrls.md +4 -18
  194. package/docs/id/packages/react-intlayer/useIntlayer.md +2 -2
  195. package/docs/id/packages/vite-intlayer/exports.md +15 -0
  196. package/docs/id/packages/vite-intlayer/intlayer.md +121 -6
  197. package/docs/id/packages/vite-intlayer/intlayerPrune.md +78 -5
  198. package/docs/id/releases/v9.md +12 -0
  199. package/docs/id/self_hosting.md +61 -50
  200. package/docs/it/analytics.md +222 -0
  201. package/docs/it/autoFill.md +27 -8
  202. package/docs/it/configuration.md +25 -8
  203. package/docs/it/dictionary/file.md +3 -1
  204. package/docs/it/dictionary/nesting.md +47 -30
  205. package/docs/it/formatters.md +114 -168
  206. package/docs/it/intlayer_CMS.md +66 -15
  207. package/docs/it/intlayer_with_angular_21.md +9 -9
  208. package/docs/it/intlayer_with_nestjs.md +11 -7
  209. package/docs/it/intlayer_with_nextjs_14.md +1 -28
  210. package/docs/it/intlayer_with_nextjs_15.md +1 -33
  211. package/docs/it/intlayer_with_solid_start.md +1078 -0
  212. package/docs/it/intlayer_with_vite+vue.md +1 -3
  213. package/docs/it/packages/intlayer/getLocalizedUrl.md +34 -26
  214. package/docs/it/packages/intlayer/getMultilingualUrls.md +4 -18
  215. package/docs/it/packages/react-intlayer/useDictionary.md +4 -21
  216. package/docs/it/packages/vite-intlayer/exports.md +15 -0
  217. package/docs/it/packages/vite-intlayer/intlayer.md +121 -6
  218. package/docs/it/packages/vite-intlayer/intlayerPrune.md +77 -4
  219. package/docs/it/releases/v9.md +0 -15
  220. package/docs/it/self_hosting.md +60 -49
  221. package/docs/ja/analytics.md +222 -0
  222. package/docs/ja/autoFill.md +28 -9
  223. package/docs/ja/configuration.md +25 -8
  224. package/docs/ja/dictionary/content_file.md +15 -7
  225. package/docs/ja/dictionary/file.md +3 -1
  226. package/docs/ja/dictionary/nesting.md +47 -30
  227. package/docs/ja/formatters.md +133 -187
  228. package/docs/ja/intlayer_visual_editor.md +3 -1
  229. package/docs/ja/intlayer_with_angular_21.md +6 -6
  230. package/docs/ja/intlayer_with_nestjs.md +2 -12
  231. package/docs/ja/intlayer_with_nextjs_14.md +1 -28
  232. package/docs/ja/intlayer_with_nextjs_15.md +1 -33
  233. package/docs/ja/intlayer_with_react_router_v7.md +456 -20
  234. package/docs/ja/intlayer_with_solid_start.md +1078 -0
  235. package/docs/ja/intlayer_with_vite+preact.md +73 -41
  236. package/docs/ja/intlayer_with_vite+vue.md +1 -3
  237. package/docs/ja/mcp_server.md +3 -9
  238. package/docs/ja/packages/intlayer/getLocalizedUrl.md +26 -24
  239. package/docs/ja/packages/intlayer/getMultilingualUrls.md +3 -17
  240. package/docs/ja/packages/vite-intlayer/exports.md +15 -0
  241. package/docs/ja/packages/vite-intlayer/intlayer.md +121 -6
  242. package/docs/ja/packages/vite-intlayer/intlayerPrune.md +79 -6
  243. package/docs/ja/releases/v9.md +12 -0
  244. package/docs/ja/self_hosting.md +46 -50
  245. package/docs/ko/analytics.md +222 -0
  246. package/docs/ko/autoFill.md +28 -9
  247. package/docs/ko/configuration.md +25 -8
  248. package/docs/ko/dictionary/file.md +3 -1
  249. package/docs/ko/dictionary/nesting.md +47 -30
  250. package/docs/ko/formatters.md +133 -187
  251. package/docs/ko/intlayer_with_angular_21.md +9 -9
  252. package/docs/ko/intlayer_with_lynx+react.md +133 -39
  253. package/docs/ko/intlayer_with_nextjs_14.md +1 -28
  254. package/docs/ko/intlayer_with_nextjs_15.md +1 -33
  255. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +40 -188
  256. package/docs/ko/intlayer_with_solid_start.md +1078 -0
  257. package/docs/ko/intlayer_with_vite+preact.md +57 -23
  258. package/docs/ko/intlayer_with_vite+vue.md +1 -3
  259. package/docs/ko/packages/intlayer/getLocalizedUrl.md +26 -24
  260. package/docs/ko/packages/intlayer/getMultilingualUrls.md +4 -18
  261. package/docs/ko/packages/vite-intlayer/exports.md +15 -0
  262. package/docs/ko/packages/vite-intlayer/intlayer.md +121 -6
  263. package/docs/ko/packages/vite-intlayer/intlayerPrune.md +79 -6
  264. package/docs/ko/releases/v9.md +12 -0
  265. package/docs/ko/self_hosting.md +60 -49
  266. package/docs/nl/configuration.md +25 -8
  267. package/docs/nl/intlayer_with_angular_21.md +9 -9
  268. package/docs/pl/analytics.md +220 -0
  269. package/docs/pl/configuration.md +25 -8
  270. package/docs/pl/dictionary/nesting.md +47 -30
  271. package/docs/pl/formatters.md +208 -305
  272. package/docs/pl/intlayer_CMS.md +152 -0
  273. package/docs/pl/intlayer_with_angular_21.md +9 -9
  274. package/docs/pl/intlayer_with_nextjs_14.md +1 -26
  275. package/docs/pl/intlayer_with_solid_start.md +1078 -0
  276. package/docs/pl/packages/intlayer/getMultilingualUrls.md +4 -18
  277. package/docs/pl/packages/react-intlayer/useDictionary.md +2 -19
  278. package/docs/pl/packages/vite-intlayer/exports.md +15 -0
  279. package/docs/pl/packages/vite-intlayer/intlayer.md +121 -6
  280. package/docs/pl/packages/vite-intlayer/intlayerPrune.md +77 -4
  281. package/docs/pl/releases/v9.md +0 -15
  282. package/docs/pl/self_hosting.md +60 -49
  283. package/docs/pt/analytics.md +222 -0
  284. package/docs/pt/configuration.md +25 -8
  285. package/docs/pt/dictionary/file.md +3 -1
  286. package/docs/pt/dictionary/nesting.md +47 -30
  287. package/docs/pt/formatters.md +112 -168
  288. package/docs/pt/intlayer_CMS.md +66 -15
  289. package/docs/pt/intlayer_with_angular_21.md +9 -9
  290. package/docs/pt/intlayer_with_astro_lit.md +26 -1
  291. package/docs/pt/intlayer_with_nextjs_14.md +1 -28
  292. package/docs/pt/intlayer_with_nextjs_15.md +1 -33
  293. package/docs/pt/intlayer_with_solid_start.md +1078 -0
  294. package/docs/pt/intlayer_with_vite+vue.md +1 -3
  295. package/docs/pt/packages/intlayer/getLocalizedUrl.md +34 -26
  296. package/docs/pt/packages/intlayer/getMultilingualUrls.md +4 -18
  297. package/docs/pt/packages/vite-intlayer/exports.md +15 -0
  298. package/docs/pt/packages/vite-intlayer/intlayer.md +121 -6
  299. package/docs/pt/packages/vite-intlayer/intlayerPrune.md +78 -6
  300. package/docs/pt/releases/v9.md +0 -15
  301. package/docs/pt/self_hosting.md +60 -49
  302. package/docs/ru/analytics.md +222 -0
  303. package/docs/ru/autoFill.md +27 -8
  304. package/docs/ru/configuration.md +25 -8
  305. package/docs/ru/dictionary/file.md +3 -1
  306. package/docs/ru/dictionary/nesting.md +64 -205
  307. package/docs/ru/formatters.md +108 -128
  308. package/docs/ru/intlayer_with_angular_21.md +9 -9
  309. package/docs/ru/intlayer_with_nextjs_14.md +1 -28
  310. package/docs/ru/intlayer_with_nextjs_15.md +1 -33
  311. package/docs/ru/intlayer_with_solid_start.md +1078 -0
  312. package/docs/ru/intlayer_with_vite+vue.md +1 -3
  313. package/docs/ru/packages/intlayer/getLocalizedUrl.md +34 -26
  314. package/docs/ru/packages/intlayer/getMultilingualUrls.md +4 -18
  315. package/docs/ru/packages/react-intlayer/useDictionary.md +4 -21
  316. package/docs/ru/packages/vite-intlayer/exports.md +15 -0
  317. package/docs/ru/packages/vite-intlayer/intlayer.md +121 -6
  318. package/docs/ru/packages/vite-intlayer/intlayerPrune.md +77 -4
  319. package/docs/ru/releases/v9.md +0 -15
  320. package/docs/ru/self_hosting.md +60 -49
  321. package/docs/tr/analytics.md +222 -0
  322. package/docs/tr/autoFill.md +28 -9
  323. package/docs/tr/configuration.md +25 -8
  324. package/docs/tr/dictionary/file.md +2 -0
  325. package/docs/tr/dictionary/nesting.md +47 -30
  326. package/docs/tr/formatters.md +144 -190
  327. package/docs/tr/intlayer_CMS.md +152 -0
  328. package/docs/tr/intlayer_with_angular_21.md +9 -9
  329. package/docs/tr/intlayer_with_nestjs.md +2 -12
  330. package/docs/tr/intlayer_with_nextjs_15.md +1 -33
  331. package/docs/tr/intlayer_with_solid_start.md +1078 -0
  332. package/docs/tr/intlayer_with_vite+vue.md +1 -3
  333. package/docs/tr/packages/intlayer/getMultilingualUrls.md +4 -18
  334. package/docs/tr/packages/vite-intlayer/exports.md +15 -0
  335. package/docs/tr/packages/vite-intlayer/intlayer.md +121 -6
  336. package/docs/tr/packages/vite-intlayer/intlayerPrune.md +77 -4
  337. package/docs/tr/self_hosting.md +47 -50
  338. package/docs/uk/analytics.md +222 -0
  339. package/docs/uk/configuration.md +25 -8
  340. package/docs/uk/dictionary/nesting.md +47 -30
  341. package/docs/uk/formatters.md +128 -185
  342. package/docs/uk/intlayer_CMS.md +152 -0
  343. package/docs/uk/intlayer_with_angular_21.md +9 -9
  344. package/docs/uk/intlayer_with_nextjs_14.md +1 -26
  345. package/docs/uk/intlayer_with_solid_start.md +1078 -0
  346. package/docs/uk/packages/react-intlayer/useDictionary.md +2 -19
  347. package/docs/uk/packages/vite-intlayer/exports.md +15 -0
  348. package/docs/uk/packages/vite-intlayer/intlayer.md +121 -6
  349. package/docs/uk/packages/vite-intlayer/intlayerPrune.md +77 -4
  350. package/docs/uk/releases/v9.md +0 -15
  351. package/docs/uk/self_hosting.md +60 -50
  352. package/docs/ur/configuration.md +25 -8
  353. package/docs/ur/intlayer_with_angular_21.md +9 -9
  354. package/docs/vi/analytics.md +222 -0
  355. package/docs/vi/configuration.md +24 -8
  356. package/docs/vi/dictionary/nesting.md +37 -184
  357. package/docs/vi/formatters.md +208 -309
  358. package/docs/vi/intlayer_CMS.md +164 -0
  359. package/docs/vi/intlayer_with_angular_21.md +9 -9
  360. package/docs/vi/intlayer_with_nextjs_14.md +0 -25
  361. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +70 -63
  362. package/docs/vi/intlayer_with_solid_start.md +1078 -0
  363. package/docs/vi/packages/intlayer/getMultilingualUrls.md +4 -18
  364. package/docs/vi/packages/react-intlayer/useIntlayer.md +2 -2
  365. package/docs/vi/packages/vite-intlayer/exports.md +15 -0
  366. package/docs/vi/packages/vite-intlayer/intlayer.md +121 -6
  367. package/docs/vi/packages/vite-intlayer/intlayerPrune.md +77 -4
  368. package/docs/vi/plugins/sync-json.md +6 -6
  369. package/docs/vi/releases/v9.md +12 -0
  370. package/docs/vi/self_hosting.md +61 -50
  371. package/docs/zh/CI_CD.md +4 -0
  372. package/docs/zh/analytics.md +222 -0
  373. package/docs/zh/autoFill.md +28 -9
  374. package/docs/zh/configuration.md +24 -8
  375. package/docs/zh/dictionary/file.md +2 -0
  376. package/docs/zh/dictionary/nesting.md +47 -30
  377. package/docs/zh/formatters.md +140 -188
  378. package/docs/zh/intlayer_CMS.md +164 -0
  379. package/docs/zh/intlayer_with_analog.md +193 -3
  380. package/docs/zh/intlayer_with_angular_19.md +272 -3
  381. package/docs/zh/intlayer_with_angular_21.md +7 -7
  382. package/docs/zh/intlayer_with_create_react_app.md +348 -26
  383. package/docs/zh/intlayer_with_lynx+react.md +263 -4
  384. package/docs/zh/intlayer_with_nextjs_14.md +1 -28
  385. package/docs/zh/intlayer_with_nextjs_15.md +1 -33
  386. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +558 -1
  387. package/docs/zh/intlayer_with_nuxt.md +182 -7
  388. package/docs/zh/intlayer_with_react_router_v7.md +183 -25
  389. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +306 -42
  390. package/docs/zh/intlayer_with_solid_start.md +1077 -0
  391. package/docs/zh/intlayer_with_storybook.md +260 -3
  392. package/docs/zh/intlayer_with_svelte_kit.md +428 -48
  393. package/docs/zh/intlayer_with_tanstack+solid.md +713 -13
  394. package/docs/zh/intlayer_with_tanstack.md +731 -20
  395. package/docs/zh/intlayer_with_vanilla.md +314 -4
  396. package/docs/zh/intlayer_with_vite+lit.md +465 -4
  397. package/docs/zh/intlayer_with_vite+preact.md +422 -116
  398. package/docs/zh/intlayer_with_vite+react.md +324 -45
  399. package/docs/zh/intlayer_with_vite+react_compiler.md +228 -13
  400. package/docs/zh/intlayer_with_vite+solid.md +462 -32
  401. package/docs/zh/intlayer_with_vite+vanilla.md +497 -4
  402. package/docs/zh/mcp_server.md +3 -9
  403. package/docs/zh/packages/intlayer/getLocalizedUrl.md +26 -24
  404. package/docs/zh/packages/intlayer/getMultilingualUrls.md +4 -18
  405. package/docs/zh/packages/vite-intlayer/exports.md +29 -0
  406. package/docs/zh/packages/vite-intlayer/intlayer.md +121 -6
  407. package/docs/zh/packages/vite-intlayer/intlayerPrune.md +79 -6
  408. package/docs/zh/releases/v9.md +12 -0
  409. package/docs/zh/self_hosting.md +60 -50
  410. package/docs/zh-TW/intlayer_with_angular_21.md +7 -7
  411. package/package.json +6 -6
  412. package/src/generated/blog.entry.ts +27 -27
  413. package/src/generated/docs.entry.ts +234 -214
  414. package/src/generated/frequentQuestions.entry.ts +17 -17
  415. package/src/generated/legal.entry.ts +2 -2
@@ -137,45 +137,40 @@ const MyComponent = () => {
137
137
  };
138
138
  ```
139
139
 
140
- ## Intl yang Di-cache
140
+ ### Hook `useIntl`
141
141
 
142
- `Intl` yang diekspor adalah pembungkus tipis yang di-cache di sekitar `Intl` global. Ini menyimpan instance dari `NumberFormat`, `DateTimeFormat`, `RelativeTimeFormat`, `ListFormat`, `DisplayNames`, `Collator`, dan `PluralRules`, yang menghindari pembuatan ulang formatter yang sama berulang kali.
142
+ Hook `useIntl` menyediakan akses langsung ke objek `Intl` yang terikat pada locale. Ini berguna ketika Anda memerlukan API `Intl` lengkap (misalnya, `DisplayNames`, `Collator`, `PluralRules`) dengan injeksi locale otomatis.
143
143
 
144
- Karena pembuatan formatter relatif mahal, caching ini meningkatkan performa tanpa mengubah perilaku. Pembungkus ini menampilkan API yang sama seperti `Intl` asli, sehingga penggunaannya identik.
145
-
146
- - Caching dilakukan per proses dan transparan bagi pemanggil.
144
+ ```tsx
145
+ import { useIntl } from "react-intlayer/format";
147
146
 
148
- > Jika `Intl.DisplayNames` tidak tersedia di lingkungan, hanya satu peringatan khusus pengembang yang dicetak (pertimbangkan menggunakan polyfill).
147
+ const MyComponent = () => {
148
+ const intl = useIntl(); // menggunakan locale konteks
149
149
 
150
- Contoh:
150
+ // API Intl standar, tetapi locale disuntikkan secara otomatis ketika undefined
151
+ const formatted = new intl.NumberFormat(undefined, {
152
+ style: "currency",
153
+ currency: "USD",
154
+ }).format(123.45);
151
155
 
152
- ```ts
153
- import { Intl } from "intlayer";
156
+ // Anda masih dapat menimpa locale jika diperlukan
157
+ const date = new intl.DateTimeFormat("fr-FR").format(new Date());
154
158
 
155
- // Format angka
156
- const numberFormat = new Intl.NumberFormat("en-GB", {
157
- style: "currency",
158
- currency: "GBP",
159
- });
160
- numberFormat.format(1234.5); // "£1,234.50"
159
+ // Akses fitur Intl lainnya
160
+ const displayNames = new intl.DisplayNames(undefined, { type: "language" });
161
+ const languageName = displayNames.of("fr"); // "French" (atau terlokalisasi)
161
162
 
162
- // Nama tampilan untuk bahasa, wilayah, dll.
163
- const displayNames = new Intl.DisplayNames("fr", { type: "language" });
164
- displayNames.of("en"); // "anglais"
165
-
166
- // Kolasi untuk pengurutan
167
- const collator = new Intl.Collator("fr", { sensitivity: "base" });
168
- collator.compare("é", "e"); // 0 (sama)
169
-
170
- // Aturan jamak
171
- const pluralRules = new Intl.PluralRules("fr");
172
- pluralRules.select(1); // "one"
173
- pluralRules.select(2); // "other"
163
+ return (
164
+ <div>
165
+ <p>{formatted}</p>
166
+ <p>{date}</p>
167
+ <p>{languageName}</p>
168
+ </div>
169
+ );
170
+ };
174
171
  ```
175
172
 
176
- ## Utilitas Intl Tambahan
177
-
178
- Selain pembantu formatter, Anda juga dapat menggunakan pembungkus Intl yang di-cache secara langsung untuk fitur Intl lainnya:
173
+ ## Vue Formatters
179
174
 
180
175
  ### `Intl.DisplayNames`
181
176
 
@@ -281,6 +276,189 @@ pluralRules.select(3); // "few"
281
276
  pluralRules.select(11); // "many"
282
277
  ```
283
278
 
279
+ ### Fungsi Formatter
280
+
281
+ #### `number(value, options?)`
282
+
283
+ Memformat nilai numerik menggunakan pengelompokan dan desimal yang menyadari lokal.
284
+
285
+ - **value**: `number | string`
286
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
287
+
288
+ ```ts
289
+ number(123456.789); // "123,456.789" (in en-US)
290
+ number("1000000", { locale: "fr" }); // "1 000 000"
291
+ number(1234.5, { minimumFractionDigits: 2 }); // "1,234.50"
292
+ ```
293
+
294
+ #### `percentage(value, options?)`
295
+
296
+ Memformat angka sebagai string persentase. Nilai lebih besar dari 1 dinormalisasi (misalnya, `25` → `25%`, `0.25` → `25%`).
297
+
298
+ - **value**: `number | string`
299
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
300
+
301
+ ```ts
302
+ percentage(0.25); // "25%"
303
+ percentage(25); // "25%"
304
+ percentage(0.237, { minimumFractionDigits: 1 }); // "23.7%"
305
+ ```
306
+
307
+ #### `currency(value, options?)`
308
+
309
+ Memformat nilai sebagai mata uang yang dilokalisasi. Default ke `USD`.
310
+
311
+ - **value**: `number | string`
312
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
313
+ - Common: `currency`, `currencyDisplay` (`"symbol" | "code" | "name"`)
314
+
315
+ ```ts
316
+ currency(1234.5, { currency: "EUR" }); // "€1,234.50"
317
+ currency("5000", { locale: "fr", currency: "CAD", currencyDisplay: "code" }); // "5 000,00 CAD"
318
+ ```
319
+
320
+ #### `date(date, optionsOrPreset?)`
321
+
322
+ Memformat nilai tanggal/waktu.
323
+
324
+ - **date**: `Date | string | number`
325
+ - **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` atau preset: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
326
+
327
+ ```ts
328
+ date(new Date(), "short"); // misalnya, "08/02/25, 14:30"
329
+ date("2025-08-02T14:30:00Z", { locale: "fr", month: "long", day: "numeric" }); // "2 août"
330
+ ```
331
+
332
+ #### `relativeTime(from, to?, options?)`
333
+
334
+ Memformat waktu relatif antara dua momen.
335
+
336
+ - **from**: `Date | string | number`
337
+ - **to**: `Date | string | number` (default ke `new Date()`)
338
+ - **options**: `{ locale?, unit?, numeric?, style? }`
339
+
340
+ ```ts
341
+ const now = new Date();
342
+ const in3Days = new Date(now.getTime() + 3 * 864e5);
343
+ relativeTime(now, in3Days, { unit: "day" }); // "dalam 3 hari"
344
+
345
+ const twoHoursAgo = new Date(now.getTime() - 2 * 3600e3);
346
+ relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "2 jam yang lalu"
347
+ ```
348
+
349
+ #### `units(value, options?)`
350
+
351
+ Memformat nilai numerik dengan unit.
352
+
353
+ - **value**: `number | string`
354
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
355
+ - Common: `unit` (e.g., `"kilometer"`, `"byte"`), `unitDisplay` (`"short" | "narrow" | "long"`)
356
+
357
+ ```ts
358
+ units(5, { unit: "kilometer", unitDisplay: "long", locale: "en-GB" }); // "5 kilometers"
359
+ units(1024, { unit: "byte", unitDisplay: "narrow" }); // "1,024B"
360
+ ```
361
+
362
+ #### `compact(value, options?)`
363
+
364
+ Memformat angka menggunakan notasi kompak.
365
+
366
+ - **value**: `number | string`
367
+ - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
368
+
369
+ ```ts
370
+ compact(1200); // "1.2K"
371
+ compact("1000000", { locale: "fr", compactDisplay: "long" }); // "1 million"
372
+ ```
373
+
374
+ #### `list(values, options?)`
375
+
376
+ Memformat array menjadi string list yang terlokalisasi.
377
+
378
+ - **values**: `(string | number)[]`
379
+ - **options**: `Intl.ListFormatOptions & { locale?: LocalesValues }`
380
+ - Common: `type` (`"conjunction" | "disjunction" | "unit"`), `style` (`"long" | "short" | "narrow"`)
381
+
382
+ ```ts
383
+ list(["apple", "banana", "orange"]); // "apple, banana, and orange"
384
+ list(["red", "green", "blue"], { locale: "fr", type: "disjunction" }); // "rouge, vert ou bleu"
385
+ ```
386
+
387
+ ## Cached Intl
388
+
389
+ `Intl` yang diekspor dari `intlayer` adalah wrapper yang di-cache di sekitar `Intl` global. Ini memoizes instance formatter (`NumberFormat`, `DateTimeFormat`, dll.) untuk menghindari pengulangan konstruksinya, meningkatkan performance.
390
+
391
+ ```ts
392
+ import { Intl } from "intlayer";
393
+
394
+ // Pemformatan angka
395
+ const numberFormat = new Intl.NumberFormat("en-GB", {
396
+ style: "currency",
397
+ currency: "GBP",
398
+ });
399
+ numberFormat.format(1234.5); // "£1,234.50"
400
+
401
+ // Nama tampilan untuk bahasa, region, dll.
402
+ const displayNames = new Intl.DisplayNames("fr", { type: "language" });
403
+ displayNames.of("en"); // "anglais"
404
+
405
+ // Collation untuk pengurutan
406
+ const collator = new Intl.Collator("fr", { sensitivity: "base" });
407
+ collator.compare("é", "e"); // 0 (equal)
408
+
409
+ // Aturan plural
410
+ const pluralRules = new Intl.PluralRules("fr");
411
+ pluralRules.select(1); // "one"
412
+ pluralRules.select(2); // "other"
413
+ ```
414
+
415
+ ### Fitur Intl Tambahan
416
+
417
+ #### `Intl.DisplayNames`
418
+
419
+ Untuk nama-nama terlokalisasi dari bahasa, region, mata uang, dan skrip:
420
+
421
+ ```ts
422
+ import { Intl } from "intlayer";
423
+
424
+ const languageNames = new Intl.DisplayNames("en", { type: "language" });
425
+ languageNames.of("fr"); // "French"
426
+
427
+ const regionNames = new Intl.DisplayNames("fr", { type: "region" });
428
+ regionNames.of("US"); // "États-Unis"
429
+ ```
430
+
431
+ #### `Intl.Collator`
432
+
433
+ Untuk perbandingan dan pengurutan string yang peka terhadap locale:
434
+
435
+ ```ts
436
+ import { Intl } from "intlayer";
437
+
438
+ const collator = new Intl.Collator("de", {
439
+ sensitivity: "base",
440
+ numeric: true,
441
+ });
442
+
443
+ const words = ["äpfel", "zebra", "100", "20"];
444
+ words.sort(collator.compare); // ["20", "100", "äpfel", "zebra"]
445
+ ```
446
+
447
+ #### `Intl.PluralRules`
448
+
449
+ Untuk menentukan bentuk plural dalam lokal yang berbeda:
450
+
451
+ ```ts
452
+ import { Intl } from "intlayer";
453
+
454
+ const pluralRules = new Intl.PluralRules("ar");
455
+ pluralRules.select(0); // "zero"
456
+ pluralRules.select(1); // "one"
457
+ pluralRules.select(2); // "two"
458
+ pluralRules.select(3); // "few"
459
+ pluralRules.select(11); // "many"
460
+ ```
461
+
284
462
  ## Utilitas Locale
285
463
 
286
464
  ### `getLocaleName(displayLocale, targetLocale?)`
@@ -419,8 +597,6 @@ const content = getTranslation(
419
597
  - **locale**: Locale target (default ke locale default yang dikonfigurasi)
420
598
  - **fallback**: Apakah akan kembali ke locale default (default true)
421
599
 
422
- ### Fitur Intl Tambahan
423
-
424
600
  ### `getIntlayer(dictionaryKey, locale?, plugins?)`
425
601
 
426
602
  Mengambil dan mengubah konten dari kamus berdasarkan kunci:
@@ -436,281 +612,8 @@ const nestedContent = getIntlayer("common", "fr", customPlugins);
436
612
  - **locale**: Locale opsional (default ke locale default yang dikonfigurasi)
437
613
  - **plugins**: Array opsional dari plugin transformasi kustom
438
614
 
439
- ## Formatter
440
-
441
- Semua helper di bawah ini diekspor dari `intlayer`.
442
-
443
- ### `number(value, options?)`
444
-
445
- Memformat nilai numerik menggunakan pengelompokan dan desimal yang sesuai dengan locale.
446
-
447
- - **value**: `number | string`
448
- - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
449
-
450
- Contoh:
451
-
452
- ```ts
453
- import { number } from "intlayer";
454
-
455
- number(123456.789); // "123,456.789" (dalam en-US)
456
- number("1000000", { locale: "fr" }); // "1 000 000"
457
- number(1234.5, { minimumFractionDigits: 2 }); // "1,234.50"
458
- ```
459
-
460
- ### `percentage(value, options?)`
461
-
462
- Memformat angka sebagai string persentase.
463
-
464
- Perilaku: nilai yang lebih besar dari 1 diartikan sebagai persentase utuh dan dinormalisasi (misalnya, `25` → `25%`, `0.25` → `25%`).
465
-
466
- - **value**: `number | string`
467
- - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
468
-
469
- Contoh:
470
-
471
- ```ts
472
- import { percentage } from "intlayer";
473
-
474
- percentage(0.25); // "25%"
475
- percentage(25); // "25%"
476
- percentage(0.237, { minimumFractionDigits: 1 }); // "23.7%"
477
- ```
478
-
479
- ### `currency(value, options?)`
480
-
481
- Memformat nilai sebagai mata uang lokal. Default ke `USD` dengan dua digit pecahan.
482
-
483
- - **value**: `number | string`
484
- - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
485
- - Field umum: `currency` (misalnya, `"EUR"`), `currencyDisplay` (`"symbol" | "code" | "name"`)
486
-
487
- Contoh:
488
-
489
- ```ts
490
- import { currency } from "intlayer";
491
-
492
- currency(1234.5, { currency: "EUR" }); // "€1,234.50"
493
- currency("5000", { locale: "fr", currency: "CAD", currencyDisplay: "code" }); // "5 000,00 CAD"
494
- ```
495
-
496
- ### `date(date, optionsOrPreset?)`
497
-
498
- Memformat nilai tanggal/waktu dengan `Intl.DateTimeFormat`.
499
-
500
- - **date**: `Date | string | number`
501
- - **optionsOrPreset**: `Intl.DateTimeFormatOptions & { locale?: LocalesValues }` atau salah satu preset:
502
- - Preset: `"short" | "long" | "dateOnly" | "timeOnly" | "full"`
503
-
504
- Contoh:
505
-
506
- ```ts
507
- import { date } from "intlayer";
508
-
509
- date(new Date(), "short"); // misalnya, "08/02/25, 14:30"
510
- date("2025-08-02T14:30:00Z", { locale: "fr", month: "long", day: "numeric" }); // "2 août"
511
- ```
512
-
513
- ### `relativeTime(from, to = new Date(), options?)`
514
-
515
- Memformat waktu relatif antara dua momen dengan `Intl.RelativeTimeFormat`.
516
-
517
- - Berikan "now" sebagai argumen pertama dan target sebagai argumen kedua untuk mendapatkan frasa yang alami.
518
- - **from**: `Date | string | number`
519
- - **to**: `Date | string | number` (defaultnya `new Date()`)
520
- - **options**: `{ locale?: LocalesValues; unit?: Intl.RelativeTimeFormatUnit; numeric?: Intl.RelativeTimeFormatNumeric; style?: Intl.RelativeTimeFormatStyle }`
521
- - Default `unit` adalah `"second"`.
522
-
523
- Contoh:
524
-
525
- ```ts
526
- import { relativeTime } from "intlayer";
527
-
528
- const now = new Date();
529
- const in3Days = new Date(now.getTime() + 3 * 864e5);
530
- relativeTime(now, in3Days, { unit: "day" }); // "dalam 3 hari"
531
-
532
- const twoHoursAgo = new Date(now.getTime() - 2 * 3600e3);
533
- relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "2 jam yang lalu"
534
- ```
535
-
536
- ### `units(value, options?)`
537
-
538
- Memformat nilai numerik sebagai string unit yang dilokalkan menggunakan `Intl.NumberFormat` dengan `style: 'unit'`.
539
-
540
- - **value**: `number | string`
541
- - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }`
542
- - Field umum: `unit` (misalnya, `"kilometer"`, `"byte"`), `unitDisplay` (`"short" | "narrow" | "long"`)
543
- - Default: `unit: 'day'`, `unitDisplay: 'short'`, `useGrouping: false`
544
-
545
- Contoh:
546
-
547
- ```ts
548
- import { units } from "intlayer";
549
-
550
- units(5, { unit: "kilometer", unitDisplay: "long", locale: "en-GB" }); // "5 kilometers"
551
- units(1024, { unit: "byte", unitDisplay: "narrow" }); // "1,024B" (tergantung locale)
552
- ```
553
-
554
- ### `compact(value, options?)`
555
-
556
- Memformat angka menggunakan notasi ringkas (misalnya, `1.2K`, `1M`).
557
-
558
- - **value**: `number | string`
559
- - **options**: `Intl.NumberFormatOptions & { locale?: LocalesValues }` (menggunakan `notation: 'compact'` secara internal)
560
-
561
- Contoh:
562
-
563
- ```ts
564
- import { compact } from "intlayer";
565
-
566
- compact(1200); // "1.2K"
567
- compact("1000000", { locale: "fr", compactDisplay: "long" }); // "1 juta"
568
- ```
569
-
570
- ### `list(values, options?)`
571
-
572
- Memformat array nilai menjadi string daftar yang dilokalkan menggunakan `Intl.ListFormat`.
573
-
574
- - **values**: `(string | number)[]`
575
- - **options**: `Intl.ListFormatOptions & { locale?: LocalesValues }`
576
- - Field umum: `type` (`"conjunction" | "disjunction" | "unit"`), `style` (`"long" | "short" | "narrow"`)
577
- - Default: `type: 'conjunction'`, `style: 'long'`
578
-
579
- Contoh:
580
-
581
- ```ts
582
- import { list } from "intlayer";
583
-
584
- list(["apple", "banana", "orange"]); // "apple, banana, dan orange"
585
- list(["red", "green", "blue"], { locale: "fr", type: "disjunction" }); // "rouge, vert ou bleu"
586
- list([1, 2, 3], { type: "unit" }); // "1, 2, 3"
587
- ```
588
-
589
- ## Utilitas Penanganan Konten
590
-
591
615
  ## Catatan
592
616
 
593
617
  - Semua helper menerima input `string`; secara internal akan dikonversi menjadi angka atau tanggal.
594
618
  - Locale default adalah `internationalization.defaultLocale` yang telah Anda konfigurasi jika tidak disediakan.
595
619
  - Utilitas ini adalah pembungkus tipis; untuk pemformatan lanjutan, gunakan opsi standar `Intl`.
596
-
597
- ## Titik masuk dan ekspor ulang (`@index.ts`)
598
-
599
- Formatter berada di paket inti dan diekspor ulang dari paket tingkat atas untuk menjaga impor tetap ergonomis di berbagai runtime:
600
-
601
- Contoh:
602
-
603
- ```ts
604
- // Kode aplikasi (direkomendasikan)
605
- import {
606
- number,
607
- currency,
608
- date,
609
- relativeTime,
610
- units,
611
- compact,
612
- list,
613
- Intl,
614
- getLocaleName,
615
- getLocaleLang,
616
- getLocaleFromPath,
617
- getPathWithoutLocale,
618
- getLocalizedUrl,
619
- getHTMLTextDir,
620
- getContent,
621
- getTranslation,
622
- getIntlayer,
623
- } from "intlayer";
624
- ```
625
-
626
- ### React
627
-
628
- Komponen klien:
629
-
630
- ```tsx
631
- import {
632
- useNumber,
633
- useCurrency,
634
- useDate,
635
- usePercentage,
636
- useCompact,
637
- useList,
638
- useRelativeTime,
639
- useUnit,
640
- } from "react-intlayer/format";
641
- // atau di aplikasi Preact
642
- // "preact-intlayer/format";
643
- // atau di aplikasi Next.js
644
- // "next-intlayer/client/format";
645
-
646
- const MyComponent = () => {
647
- const number = useNumber();
648
- const currency = useCurrency();
649
- const date = useDate();
650
- const percentage = usePercentage();
651
- const compact = useCompact();
652
- const list = useList();
653
- const relativeTime = useRelativeTime();
654
- const unit = useUnit();
655
-
656
- return (
657
- <div>
658
- <p>{number(123456.789)}</p>
659
- <p>{currency(1234.5, { currency: "EUR" })}</p>
660
- <p>{date(new Date(), "short")}</p>
661
- <p>{percentage(0.25)}</p>
662
- <p>{compact(1200)}</p>
663
- <p>{list(["apel", "pisang", "jeruk"])}</p>
664
- <p>{relativeTime(new Date(), new Date() + 1000)}</p>
665
- <p>{unit(123456.789, { unit: "kilometer" })}</p>
666
- </div>
667
- );
668
- };
669
- ```
670
-
671
- Komponen server (atau runtime React Server):
672
-
673
- ```ts
674
- import {
675
- useNumber,
676
- useCurrency,
677
- useDate,
678
- usePercentage,
679
- useCompact,
680
- useList,
681
- useRelativeTime,
682
- useUnit,
683
- } from "react-intlayer/server/format";
684
- // atau di aplikasi Next.js
685
- import {
686
- useNumber,
687
- useCurrency,
688
- useDate,
689
- usePercentage,
690
- useCompact,
691
- useList,
692
- useRelativeTime,
693
- useUnit,
694
- } from "next-intlayer/server/format";
695
- ```
696
-
697
- > Hooks tersebut akan mempertimbangkan locale dari `IntlayerProvider` atau `IntlayerServerProvider`
698
-
699
- ### Vue
700
-
701
- Komponen klien:
702
-
703
- ```ts
704
- import {
705
- useNumber,
706
- useCurrency,
707
- useDate,
708
- usePercentage,
709
- useCompact,
710
- useList,
711
- useRelativeTime,
712
- useUnit,
713
- } from "vue-intlayer/format";
714
- ```
715
-
716
- > Composables tersebut akan mempertimbangkan locale dari `IntlayerProvider` yang di-inject