@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
@@ -749,41 +749,90 @@ export const Link = forwardRef<HTMLAnchorElement, LinkProps>(
749
749
  Link.displayName = "Link";
750
750
  ```
751
751
 
752
- ## Vite と Preact アプリケーションで Intlayer をセットアップするステップバイステップガイド
752
+ #### 動作方法
753
753
 
754
- <Steps>
754
+ - **外部リンクの検出**:
755
+ ヘルパー関数 `checkIsExternalLink` は、URL が外部かどうかを判定します。外部リンクはローカライズが不要なため、変更されません。
756
+ - **現在のロケールの取得**:
757
+ `useLocale` フックが現在のロケール(例:フランス語の場合 `fr`)を提供します。
758
+ - **URL のローカライズ**:
759
+ 内部リンク(つまり外部ではないリンク)の場合、`getLocalizedUrl` を使用して、URL に現在のロケールを自動的にプレフィックスします。つまり、ユーザーがフランス語を使用している場合、`href` として `/about` を渡すと `/fr/about` に変換されます。
760
+ - **リンクの返却**:
761
+ コンポーネントはローカライズされた URL を含む `<a>` 要素を返し、ナビゲーションがロケールと一貫していることを確認します。
762
+
763
+ </Step>
764
+
765
+ <Step number={11} title="Markdown と HTML をレンダリング" isOptional={true}>
766
+
767
+ Intlayer は Preact での Markdown および HTML コンテンツのレンダリングをサポートしています。
768
+
769
+ `.use()` メソッドを使用して、Markdown および HTML コンテンツのレンダリングをカスタマイズできます。このメソッドにより、特定のタグのデフォルトレンダリングをオーバーライドできます。
770
+
771
+ ```tsx
772
+ import { useIntlayer } from "preact-intlayer";
773
+
774
+ const { myMarkdownContent, myHtmlContent } = useIntlayer("my-component");
755
775
 
756
- <Step number={1} title="コンポーネントのコンテンツを抽出する" isOptional={true}>
776
+ // ...
777
+
778
+ return (
779
+ <div>
780
+ {/* 基本的なレンダリング */}
781
+ {myMarkdownContent}
782
+
783
+ {/* Markdown のカスタムレンダリング */}
784
+ {myMarkdownContent.use({
785
+ h1: (props) => <h1 style={{ color: "red" }} {...props} />,
786
+ })}
787
+
788
+ {/* HTML の基本的なレンダリング */}
789
+ {myHtmlContent}
790
+
791
+ {/* HTML のカスタムレンダリング */}
792
+ {myHtmlContent.use({
793
+ b: (props) => <strong style={{ color: "blue" }} {...props} />,
794
+ })}
795
+ </div>
796
+ );
797
+ ```
798
+
799
+ </Step>
757
800
 
758
- 既存のコードベースがある場合、数千のファイルを変換するのは時間がかかることがあります。
801
+ <Step number={12} title="コンポーネントのコンテンツを抽出する" isOptional={true}>
759
802
 
760
- このプロセスを容易にするために、Intlayerは、コンポーネントを変換しコンテンツを抽出するための [コンパイラ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compiler.md) / [エクストラクタ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/extract.md) を提案しています。
803
+ 既存の codebase がある場合、数千のファイルを変換するのは時間がかかる可能性があります。
761
804
 
762
- セットアップするには、`intlayer.config.ts` ファイルに `compiler` セクションを追加します。
805
+ このプロセスを簡素化するために、Intlayer は[コンパイラ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compiler.md) / [エクストラクタ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/extract.md)を提供して、コンポーネントを変換し、コンテンツを抽出します。
806
+
807
+ これを設定するには、`intlayer.config.ts` ファイルに `compiler` セクションを追加できます:
763
808
 
764
809
  ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
765
810
  import { type IntlayerConfig } from "intlayer";
766
811
 
767
812
  const config: IntlayerConfig = {
768
- // ... 他の構成
813
+ // ... 残りの設定
769
814
  compiler: {
770
815
  /**
771
- * コンパイラを有効にするかどうかを指定します。
816
+ * コンパイラを有効にするかどうかを示します。
772
817
  */
773
818
  enabled: true,
774
819
 
775
820
  /**
776
- * 出力ファイルのパスを定義します。
821
+ * 出力ファイルパスを定義します
777
822
  */
778
823
  output: ({ fileName, extension }) => `./${fileName}${extension}`,
779
824
 
780
825
  /**
781
- * 変換後にコンポーネントを保存するかどうかを指定します。これにより、コンパイラを一度だけ実行してアプリを変換し、その後削除することができます。
826
+ * 変換後、コンポーネントを保存するかどうかを示します。
827
+ *
828
+ * - `true` の場合、コンパイラはディスク上のコンポーネントファイルを上書きします。したがって、変換は永続的になり、コンパイラは次のプロセスで変換をスキップします。このように、コンパイラはアプリを変換してから削除できます。
829
+ *
830
+ * - `false` の場合、コンパイラはビルド出力のコード内にのみ `useIntlayer()` 関数呼び出しを挿入し、ベース codebase をそのままにします。変換はメモリ内でのみ行われます。
782
831
  */
783
832
  saveComponents: false,
784
833
 
785
834
  /**
786
- * 辞書キーの接頭辞
835
+ * 辞書キープレフィックス
787
836
  */
788
837
  dictionaryKeyPrefix: "",
789
838
  },
@@ -793,9 +842,9 @@ export default config;
793
842
  ```
794
843
 
795
844
  <Tabs>
796
- <Tab value='抽出コマンド'>
845
+ <Tab value='Extract command'>
797
846
 
798
- コンポーネントを変換してコンテンツを抽出するためにエクストラクタを実行します
847
+ エクストラクタを実行してコンポーネントを変換し、コンテンツを抽出します
799
848
 
800
849
  ```bash packageManager="npm"
801
850
  npx intlayer extract
@@ -814,39 +863,22 @@ bun x intlayer extract
814
863
  ```
815
864
 
816
865
  </Tab>
817
- <Tab value='Babelコンパイラ'>
818
-
819
- > Since v9, the `intlayerCompiler` is included in the `intlayer` plugin. So you don't need to add it manually.
820
-
821
- ```bash packageManager="npm"
822
- npm install @intlayer/babel --save-dev
823
- ```
824
-
825
- ```bash packageManager="pnpm"
826
- pnpm add @intlayer/babel --save-dev
827
- ```
866
+ <Tab value='Babel compiler'>
828
867
 
829
- ```bash packageManager="yarn"
830
- yarn add @intlayer/babel --save-dev
831
- ```
868
+ > v9 以降、`intlayerCompiler` は `intlayer` プラグインに含まれています。したがって、手動で追加する必要はありません。
832
869
 
833
- ```bash packageManager="bun"
834
- bun add @intlayer/babel --dev
835
- ```
870
+ `vite.config.ts` を更新して、`intlayerCompiler` プラグインを含めます:
836
871
 
837
- ```js fileName="babel.config.js"
838
- const {
839
- intlayerExtractBabelPlugin,
840
- getExtractPluginOptions,
841
- } = require("@intlayer/babel");
872
+ ```ts fileName="vite.config.ts"
873
+ import { defineConfig } from "vite";
874
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
842
875
 
843
- module.exports = {
844
- presets: ["next/babel"],
876
+ export default defineConfig({
845
877
  plugins: [
846
- // コンポーネントから辞書へコンテンツを抽出する
847
- [intlayerExtractBabelPlugin, getExtractPluginOptions()],
878
+ intlayer(),
879
+ intlayerCompiler(), // コンパイラプラグインを追加
848
880
  ],
849
- };
881
+ });
850
882
  ```
851
883
 
852
884
  ```bash packageManager="npm"
@@ -862,7 +894,7 @@ yarn build # または yarn dev
862
894
  ```
863
895
 
864
896
  ```bash packageManager="bun"
865
- bun run build # Or bun run dev
897
+ bun run build # または bun run dev
866
898
  ```
867
899
 
868
900
  </Tab>
@@ -30,9 +30,7 @@ history:
30
30
  author: aymericzip
31
31
  ---
32
32
 
33
- # IntlayerVite and Vueを翻訳する | 国際化(i18n)
34
-
35
- GitHub の [アプリケーションテンプレート](https://github.com/aymericzip/intlayer-vite-vue-template) を参照してください。
33
+ # Intlayerを使用してViteおよびVueウェブサイトを国際化する | 国際化(i18n)
36
34
 
37
35
  ## 目次
38
36
 
@@ -252,20 +252,14 @@ ChatGPT で MCP サーバーを設定するには、[公式ドキュメント](h
252
252
 
253
253
  [公式ドキュメント](https://modelcontextprotocol.io/quickstart/user)に従って、Claude Code で MCP サーバーを設定してください。
254
254
 
255
- ## CLIを使ったMCPサーバーの利用
255
+ ### ローカルサーバー (stdio) (推奨)
256
256
 
257
- Intlayer MCPサーバーは、テスト、デバッグ、または他のツールとの統合のために、コマンドラインから直接実行することもできます。
257
+ Intlayer MCP サーバーを Claude Code に stdio を使用して接続するには:
258
258
 
259
259
  ```bash
260
- # グローバルにインストール
261
- npm install -g @intlayer/mcp
262
-
263
- # またはnpxで直接使用(推奨)
264
- npx @intlayer/mcp
260
+ claude mcp add intlayer npx -y @intlayer/mcp
265
261
  ```
266
262
 
267
- ---
268
-
269
263
  ### リモートサーバー (Streamable HTTP)
270
264
 
271
265
  Intlayer MCPサーバーをStreamable HTTP (SSE)を使用してClaude Codeに接続するには:
@@ -63,30 +63,32 @@ getLocalizedUrl(
63
63
  - **Type**: `Locales`
64
64
  - **Required**: Yes
65
65
 
66
- ## パラメーター
67
-
68
- - `url: string`
69
- - **説明**: ロケールのプレフィックスを付加する元の URL 文字列。
70
- - **型**: `string`
71
-
72
- - `currentLocale: Locales`
73
- - **説明**: URL をローカライズする対象の現在のロケール。
74
- - **型**: `Locales`
75
-
76
- - `locales: Locales[]`
77
- - **説明**: サポートされているロケールのオプション配列。デフォルトでは、プロジェクトで設定されたロケールが提供されます。
78
- - **型**: `Locales[]`
79
- - **デフォルト**: [`プロジェクト設定`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md#middleware)
80
-
81
- - `defaultLocale: Locales`
82
- - **説明**: アプリケーションのデフォルトロケール。デフォルトでは、プロジェクトで設定されたデフォルトロケールが提供されます。
83
- - **型**: `Locales`
84
- - **デフォルト**: [`プロジェクト設定`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md#middleware)
85
-
86
- - `prefixDefault: boolean`
87
- - **説明**: デフォルトロケールの URL にプレフィックスを付けるかどうか。デフォルトでは、プロジェクトで設定された値が提供されます。
88
- - **型**: `boolean`
89
- - **デフォルト**: [`プロジェクト設定`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md#middleware)
66
+ ### オプションパラメータ
67
+
68
+ - `options?: object`
69
+ - **Description**: URL ローカライゼーション動作の設定オブジェクト。
70
+ - **Type**: `object`
71
+ - **Required**: No (Optional)
72
+
73
+ - `options.locales?: Locales[]`
74
+ - **Description**: サポートされているロケールの配列。指定されない場合、プロジェクト設定から設定されたロケールを使用します。
75
+ - **Type**: `Locales[]`
76
+ - **Default**: [`プロジェクト設定`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md#middleware)
77
+
78
+ - `options.defaultLocale?: Locales`
79
+ - **Description**: アプリケーションのデフォルトロケール。指定されない場合、プロジェクト設定から設定されたデフォルトロケールを使用します。
80
+ - **Type**: `Locales`
81
+ - **Default**: [`プロジェクト設定`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md#middleware)
82
+
83
+ - `options.mode?: 'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
84
+ - **Description**: ロケール処理のための URL ルーティングモード。指定されない場合、プロジェクト設定から設定されたモードを使用します。
85
+ - **Type**: `'prefix-no-default' | 'prefix-all' | 'no-prefix' | 'search-params'`
86
+ - **Default**: [`プロジェクト設定`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md#middleware)
87
+ - **Modes**:
88
+ - `prefix-no-default`: デフォルトロケールにはプレフィックスなし、その他すべてにプレフィックスあり
89
+ - `prefix-all`: すべてのロケール(デフォルトを含む)にプレフィックスあり
90
+ - `no-prefix`: URL にロケールプレフィックスなし
91
+ - `search-params`: ロケールのクエリパラメータを使用(例:`?locale=fr`)
90
92
 
91
93
  ### 戻り値
92
94
 
@@ -50,26 +50,12 @@ getMultilingualUrls(
50
50
 
51
51
  ## パラメータ
52
52
 
53
- ## パラメータ
53
+ ### 必須パラメータ
54
54
 
55
55
  - `url: string`
56
- - **説明**: ロケールを付加する元の URL 文字列。
56
+ - **説明**: ロケールでプレフィックスを付与する元のURL文字列。
57
57
  - **型**: `string`
58
-
59
- - `locales: Locales[]`
60
- - **説明**: オプションのサポートされているロケールの配列。プロジェクトで設定されたロケールがデフォルト。
61
- - **型**: `Locales[]`
62
- - **デフォルト**: `localesDefault`
63
-
64
- - `defaultLocale: Locales`
65
- - **説明**: アプリケーションのデフォルトロケール。プロジェクトで設定されたデフォルトロケールがデフォルト。
66
- - **型**: `Locales`
67
- - **デフォルト**: `defaultLocaleDefault`
68
-
69
- - `prefixDefault: boolean`
70
- - **説明**: デフォルトロケールにプレフィックスを付けるかどうか。プロジェクトで設定された値がデフォルト。
71
- - **型**: `boolean`
72
- - **デフォルト**: `prefixDefaultDefault`
58
+ - **必須**: はい
73
59
 
74
60
  ### オプションパラメータ
75
61
 
@@ -48,3 +48,18 @@ import "vite-intlayer";
48
48
  | `intlayerProxy` | ロケール検出とルーティングを処理する開発用ミドルウェアプラグイン。 | - |
49
49
  | `intlayerMiddleware` | (**非推奨**) `intlayerProxy` のエイリアス。 | - |
50
50
  | `intlayerPrune` | ビルド時に未使用の辞書をツリーシェイクしてプルーンするプラグイン。 | [intlayerPrune](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/vite-intlayer/intlayerPrune.md) |
51
+
52
+ ### ユーティリティ
53
+
54
+ | エクスポート | 説明 | 関連ドキュメント |
55
+ | ---------------------------- | --------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
56
+ | `createIntlayerProxyHandler` | フレームワークに依存しないNode.js `(req, res, next)` ミドルウェアをロケールルーティングロジック付きで返します。 | [intlayerProxy](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/vite-intlayer/intlayerProxy.md) |
57
+
58
+ ### Types
59
+
60
+ | Export | Description |
61
+ | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
62
+ | `IntlayerPluginOptions` | `intlayer()` で受け入れられるオプション。`GetConfigurationOptions` を `compatCallers` と `proxy` で拡張します。 |
63
+ | `IntlayerProxyPluginOptions` | `intlayerProxy()` と `createIntlayerProxyHandler()` で受け入れられるオプション。`ignore` と `configOptions` を含みます。 |
64
+ | `IntlayerCompilerOptions` | `intlayerCompiler()` で受け入れられるオプション。`configOptions` と `compilerConfig` を含みます。 |
65
+ | `CompatCallerConfig` | `@intlayer/babel` から再エクスポート。フィールド使用分析のための compat-adapter caller パターンを説明します。 |
@@ -39,11 +39,126 @@ export default defineConfig({
39
39
  });
40
40
  ```
41
41
 
42
- ## 説明
42
+ ## オプション
43
43
 
44
- このプラグインは次の処理を行います:
44
+ ```ts
45
+ import type { IntlayerPluginOptions } from "vite-intlayer";
46
+ ```
47
+
48
+ `IntlayerPluginOptions` は `GetConfigurationOptions` (参照: `@intlayer/config`) を拡張し、以下の追加フィールドを含みます:
49
+
50
+ | オプション | 型 | デフォルト | 説明 |
51
+ | --------------- | ------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------- |
52
+ | `compatCallers` | `CompatCallerConfig[]` | `[]` | compat-adapterパッケージ(例: `@intlayer/react-i18next`)用の追加呼び出しパターン。ビルド時にfield-usage analyserに渡されます。 |
53
+ | `proxy` | `{ ignore?: (req) => boolean }` | `undefined` | バンドルされたlocale-routingプロキシに転送されるオプション。`ignore`を使用して特定のパス(例: APIルート)をlocale routingから除外します。 |
54
+
55
+ その他すべてのオプション(`override`、`configFile`など)は `getConfiguration()` に直接転送されます。
56
+
57
+ ### 例
58
+
59
+ #### ロケール ルーティングから API ルートを除外する
60
+
61
+ ```ts
62
+ // vite.config.ts
63
+ import { defineConfig } from "vite";
64
+ import { intlayer } from "vite-intlayer";
65
+
66
+ export default defineConfig({
67
+ plugins: [
68
+ intlayer({
69
+ proxy: {
70
+ ignore: (req) => req.url?.startsWith("/api"),
71
+ },
72
+ }),
73
+ ],
74
+ });
75
+ ```
76
+
77
+ #### カスタムコンフィグファイルパスを使用する場合
78
+
79
+ ```ts
80
+ export default defineConfig({
81
+ plugins: [
82
+ intlayer({
83
+ configFile: "./config/intlayer.config.ts",
84
+ }),
85
+ ],
86
+ });
87
+ ```
88
+
89
+ #### compat-adapter callers を使用する場合
90
+
91
+ ```ts
92
+ import { intlayer } from "vite-intlayer";
93
+ import { reactI18nextCallerConfig } from "@intlayer/react-i18next/plugin";
94
+
95
+ export default defineConfig({
96
+ plugins: [
97
+ intlayer({
98
+ compatCallers: [reactI18nextCallerConfig],
99
+ }),
100
+ ],
101
+ });
102
+ ```
103
+
104
+ ## プラグインが行うこと
105
+
106
+ ### 1. Dictionary preparation
107
+
108
+ ビルドが開始される前に(そして開発環境では1時間ごとに)、`intlayer` は `prepareIntlayer` を呼び出して、すべての `.content.ts` ファイルを最適化された JSON 辞書にコンパイルし、`.intlayer/` に保存します。
109
+
110
+ ### 2. モジュールエイリアス
111
+
112
+ プラグインはViteのresolveエイリアスを追加して、`import { myDict } from 'intlayer/dictionaries/my-dict'` がディスク上のコンパイルされたJSONファイルに解決されるようにします。SSRビルドは `ssr.noExternal` を使用して、すべての `@intlayer/*` パッケージがエイリアスを適用してバンドルされることを確認します。
113
+
114
+ ### 3. Dev-server watcher
115
+
116
+ 開発モードでは `chokidar` ウォッチャーが起動します。`.content.ts` ファイルが変更されると、辞書が再コンパイルされ、Vite の HMR がブラウザに更新を伝播します。
117
+
118
+ ### 4. バンドルされたロケールルーティングプロキシ (v9+)
119
+
120
+ Intlayer v9 以降、`intlayerProxy` ミドルウェアは `intlayer()` 内に自動的に登録されます。以下の処理を担当します:
121
+
122
+ - URL プレフィックス、Cookie、および `Accept-Language` ヘッダーからのロケール検出。
123
+ - 検出されたロケールが現在の URL と一致しない場合の 301 リダイレクト。
124
+ - フレームワークが正しい `[locale]` ルートパラメータを認識するための内部 URL 書き換え。
125
+
126
+ プロキシは Intlayer 設定の `routing.enableProxy`(デフォルト `true`)で制御されます。完全に無効にするには:
127
+
128
+ ```ts
129
+ // intlayer.config.ts
130
+ import { defineConfig } from "intlayer";
131
+
132
+ export default defineConfig({
133
+ routing: { enableProxy: false },
134
+ });
135
+ ```
136
+
137
+ 別の `intlayerProxy()` 呼び出しなしでプロキシの動作をカスタマイズするには、メインプラグインに `proxy` オプションを渡します:
138
+
139
+ ```ts
140
+ intlayer({ proxy: { ignore: (req) => req.url?.startsWith("/api") } });
141
+ ```
142
+
143
+ ルーティング動作の完全なリファレンスについては、[intlayerProxy ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/vite-intlayer/intlayerProxy.md)を参照してください。
144
+
145
+ ### 5. Bundled compiler (v9+)
146
+
147
+ `compiler.enabled` が `true` **かつ** `compiler.output` が Intlayer config で設定されている場合、`intlayer()` は `intlayerCompiler` を自動的に登録します。コンパイラはコンポーネントファイル内に直接記述されたインラインコンテンツ宣言を抽出し、トランスフォーム時に辞書に書き込みます。[intlayerCompiler ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/packages/vite-intlayer/intlayerCompiler.md)を参照してください。
148
+
149
+ ### 6. ビルド最適化
150
+
151
+ 本番環境ビルド中、プラグインは以下を追加します:
152
+
153
+ - **intlayerOptimize** – `useIntlayer('key')` → `useDictionary(hash)` を書き直し、直接 JSON インポートをインジェクトする Babel トランスフォーム。
154
+ - **intlayerPrune** – dictionary JSON から使用されていないコンテンツフィールドを削除します。
155
+ - **intlayerMinify** – dictionary JSON をコンパクト化し、必要に応じてフィールド名をマングルします。
156
+
157
+ これらは開発モードでは無効です。
158
+
159
+ ## 廃止予定のエイリアス
45
160
 
46
- 1. **辞書の準備**: ビルドまたは開発プロセスの開始時に、辞書を最適化されたファイルにコンパイルします。
47
- 2. **ウォッチモード**: 開発モードでは、辞書ファイルの変更を監視し、自動的に再コンパイルします。
48
- 3. **エイリアス**: アプリケーション内で辞書にアクセスするためのエイリアスを提供します。
49
- 4. **ツリーシェイキング**: `intlayerPrune` プラグインを通じて未使用の翻訳のツリーシェイキングをサポートします。
161
+ | 廃止予定のエクスポート | 置き換え |
162
+ | ---------------------- | ---------- |
163
+ | `intlayerPlugin` | `intlayer` |
164
+ | `intLayerPlugin` | `intlayer` |
@@ -28,18 +28,91 @@ author: aymericzip
28
28
 
29
29
  `intlayerPrune` Vite プラグインは、アプリケーションのバンドルから未使用の辞書をツリーシェイクおよびプルーニングするために使用します。これにより、必要な多言語コンテンツのみを含めることで、最終的なバンドルサイズを削減できます。
30
30
 
31
- ## 使用方法
31
+ ## 使用法
32
+
33
+ ### `intlayer()` の一部として(推奨)
34
+
35
+ Intlayer の設定を通じてプルーニングを有効にすると、メインプラグインがすべてを処理します:
36
+
37
+ ```ts
38
+ // intlayer.config.ts
39
+ import { defineConfig } from "intlayer";
40
+
41
+ export default defineConfig({
42
+ build: {
43
+ optimize: true, // プルーニングと縮小化の両方を有効にします
44
+ },
45
+ });
46
+ ```
47
+
48
+ ```ts
49
+ // vite.config.ts
50
+ import { defineConfig } from "vite";
51
+ import { intlayer } from "vite-intlayer";
52
+
53
+ export default defineConfig({
54
+ plugins: [intlayer()],
55
+ });
56
+ ```
57
+
58
+ ### スタンドアロン
59
+
60
+ プラグインスタックを手動で構成している場合、`intlayerPrune` と `intlayerMinify` は `PruneContext` オブジェクトを共有します。このオブジェクトは一度作成して、両方に渡す必要があります:
32
61
 
33
62
  ```ts
34
- // vite.config.ts (Vite 設定ファイル)
63
+ // vite.config.ts
35
64
  import { defineConfig } from "vite";
36
- import { intlayer, intlayerPrune } from "vite-intlayer";
65
+ import { intlayerPrune, intlayerMinify } from "vite-intlayer";
66
+ import { createPruneContext } from "@intlayer/babel";
67
+ import { getConfiguration } from "@intlayer/config/node";
68
+
69
+ const intlayerConfig = getConfiguration();
70
+ const pruneContext = createPruneContext();
37
71
 
38
72
  export default defineConfig({
39
- plugins: [intlayer(), intlayerPrune()],
73
+ plugins: [
74
+ intlayerPrune(intlayerConfig, pruneContext),
75
+ intlayerMinify(intlayerConfig, pruneContext), // オプション、同じコンテキストから読み取ります
76
+ ],
40
77
  });
41
78
  ```
42
79
 
43
- ## 説明
80
+ ## どのように機能するか
81
+
82
+ ### 1. 使用状況分析(buildStart)
83
+
84
+ `buildStart` 中に、`intlayerOptimize` プラグイン(`intlayer()` の一部でもあります)は `build.filesList` にリストされているすべてのコンポーネントソースファイルをスキャンします。`useIntlayer('key')` または `getIntlayer('key')` の各呼び出しについて、どのフィールドがアクセスされているかを正確に記録します。例えば:
85
+
86
+ ```ts
87
+ const { title, description } = useIntlayer("myDict");
88
+ // 記録: myDict → { title, description }
89
+ ```
90
+
91
+ これにより、`transform` 呼び出しが実行される前に `pruneContext.fieldUsageMap` が構築されます。
92
+
93
+ ### 2. JSON pruning (transform, enforce: 'pre')
94
+
95
+ Viteがコンパイル済みの辞書JSONファイルを処理する場合、`intlayerPrune`はViteの組み込みJSON → ESM変換の前に処理を行います。`pruneContext`からfield-usageマップを読み取り、記録された使用セットに含まれていないすべてのcontentフィールドを削除します。
96
+
97
+ 2つのコンテンツ形状がサポートされています:
98
+
99
+ - **Static dictionaries** — `{ nodeType: "translation", translation: { en: {...}, fr: {...} } }`。フィールドは`translation`内のロケールごとに削除されます。
100
+ - **Dynamic (per-locale) dictionaries** — `{ fieldA: ..., fieldB: ... }`のようなflat構造。フィールドはトップレベルで削除されます。
101
+
102
+ ### 3. エッジケース
103
+
104
+ 辞書のコンテンツ構造が認識できない場合(例:異常にネストされた形状)、`pruneContext.dictionariesWithEdgeCases` に追加され、**そのままにされます**。警告がログに出力されます。`intlayerMinify` もこれらの辞書をスキップします。
105
+
106
+ ### 4. Field-rename map
107
+
108
+ Pruning が成功すると、`intlayerPrune` は `pruneContext.dictionaryKeyToFieldRenameMap` も書き込みます。これは元のフィールド名から短いエイリアスへのマッピングです。`intlayerMinify` はこのマップを読み込んで出力 JSON 内のフィールドの名前を変更し、`intlayerOptimize` の Babel rename pass はソースファイル内のプロパティアクセスをそれに応じて更新します。
109
+
110
+ ## アクティベーション条件
111
+
112
+ `intlayerPrune` は以下のすべてが当てはまる場合**のみ**アクティブになります:
113
+
114
+ 1. Vite コマンドが `build` である。
115
+ 2. `build.optimize` が `true` である (または `undefined` で、ビルドではデフォルトで `true`)。
116
+ 3. Intlayer の設定で `build.purge` が `true` である。
44
117
 
45
- このプラグインはソースコードを解析して、実際に使用されている辞書キーを特定します。続いて、バンドルされた辞書ファイルから未使用のコンテンツを削除します。特定のページやコンポーネントで辞書の一部しか使われないような、辞書が多数存在する大規模なプロジェクトで特に有用です。
118
+ `editor.enabled` が `true` の場合、エディターが完全な辞書コンテンツを必要とするため、自動的に**無効化**されます。
@@ -362,6 +362,18 @@ await dictionaryEndpoint(cms).pushDictionaries([myDictionary]);
362
362
 
363
363
  ---
364
364
 
365
+ ## セルフホスティング
366
+
367
+ Intlayer v9は、単一のコマンドで独自のIntlayerインスタンスを実行するためのファーストクラスサポートを提供します。Intlayer Cloudアカウントは必要ありません。
368
+
369
+ ```sh
370
+ curl -fsSL https://intlayer.org/install.sh | sh
371
+ ```
372
+
373
+ インストーラーは`docker-compose.yml`と`.env`をダウンロードし、必要なシークレットを自動生成し、`docker compose up -d`を実行します。ダッシュボード、API、データベース、オブジェクトストレージ、トランザクションメールのすべてがコンテナ内でローカルに実行されます。
374
+
375
+ ---
376
+
365
377
  ## v8からの移行に関する注意点
366
378
 
367
379
  v8からアップグレードする場合、v9には破壊的変更は含まれていません。ただし、主な変更点は次のとおりです。