@intlayer/docs 9.1.3 → 9.3.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 (482) hide show
  1. package/blog/ar/index.md +1 -1
  2. package/blog/ar/rag_powered_documentation_assistant.md +7 -0
  3. package/blog/de/index.md +1 -1
  4. package/blog/de/rag_powered_documentation_assistant.md +6 -0
  5. package/blog/en/index.md +1 -1
  6. package/blog/en-GB/index.md +1 -1
  7. package/blog/en-GB/rag_powered_documentation_assistant.md +6 -0
  8. package/blog/es/index.md +1 -1
  9. package/blog/es/rag_powered_documentation_assistant.md +7 -0
  10. package/blog/fr/i18n_meaning.md +7 -1
  11. package/blog/fr/index.md +1 -1
  12. package/blog/fr/list_i18n_technologies/frameworks/angular.md +5 -1
  13. package/blog/fr/rag_powered_documentation_assistant.md +6 -0
  14. package/blog/hi/index.md +1 -1
  15. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +119 -42
  16. package/blog/hi/rag_powered_documentation_assistant.md +7 -0
  17. package/blog/id/index.md +1 -1
  18. package/blog/id/rag_powered_documentation_assistant.md +6 -0
  19. package/blog/it/index.md +1 -1
  20. package/blog/it/rag_powered_documentation_assistant.md +6 -0
  21. package/blog/ja/index.md +1 -1
  22. package/blog/ja/rag_powered_documentation_assistant.md +7 -0
  23. package/blog/ko/index.md +1 -1
  24. package/blog/ko/list_i18n_technologies/frameworks/react.md +7 -7
  25. package/blog/ko/rag_powered_documentation_assistant.md +6 -0
  26. package/blog/pl/index.md +1 -1
  27. package/blog/pl/rag_powered_documentation_assistant.md +6 -0
  28. package/blog/pt/index.md +1 -1
  29. package/blog/pt/rag_powered_documentation_assistant.md +6 -0
  30. package/blog/ru/index.md +1 -1
  31. package/blog/ru/rag_powered_documentation_assistant.md +7 -0
  32. package/blog/tr/intlayer_with_react-intl.md +3 -1
  33. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +175 -42
  34. package/blog/tr/rag_powered_documentation_assistant.md +6 -0
  35. package/blog/uk/index.md +1 -1
  36. package/blog/uk/rag_powered_documentation_assistant.md +6 -0
  37. package/blog/vi/index.md +1 -1
  38. package/blog/vi/rag_powered_documentation_assistant.md +6 -0
  39. package/blog/zh/index.md +1 -1
  40. package/blog/zh/intlayer_with_i18next.md +87 -28
  41. package/blog/zh/intlayer_with_next-i18next.md +86 -29
  42. package/blog/zh/intlayer_with_next-intl.md +88 -28
  43. package/blog/zh/intlayer_with_react-i18next.md +87 -28
  44. package/blog/zh/intlayer_with_react-intl.md +88 -27
  45. package/blog/zh/intlayer_with_vue-i18n.md +117 -8
  46. package/blog/zh/rag_powered_documentation_assistant.md +6 -0
  47. package/dist/cjs/common.cjs +24 -1
  48. package/dist/cjs/common.cjs.map +1 -1
  49. package/dist/cjs/generated/blog.entry.cjs +58 -31
  50. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  51. package/dist/cjs/generated/docs.entry.cjs +265 -218
  52. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  53. package/dist/cjs/generated/frequentQuestions.entry.cjs +48 -21
  54. package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
  55. package/dist/cjs/generated/legal.entry.cjs +33 -6
  56. package/dist/cjs/generated/legal.entry.cjs.map +1 -1
  57. package/dist/esm/common.mjs +24 -1
  58. package/dist/esm/common.mjs.map +1 -1
  59. package/dist/esm/generated/blog.entry.mjs +58 -31
  60. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  61. package/dist/esm/generated/docs.entry.mjs +265 -218
  62. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  63. package/dist/esm/generated/frequentQuestions.entry.mjs +48 -21
  64. package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
  65. package/dist/esm/generated/legal.entry.mjs +33 -6
  66. package/dist/esm/generated/legal.entry.mjs.map +1 -1
  67. package/dist/types/common.d.ts.map +1 -1
  68. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  69. package/dist/types/generated/docs.entry.d.ts +1 -0
  70. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  71. package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
  72. package/dist/types/generated/legal.entry.d.ts.map +1 -1
  73. package/docs/ar/analytics.md +222 -0
  74. package/docs/ar/autoFill.md +28 -9
  75. package/docs/ar/bundle_optimization.md +58 -25
  76. package/docs/ar/configuration.md +25 -8
  77. package/docs/ar/dictionary/file.md +3 -1
  78. package/docs/ar/dictionary/nesting.md +47 -30
  79. package/docs/ar/formatters.md +148 -193
  80. package/docs/ar/intlayer_CMS.md +152 -0
  81. package/docs/ar/intlayer_with_angular_21.md +9 -9
  82. package/docs/ar/intlayer_with_nextjs_14.md +1 -28
  83. package/docs/ar/intlayer_with_nextjs_15.md +1 -33
  84. package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +40 -83
  85. package/docs/ar/intlayer_with_solid_start.md +1078 -0
  86. package/docs/ar/intlayer_with_vite+vue.md +1 -3
  87. package/docs/ar/live-sync.md +4 -0
  88. package/docs/ar/packages/intlayer/getLocalizedUrl.md +26 -24
  89. package/docs/ar/packages/intlayer/getMultilingualUrls.md +4 -18
  90. package/docs/ar/packages/react-intlayer/useDictionary.md +4 -21
  91. package/docs/ar/packages/react-intlayer/useIntlayer.md +2 -2
  92. package/docs/ar/packages/vite-intlayer/exports.md +15 -0
  93. package/docs/ar/packages/vite-intlayer/intlayer.md +121 -6
  94. package/docs/ar/packages/vite-intlayer/intlayerPrune.md +70 -3
  95. package/docs/ar/releases/v9.md +0 -37
  96. package/docs/ar/self_hosting.md +46 -49
  97. package/docs/bn/bundle_optimization.md +58 -25
  98. package/docs/bn/configuration.md +25 -8
  99. package/docs/bn/intlayer_with_angular_21.md +9 -9
  100. package/docs/cs/bundle_optimization.md +58 -25
  101. package/docs/cs/configuration.md +25 -8
  102. package/docs/cs/intlayer_with_angular_21.md +9 -9
  103. package/docs/de/analytics.md +222 -0
  104. package/docs/de/autoFill.md +28 -9
  105. package/docs/de/bundle_optimization.md +58 -25
  106. package/docs/de/configuration.md +25 -8
  107. package/docs/de/dictionary/file.md +3 -1
  108. package/docs/de/dictionary/nesting.md +47 -31
  109. package/docs/de/formatters.md +208 -334
  110. package/docs/de/intlayer_CMS.md +66 -15
  111. package/docs/de/intlayer_with_angular_21.md +9 -9
  112. package/docs/de/intlayer_with_nestjs.md +11 -7
  113. package/docs/de/intlayer_with_nextjs_14.md +1 -28
  114. package/docs/de/intlayer_with_nextjs_15.md +1 -33
  115. package/docs/de/intlayer_with_solid_start.md +1078 -0
  116. package/docs/de/intlayer_with_vite+vue.md +1 -3
  117. package/docs/de/live-sync.md +4 -0
  118. package/docs/de/packages/intlayer/getLocalizedUrl.md +33 -25
  119. package/docs/de/packages/intlayer/getMultilingualUrls.md +4 -18
  120. package/docs/de/packages/react-intlayer/useDictionary.md +2 -5
  121. package/docs/de/packages/vite-intlayer/exports.md +15 -0
  122. package/docs/de/packages/vite-intlayer/intlayer.md +121 -6
  123. package/docs/de/packages/vite-intlayer/intlayerPrune.md +77 -4
  124. package/docs/de/releases/v9.md +0 -15
  125. package/docs/de/self_hosting.md +46 -50
  126. package/docs/en/bundle_optimization.md +51 -23
  127. package/docs/en/cli/doc-review.md +13 -2
  128. package/docs/en/configuration.md +24 -15
  129. package/docs/en/intlayer_with_angular_21.md +9 -9
  130. package/docs/en/intlayer_with_solid_start.md +1091 -0
  131. package/docs/en/intlayer_with_vite+solid.md +12 -0
  132. package/docs/en/live-sync.md +4 -0
  133. package/docs/en-GB/analytics.md +222 -0
  134. package/docs/en-GB/autoFill.md +26 -7
  135. package/docs/en-GB/bundle_optimization.md +58 -25
  136. package/docs/en-GB/configuration.md +25 -8
  137. package/docs/en-GB/dictionary/file.md +2 -0
  138. package/docs/en-GB/dictionary/nesting.md +64 -205
  139. package/docs/en-GB/formatters.md +146 -181
  140. package/docs/en-GB/intlayer_CMS.md +152 -0
  141. package/docs/en-GB/intlayer_with_angular_21.md +9 -9
  142. package/docs/en-GB/intlayer_with_nestjs.md +6 -2
  143. package/docs/en-GB/intlayer_with_nextjs_14.md +0 -27
  144. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -33
  145. package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +40 -82
  146. package/docs/en-GB/intlayer_with_solid_start.md +1078 -0
  147. package/docs/en-GB/intlayer_with_vite+vue.md +1 -3
  148. package/docs/en-GB/live-sync.md +4 -0
  149. package/docs/en-GB/packages/intlayer/getLocalizedUrl.md +30 -22
  150. package/docs/en-GB/packages/intlayer/getMultilingualUrls.md +16 -48
  151. package/docs/en-GB/packages/vite-intlayer/exports.md +15 -0
  152. package/docs/en-GB/packages/vite-intlayer/intlayer.md +121 -6
  153. package/docs/en-GB/packages/vite-intlayer/intlayerPrune.md +77 -4
  154. package/docs/en-GB/self_hosting.md +60 -49
  155. package/docs/es/analytics.md +222 -0
  156. package/docs/es/autoFill.md +28 -9
  157. package/docs/es/bundle_optimization.md +58 -25
  158. package/docs/es/configuration.md +24 -7
  159. package/docs/es/dictionary/file.md +3 -1
  160. package/docs/es/dictionary/nesting.md +47 -30
  161. package/docs/es/formatters.md +114 -168
  162. package/docs/es/intlayer_CMS.md +35 -10
  163. package/docs/es/intlayer_with_angular_21.md +9 -9
  164. package/docs/es/intlayer_with_nextjs_14.md +1 -28
  165. package/docs/es/intlayer_with_nextjs_15.md +1 -33
  166. package/docs/es/intlayer_with_solid_start.md +1078 -0
  167. package/docs/es/live-sync.md +4 -0
  168. package/docs/es/packages/intlayer/getLocalizedUrl.md +31 -23
  169. package/docs/es/packages/intlayer/getMultilingualUrls.md +4 -18
  170. package/docs/es/packages/vite-intlayer/exports.md +15 -0
  171. package/docs/es/packages/vite-intlayer/intlayer.md +121 -6
  172. package/docs/es/packages/vite-intlayer/intlayerPrune.md +69 -2
  173. package/docs/es/releases/v9.md +0 -15
  174. package/docs/es/self_hosting.md +46 -49
  175. package/docs/fr/analytics.md +222 -0
  176. package/docs/fr/autoFill.md +27 -8
  177. package/docs/fr/bundle_optimization.md +58 -25
  178. package/docs/fr/configuration.md +25 -8
  179. package/docs/fr/dictionary/file.md +2 -0
  180. package/docs/fr/dictionary/nesting.md +37 -184
  181. package/docs/fr/formatters.md +95 -236
  182. package/docs/fr/intlayer_CMS.md +66 -15
  183. package/docs/fr/intlayer_with_angular_21.md +9 -9
  184. package/docs/fr/intlayer_with_nextjs_14.md +1 -28
  185. package/docs/fr/intlayer_with_nextjs_15.md +1 -33
  186. package/docs/fr/intlayer_with_solid_start.md +1078 -0
  187. package/docs/fr/live-sync.md +4 -0
  188. package/docs/fr/packages/intlayer/getLocalizedUrl.md +37 -27
  189. package/docs/fr/packages/intlayer/getMultilingualUrls.md +18 -20
  190. package/docs/fr/packages/vite-intlayer/exports.md +15 -0
  191. package/docs/fr/packages/vite-intlayer/intlayer.md +121 -6
  192. package/docs/fr/packages/vite-intlayer/intlayerPrune.md +77 -4
  193. package/docs/fr/releases/v9.md +0 -15
  194. package/docs/fr/self_hosting.md +46 -49
  195. package/docs/hi/analytics.md +222 -0
  196. package/docs/hi/autoFill.md +28 -9
  197. package/docs/hi/bundle_optimization.md +58 -25
  198. package/docs/hi/configuration.md +25 -8
  199. package/docs/hi/dictionary/file.md +3 -1
  200. package/docs/hi/dictionary/nesting.md +47 -30
  201. package/docs/hi/formatters.md +233 -334
  202. package/docs/hi/how_works_intlayer.md +3 -1
  203. package/docs/hi/intlayer_CMS.md +152 -0
  204. package/docs/hi/intlayer_with_angular_21.md +9 -9
  205. package/docs/hi/intlayer_with_nestjs.md +11 -7
  206. package/docs/hi/intlayer_with_nextjs_14.md +1 -28
  207. package/docs/hi/intlayer_with_nextjs_15.md +1 -33
  208. package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +40 -83
  209. package/docs/hi/intlayer_with_solid_start.md +1077 -0
  210. package/docs/hi/intlayer_with_vite+preact.md +56 -49
  211. package/docs/hi/intlayer_with_vite+react.md +48 -41
  212. package/docs/hi/intlayer_with_vite+solid.md +32 -41
  213. package/docs/hi/intlayer_with_vite+vue.md +49 -44
  214. package/docs/hi/live-sync.md +4 -0
  215. package/docs/hi/packages/intlayer/getLocalizedUrl.md +26 -24
  216. package/docs/hi/packages/intlayer/getMultilingualUrls.md +4 -18
  217. package/docs/hi/packages/next-intlayer/t.md +33 -1
  218. package/docs/hi/packages/react-intlayer/useDictionary.md +4 -21
  219. package/docs/hi/packages/vite-intlayer/exports.md +15 -0
  220. package/docs/hi/packages/vite-intlayer/intlayer.md +121 -6
  221. package/docs/hi/packages/vite-intlayer/intlayerPrune.md +78 -5
  222. package/docs/hi/plugins/sync-json.md +9 -9
  223. package/docs/hi/releases/v9.md +0 -15
  224. package/docs/hi/self_hosting.md +38 -51
  225. package/docs/id/analytics.md +223 -0
  226. package/docs/id/bundle_optimization.md +58 -25
  227. package/docs/id/configuration.md +25 -8
  228. package/docs/id/dictionary/nesting.md +37 -184
  229. package/docs/id/formatters.md +208 -305
  230. package/docs/id/intlayer_CMS.md +164 -0
  231. package/docs/id/intlayer_with_angular_21.md +9 -9
  232. package/docs/id/intlayer_with_nextjs_14.md +1 -26
  233. package/docs/id/intlayer_with_react_router_v7_fs_routes.md +70 -63
  234. package/docs/id/intlayer_with_solid_start.md +1078 -0
  235. package/docs/id/live-sync.md +4 -0
  236. package/docs/id/packages/intlayer/getMultilingualUrls.md +4 -18
  237. package/docs/id/packages/react-intlayer/useIntlayer.md +2 -2
  238. package/docs/id/packages/vite-intlayer/exports.md +15 -0
  239. package/docs/id/packages/vite-intlayer/intlayer.md +121 -6
  240. package/docs/id/packages/vite-intlayer/intlayerPrune.md +78 -5
  241. package/docs/id/releases/v9.md +12 -0
  242. package/docs/id/self_hosting.md +61 -50
  243. package/docs/it/analytics.md +222 -0
  244. package/docs/it/autoFill.md +27 -8
  245. package/docs/it/bundle_optimization.md +58 -25
  246. package/docs/it/configuration.md +25 -8
  247. package/docs/it/dictionary/file.md +3 -1
  248. package/docs/it/dictionary/nesting.md +47 -30
  249. package/docs/it/formatters.md +114 -168
  250. package/docs/it/intlayer_CMS.md +66 -15
  251. package/docs/it/intlayer_with_angular_21.md +9 -9
  252. package/docs/it/intlayer_with_nestjs.md +11 -7
  253. package/docs/it/intlayer_with_nextjs_14.md +1 -28
  254. package/docs/it/intlayer_with_nextjs_15.md +1 -33
  255. package/docs/it/intlayer_with_solid_start.md +1078 -0
  256. package/docs/it/intlayer_with_vite+vue.md +1 -3
  257. package/docs/it/live-sync.md +4 -0
  258. package/docs/it/packages/intlayer/getLocalizedUrl.md +34 -26
  259. package/docs/it/packages/intlayer/getMultilingualUrls.md +4 -18
  260. package/docs/it/packages/react-intlayer/useDictionary.md +4 -21
  261. package/docs/it/packages/vite-intlayer/exports.md +15 -0
  262. package/docs/it/packages/vite-intlayer/intlayer.md +121 -6
  263. package/docs/it/packages/vite-intlayer/intlayerPrune.md +77 -4
  264. package/docs/it/releases/v9.md +0 -15
  265. package/docs/it/self_hosting.md +60 -49
  266. package/docs/ja/analytics.md +222 -0
  267. package/docs/ja/autoFill.md +28 -9
  268. package/docs/ja/bundle_optimization.md +58 -25
  269. package/docs/ja/configuration.md +25 -8
  270. package/docs/ja/dictionary/content_file.md +15 -7
  271. package/docs/ja/dictionary/file.md +3 -1
  272. package/docs/ja/dictionary/nesting.md +47 -30
  273. package/docs/ja/formatters.md +133 -187
  274. package/docs/ja/intlayer_visual_editor.md +3 -1
  275. package/docs/ja/intlayer_with_angular_21.md +6 -6
  276. package/docs/ja/intlayer_with_nestjs.md +2 -12
  277. package/docs/ja/intlayer_with_nextjs_14.md +1 -28
  278. package/docs/ja/intlayer_with_nextjs_15.md +1 -33
  279. package/docs/ja/intlayer_with_react_router_v7.md +456 -20
  280. package/docs/ja/intlayer_with_solid_start.md +1078 -0
  281. package/docs/ja/intlayer_with_vite+preact.md +73 -41
  282. package/docs/ja/intlayer_with_vite+vue.md +1 -3
  283. package/docs/ja/live-sync.md +4 -0
  284. package/docs/ja/mcp_server.md +3 -9
  285. package/docs/ja/packages/intlayer/getLocalizedUrl.md +26 -24
  286. package/docs/ja/packages/intlayer/getMultilingualUrls.md +3 -17
  287. package/docs/ja/packages/vite-intlayer/exports.md +15 -0
  288. package/docs/ja/packages/vite-intlayer/intlayer.md +121 -6
  289. package/docs/ja/packages/vite-intlayer/intlayerPrune.md +79 -6
  290. package/docs/ja/releases/v9.md +12 -0
  291. package/docs/ja/self_hosting.md +46 -50
  292. package/docs/ko/analytics.md +222 -0
  293. package/docs/ko/autoFill.md +28 -9
  294. package/docs/ko/bundle_optimization.md +58 -25
  295. package/docs/ko/configuration.md +25 -8
  296. package/docs/ko/dictionary/file.md +3 -1
  297. package/docs/ko/dictionary/nesting.md +47 -30
  298. package/docs/ko/formatters.md +133 -187
  299. package/docs/ko/intlayer_with_angular_21.md +9 -9
  300. package/docs/ko/intlayer_with_lynx+react.md +133 -39
  301. package/docs/ko/intlayer_with_nextjs_14.md +1 -28
  302. package/docs/ko/intlayer_with_nextjs_15.md +1 -33
  303. package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +40 -188
  304. package/docs/ko/intlayer_with_solid_start.md +1078 -0
  305. package/docs/ko/intlayer_with_vite+preact.md +57 -23
  306. package/docs/ko/intlayer_with_vite+vue.md +1 -3
  307. package/docs/ko/live-sync.md +4 -0
  308. package/docs/ko/packages/intlayer/getLocalizedUrl.md +26 -24
  309. package/docs/ko/packages/intlayer/getMultilingualUrls.md +4 -18
  310. package/docs/ko/packages/vite-intlayer/exports.md +15 -0
  311. package/docs/ko/packages/vite-intlayer/intlayer.md +121 -6
  312. package/docs/ko/packages/vite-intlayer/intlayerPrune.md +79 -6
  313. package/docs/ko/releases/v9.md +12 -0
  314. package/docs/ko/self_hosting.md +60 -49
  315. package/docs/nl/bundle_optimization.md +58 -25
  316. package/docs/nl/configuration.md +25 -8
  317. package/docs/nl/intlayer_with_angular_21.md +9 -9
  318. package/docs/pl/analytics.md +220 -0
  319. package/docs/pl/bundle_optimization.md +58 -25
  320. package/docs/pl/configuration.md +25 -8
  321. package/docs/pl/dictionary/nesting.md +47 -30
  322. package/docs/pl/formatters.md +208 -305
  323. package/docs/pl/intlayer_CMS.md +152 -0
  324. package/docs/pl/intlayer_with_angular_21.md +9 -9
  325. package/docs/pl/intlayer_with_nextjs_14.md +1 -26
  326. package/docs/pl/intlayer_with_solid_start.md +1078 -0
  327. package/docs/pl/live-sync.md +4 -0
  328. package/docs/pl/packages/intlayer/getMultilingualUrls.md +4 -18
  329. package/docs/pl/packages/react-intlayer/useDictionary.md +2 -19
  330. package/docs/pl/packages/vite-intlayer/exports.md +15 -0
  331. package/docs/pl/packages/vite-intlayer/intlayer.md +121 -6
  332. package/docs/pl/packages/vite-intlayer/intlayerPrune.md +77 -4
  333. package/docs/pl/releases/v9.md +0 -15
  334. package/docs/pl/self_hosting.md +60 -49
  335. package/docs/pt/analytics.md +222 -0
  336. package/docs/pt/bundle_optimization.md +58 -24
  337. package/docs/pt/configuration.md +25 -8
  338. package/docs/pt/dictionary/file.md +3 -1
  339. package/docs/pt/dictionary/nesting.md +47 -30
  340. package/docs/pt/formatters.md +112 -168
  341. package/docs/pt/intlayer_CMS.md +66 -15
  342. package/docs/pt/intlayer_with_angular_21.md +9 -9
  343. package/docs/pt/intlayer_with_astro_lit.md +26 -1
  344. package/docs/pt/intlayer_with_nextjs_14.md +1 -28
  345. package/docs/pt/intlayer_with_nextjs_15.md +1 -33
  346. package/docs/pt/intlayer_with_solid_start.md +1078 -0
  347. package/docs/pt/intlayer_with_vite+vue.md +1 -3
  348. package/docs/pt/live-sync.md +4 -0
  349. package/docs/pt/packages/intlayer/getLocalizedUrl.md +34 -26
  350. package/docs/pt/packages/intlayer/getMultilingualUrls.md +4 -18
  351. package/docs/pt/packages/vite-intlayer/exports.md +15 -0
  352. package/docs/pt/packages/vite-intlayer/intlayer.md +121 -6
  353. package/docs/pt/packages/vite-intlayer/intlayerPrune.md +78 -6
  354. package/docs/pt/releases/v9.md +0 -15
  355. package/docs/pt/self_hosting.md +60 -49
  356. package/docs/ru/analytics.md +222 -0
  357. package/docs/ru/autoFill.md +27 -8
  358. package/docs/ru/bundle_optimization.md +58 -25
  359. package/docs/ru/configuration.md +25 -8
  360. package/docs/ru/dictionary/file.md +3 -1
  361. package/docs/ru/dictionary/nesting.md +64 -205
  362. package/docs/ru/formatters.md +108 -128
  363. package/docs/ru/intlayer_with_angular_21.md +9 -9
  364. package/docs/ru/intlayer_with_nextjs_14.md +1 -28
  365. package/docs/ru/intlayer_with_nextjs_15.md +1 -33
  366. package/docs/ru/intlayer_with_solid_start.md +1078 -0
  367. package/docs/ru/intlayer_with_vite+vue.md +1 -3
  368. package/docs/ru/live-sync.md +4 -0
  369. package/docs/ru/packages/intlayer/getLocalizedUrl.md +34 -26
  370. package/docs/ru/packages/intlayer/getMultilingualUrls.md +4 -18
  371. package/docs/ru/packages/react-intlayer/useDictionary.md +4 -21
  372. package/docs/ru/packages/vite-intlayer/exports.md +15 -0
  373. package/docs/ru/packages/vite-intlayer/intlayer.md +121 -6
  374. package/docs/ru/packages/vite-intlayer/intlayerPrune.md +77 -4
  375. package/docs/ru/releases/v9.md +0 -15
  376. package/docs/ru/self_hosting.md +60 -49
  377. package/docs/tr/analytics.md +222 -0
  378. package/docs/tr/autoFill.md +28 -9
  379. package/docs/tr/bundle_optimization.md +58 -25
  380. package/docs/tr/configuration.md +25 -8
  381. package/docs/tr/dictionary/file.md +2 -0
  382. package/docs/tr/dictionary/nesting.md +47 -30
  383. package/docs/tr/formatters.md +144 -190
  384. package/docs/tr/intlayer_CMS.md +152 -0
  385. package/docs/tr/intlayer_with_angular_21.md +9 -9
  386. package/docs/tr/intlayer_with_nestjs.md +2 -12
  387. package/docs/tr/intlayer_with_nextjs_15.md +1 -33
  388. package/docs/tr/intlayer_with_solid_start.md +1078 -0
  389. package/docs/tr/intlayer_with_vite+vue.md +1 -3
  390. package/docs/tr/live-sync.md +4 -0
  391. package/docs/tr/packages/intlayer/getMultilingualUrls.md +4 -18
  392. package/docs/tr/packages/vite-intlayer/exports.md +15 -0
  393. package/docs/tr/packages/vite-intlayer/intlayer.md +121 -6
  394. package/docs/tr/packages/vite-intlayer/intlayerPrune.md +77 -4
  395. package/docs/tr/self_hosting.md +47 -50
  396. package/docs/uk/analytics.md +222 -0
  397. package/docs/uk/bundle_optimization.md +58 -25
  398. package/docs/uk/configuration.md +25 -8
  399. package/docs/uk/dictionary/nesting.md +47 -30
  400. package/docs/uk/formatters.md +128 -185
  401. package/docs/uk/intlayer_CMS.md +152 -0
  402. package/docs/uk/intlayer_with_angular_21.md +9 -9
  403. package/docs/uk/intlayer_with_nextjs_14.md +1 -26
  404. package/docs/uk/intlayer_with_solid_start.md +1078 -0
  405. package/docs/uk/live-sync.md +4 -0
  406. package/docs/uk/packages/react-intlayer/useDictionary.md +2 -19
  407. package/docs/uk/packages/vite-intlayer/exports.md +15 -0
  408. package/docs/uk/packages/vite-intlayer/intlayer.md +121 -6
  409. package/docs/uk/packages/vite-intlayer/intlayerPrune.md +77 -4
  410. package/docs/uk/releases/v9.md +0 -15
  411. package/docs/uk/self_hosting.md +60 -50
  412. package/docs/ur/bundle_optimization.md +58 -25
  413. package/docs/ur/configuration.md +25 -8
  414. package/docs/ur/intlayer_with_angular_21.md +9 -9
  415. package/docs/vi/analytics.md +222 -0
  416. package/docs/vi/bundle_optimization.md +58 -25
  417. package/docs/vi/configuration.md +24 -8
  418. package/docs/vi/dictionary/nesting.md +37 -184
  419. package/docs/vi/formatters.md +208 -309
  420. package/docs/vi/intlayer_CMS.md +164 -0
  421. package/docs/vi/intlayer_with_angular_21.md +9 -9
  422. package/docs/vi/intlayer_with_nextjs_14.md +0 -25
  423. package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +70 -63
  424. package/docs/vi/intlayer_with_solid_start.md +1078 -0
  425. package/docs/vi/live-sync.md +4 -0
  426. package/docs/vi/packages/intlayer/getMultilingualUrls.md +4 -18
  427. package/docs/vi/packages/react-intlayer/useIntlayer.md +2 -2
  428. package/docs/vi/packages/vite-intlayer/exports.md +15 -0
  429. package/docs/vi/packages/vite-intlayer/intlayer.md +121 -6
  430. package/docs/vi/packages/vite-intlayer/intlayerPrune.md +77 -4
  431. package/docs/vi/plugins/sync-json.md +6 -6
  432. package/docs/vi/releases/v9.md +12 -0
  433. package/docs/vi/self_hosting.md +61 -50
  434. package/docs/zh/CI_CD.md +4 -0
  435. package/docs/zh/analytics.md +222 -0
  436. package/docs/zh/autoFill.md +28 -9
  437. package/docs/zh/bundle_optimization.md +58 -25
  438. package/docs/zh/configuration.md +24 -8
  439. package/docs/zh/dictionary/file.md +2 -0
  440. package/docs/zh/dictionary/nesting.md +47 -30
  441. package/docs/zh/formatters.md +140 -188
  442. package/docs/zh/intlayer_CMS.md +164 -0
  443. package/docs/zh/intlayer_with_analog.md +193 -3
  444. package/docs/zh/intlayer_with_angular_19.md +272 -3
  445. package/docs/zh/intlayer_with_angular_21.md +7 -7
  446. package/docs/zh/intlayer_with_create_react_app.md +348 -26
  447. package/docs/zh/intlayer_with_lynx+react.md +263 -4
  448. package/docs/zh/intlayer_with_nextjs_14.md +1 -28
  449. package/docs/zh/intlayer_with_nextjs_15.md +1 -33
  450. package/docs/zh/intlayer_with_nextjs_no_locale_path.md +558 -1
  451. package/docs/zh/intlayer_with_nuxt.md +182 -7
  452. package/docs/zh/intlayer_with_react_router_v7.md +183 -25
  453. package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +306 -42
  454. package/docs/zh/intlayer_with_solid_start.md +1077 -0
  455. package/docs/zh/intlayer_with_storybook.md +260 -3
  456. package/docs/zh/intlayer_with_svelte_kit.md +428 -48
  457. package/docs/zh/intlayer_with_tanstack+solid.md +713 -13
  458. package/docs/zh/intlayer_with_tanstack.md +731 -20
  459. package/docs/zh/intlayer_with_vanilla.md +314 -4
  460. package/docs/zh/intlayer_with_vite+lit.md +465 -4
  461. package/docs/zh/intlayer_with_vite+preact.md +422 -116
  462. package/docs/zh/intlayer_with_vite+react.md +324 -45
  463. package/docs/zh/intlayer_with_vite+react_compiler.md +228 -13
  464. package/docs/zh/intlayer_with_vite+solid.md +462 -32
  465. package/docs/zh/intlayer_with_vite+vanilla.md +497 -4
  466. package/docs/zh/live-sync.md +4 -0
  467. package/docs/zh/mcp_server.md +3 -9
  468. package/docs/zh/packages/intlayer/getLocalizedUrl.md +26 -24
  469. package/docs/zh/packages/intlayer/getMultilingualUrls.md +4 -18
  470. package/docs/zh/packages/vite-intlayer/exports.md +29 -0
  471. package/docs/zh/packages/vite-intlayer/intlayer.md +121 -6
  472. package/docs/zh/packages/vite-intlayer/intlayerPrune.md +79 -6
  473. package/docs/zh/releases/v9.md +12 -0
  474. package/docs/zh/self_hosting.md +60 -50
  475. package/docs/zh-TW/bundle_optimization.md +58 -25
  476. package/docs/zh-TW/intlayer_with_angular_21.md +7 -7
  477. package/package.json +7 -7
  478. package/src/common.ts +39 -2
  479. package/src/generated/blog.entry.ts +66 -34
  480. package/src/generated/docs.entry.ts +273 -221
  481. package/src/generated/frequentQuestions.entry.ts +56 -24
  482. package/src/generated/legal.entry.ts +41 -9
@@ -54,11 +54,62 @@ author: aymericzip
54
54
 
55
55
  ---
56
56
 
57
- ### 第2步:实现 Intlayer 插件以封装 JSON
57
+ ## 使用 next-i18next 设置 Intlayer 的分步指南
58
58
 
59
- 创建一个 Intlayer 配置文件以定义你支持的语言环境:
59
+ <Steps>
60
+
61
+ <Step number={1} title="安装依赖项">
62
+
63
+ 使用您首选的包管理器安装必要的包:
64
+
65
+ ```bash packageManager="npm"
66
+ npx intlayer init --interactive
67
+ ```
60
68
 
61
- **如果你还想导出用于 i18next 的 JSON 词典**,请添加 `syncJSON` 插件:
69
+ ```bash packageManager="pnpm"
70
+ pnpm dlx intlayer@canary init --interactive
71
+ ```
72
+
73
+ ```bash packageManager="yarn"
74
+ yarn dlx intlayer@canary init --interactive
75
+ ```
76
+
77
+ ```bash packageManager="bun"
78
+ bunx intlayer@canary init --interactive
79
+ ```
80
+
81
+ > `--interactive` 标志是可选的。如果您是 AI 代理,请使用 `intlayer-cli init`。
82
+
83
+ > 此命令将检测您的环境并安装所需的包。例如:
84
+
85
+ ```bash packageManager="npm"
86
+ npm install intlayer @intlayer/sync-json-plugin --save-dev
87
+ ```
88
+
89
+ ```bash packageManager="pnpm"
90
+ pnpm add intlayer @intlayer/sync-json-plugin --save-dev
91
+ ```
92
+
93
+ ```bash packageManager="yarn"
94
+ yarn add intlayer @intlayer/sync-json-plugin --dev
95
+ ```
96
+
97
+ ```bash packageManager="bun"
98
+ bun add intlayer @intlayer/sync-json-plugin --dev
99
+ ```
100
+
101
+ **包说明:**
102
+
103
+ - **intlayer**:用于内容声明和管理的核心库
104
+ - **@intlayer/sync-json-plugin**:将 Intlayer 内容声明同步到 i18next JSON 格式的插件
105
+
106
+ </Step>
107
+
108
+ <Step number={2} title="实现 Intlayer 插件以包装 JSON">
109
+
110
+ 创建一个 Intlayer 配置文件来定义您支持的语言环境:
111
+
112
+ **如果您也想为 i18next 导出 JSON 字典**,请添加 `syncJSON` 插件:
62
113
 
63
114
  ```typescript fileName="intlayer.config.ts"
64
115
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -79,26 +130,32 @@ const config: IntlayerConfig = {
79
130
  export default config;
80
131
  ```
81
132
 
82
- `syncJSON` 插件会自动包装 JSON。它会读取和写入 JSON 文件,而不会改变内容结构。
133
+ `syncJSON` 插件将自动包装 JSON。它将读写 JSON 文件而不改变内容架构。
83
134
 
84
- 如果你想让 JSON 与 intlayer 内容声明文件(`.content` 文件)共存,Intlayer 会按以下方式处理:
135
+ 如果您想让 JSON 与 intlayer 内容声明文件(`.content` 文件)共存,Intlayer 将按以下方式处理:
85
136
 
86
- 1. 加载 JSON 和内容声明文件,并将它们转换为 intlayer 字典。
87
- 2. 如果 JSON 和内容声明文件之间存在冲突,Intlayer 会合并所有字典。具体合并方式取决于插件的优先级以及内容声明文件的优先级(所有均可配置)。
137
+ 1. 加载 JSON 和内容声明文件,并将它们转换为 intlayer 字典。
138
+ 2. 如果 JSON 和内容声明文件之间存在冲突,Intlayer 将合并所有字典。根据插件的优先级和内容声明文件的优先级(都可配置)。
88
139
 
89
- 如果使用 CLI 翻译 JSON,或使用 CMS 进行更改,Intlayer 将使用新的翻译更新 JSON 文件。
140
+ 如果使用 CLI CMS 对 JSON 进行更改以翻译,Intlayer 将用新翻译更新 JSON 文件。
90
141
 
91
- 要查看更多关于 `syncJSON` 插件的详细信息,请参阅 [syncJSON 插件文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/plugins/sync-json.md)。
142
+ 有关 `syncJSON` 插件的更多详细信息,请参阅 [syncJSON 插件文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/plugins/sync-json.md)。
92
143
 
93
- ---
144
+ </Step>
94
145
 
95
- <Steps>
146
+ <Step number={3} title="设置 AI 提供者">
96
147
 
97
- <Step number={1} title="实现按组件的 JSON 翻译" isOptional={true}>
148
+ Intlayer 为您的 i18next 工作流解锁了一套高级自动化和开发者友好的功能。
98
149
 
99
- 默认情况下,Intlayer 会加载、合并并同步 JSON 和内容声明文件。更多详情请参阅 [内容声明文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/content_file.md)。但如果你愿意,也可以使用 Intlayer 插件,在代码库中的任何位置实现按组件管理本地化的 JSON。
150
+ - **自动检测和填充缺失的翻译**:Intlayer 扫描您的 JSON 字典,找到未翻译或缺失的键,并仅翻译那些,所以您的 JSON 99% 保持不变。
151
+ - **大型 JSON 文件的分块翻译**:当您的翻译文件非常大时,Intlayer 会自动将处理分成可管理的块,独立翻译它们以避免 API 限制和内存问题。
152
+ - **命名空间并行化**:如果您有数百个命名空间(或文件),Intlayer 会并行化翻译任务,有效地加快您的 CI/CD 或批量翻译操作。
153
+ - **灵活的 AI 提供者支持**:只需配置凭据,即可选择您首选的 AI 提供者(例如 OpenAI、Claude、Gemini)。使用您自己的 API 密钥,并根据需要切换提供者。
154
+ - **强大的 AI 响应处理**:Intlayer 可以处理您的 AI 提供者以字符串或对象形式返回文本的边界情况,甚至在格式不一致时自动重试。
155
+ - **CLI 和 CI/CD 就绪**:直接在您的测试或管道中运行 Intlayer 的检查和自动填充,使您的本地化流程健壮且自动化。
156
+ - **集成在您现有的设置之上**:您不需要改变您的 i18next 或 Next.js 基础。Intlayer 作为您当前设置的附加插件工作,以最少的迁移为您提供所有这些好处。
100
157
 
101
- 为此,您可以使用 `loadJSON` 插件。
158
+ 以下是如何设置 AI 提供者的示例:
102
159
 
103
160
  ```ts fileName="intlayer.config.ts"
104
161
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -109,23 +166,14 @@ const config: IntlayerConfig = {
109
166
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
110
167
  defaultLocale: Locales.ENGLISH,
111
168
  },
112
-
113
- // 保持您当前的 JSON 文件与 Intlayer 字典同步
169
+ ai: {
170
+ provider: "openai",
171
+ model: "gpt-5-mini",
172
+ apiKey: process.env.OPENAI_API_KEY,
173
+ },
114
174
  plugins: [
115
- /**
116
- * 将加载 src 中所有匹配模式 {key}.i18n.json 的 JSON 文件
117
- */
118
- loadJSON({
119
- source: ({ key }) => `./src/**/${key}.i18n.json`,
120
- locale: Locales.ENGLISH,
121
- priority: 1, // 确保这些 JSON 文件优先于 `./public/locales/en/${key}.json` 中的文件
122
- }),
123
- /**
124
- * 将输出和翻译写回到 locales 目录中的 JSON 文件
125
- */
126
175
  syncJSON({
127
176
  source: ({ key, locale }) => `./public/locales/${locale}/${key}.json`,
128
- priority: 0,
129
177
  }),
130
178
  ],
131
179
  };
@@ -133,7 +181,16 @@ const config: IntlayerConfig = {
133
181
  export default config;
134
182
  ```
135
183
 
136
- 这将加载 `src` 目录中所有匹配 `{key}.i18n.json` 模式的 JSON 文件,并将它们作为 Intlayer 字典加载。
184
+ 然后您可以执行以下命令来填充您的翻译:
185
+
186
+ ```bash
187
+ npx intlayer fill
188
+ ```
189
+
190
+ 这将使用您配置的 AI 提供者填充您的翻译。
191
+
192
+ > 在 [Intlayer AI 配置文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md#ai-configuration) 中查看所有可用的 AI 提供者。
193
+ > 在 [Intlayer CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/index.md) 中查看所有可用的命令。
137
194
 
138
195
  ---
139
196
 
@@ -55,11 +55,62 @@ author: aymericzip
55
55
 
56
56
  <TOC/>
57
57
 
58
- ### 第2步:实现 Intlayer 插件以封装 JSON
58
+ ## 使用 next-intl 设置 Intlayer 的分步指南
59
59
 
60
- 创建一个 Intlayer 配置文件以定义支持的语言环境:
60
+ <Steps>
61
+
62
+ <Step number={1} title="安装依赖">
63
+
64
+ 安装必要的包:
65
+
66
+ ```bash packageManager="npm"
67
+ npx intlayer init --interactive
68
+ ```
69
+
70
+ ```bash packageManager="pnpm"
71
+ pnpm dlx intlayer@canary init --interactive
72
+ ```
73
+
74
+ ```bash packageManager="yarn"
75
+ yarn dlx intlayer@canary init --interactive
76
+ ```
77
+
78
+ ```bash packageManager="bun"
79
+ bunx intlayer@canary init --interactive
80
+ ```
81
+
82
+ > `--interactive` 标志是可选的。如果你是 AI agent,请使用 `intlayer-cli init`。
83
+
84
+ > 此命令将检测你的环境并安装所需的包。例如:
85
+
86
+ ```bash packageManager="npm"
87
+ npm install intlayer @intlayer/sync-json-plugin --save-dev
88
+ ```
89
+
90
+ ```bash packageManager="pnpm"
91
+ pnpm add intlayer @intlayer/sync-json-plugin --save-dev
92
+ ```
93
+
94
+ ```bash packageManager="yarn"
95
+ yarn add intlayer @intlayer/sync-json-plugin --dev
96
+ ```
97
+
98
+ ```bash packageManager="bun"
99
+ bun add intlayer @intlayer/sync-json-plugin --dev
100
+ ```
101
+
102
+ **包描述:**
103
+
104
+ - **intlayer**:国际化管理、内容声明和构建的核心库
105
+ - **@intlayer/sync-json-plugin**:将 Intlayer 内容声明导出为 next-intl 兼容 JSON 格式的插件
106
+
107
+ </Step>
61
108
 
62
- **如果您还想为 next-intl 导出 JSON 字典**,请添加 `syncJSON` 插件:
109
+ <Step number={2} title="实现 Intlayer 插件以包装 JSON">
110
+
111
+ 创建一个 Intlayer 配置文件来定义你支持的语言:
112
+
113
+ **如果你还想为 next-intl 导出 JSON 字典**,添加 `syncJSON` 插件:
63
114
 
64
115
  ```typescript fileName="intlayer.config.ts"
65
116
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -81,25 +132,32 @@ const config: IntlayerConfig = {
81
132
  export default config;
82
133
  ```
83
134
 
84
- `syncJSON` 插件会自动封装 JSON。它会读取和写入 JSON 文件,而不会改变内容结构。
85
-
86
- 如果你想让 JSON 与 intlayer 内容声明文件(`.content` 文件)共存,Intlayer 会按以下方式处理:
135
+ `syncJSON` 插件将自动包装 JSON。它将读取和写入 JSON 文件,而不改变内容架构。
87
136
 
88
- 1. 加载 JSON 和内容声明文件,并将它们转换为 intlayer 字典。
137
+ 如果你想让 JSON intlayer 内容声明文件(`.content` 文件)并存,Intlayer 将按以下方式处理:
89
138
 
90
- 2. 如果 JSON 文件和内容声明文件之间存在冲突,Intlayer 将合并所有字典。合并的优先级取决于插件的优先级以及内容声明文件的优先级(所有优先级均可配置)。
139
+ 1. 加载 JSON 和内容声明文件,并将其转换为 intlayer 字典。
140
+ 2. 如果 JSON 和内容声明文件之间存在冲突,Intlayer 将合并所有字典。这取决于插件的优先级和内容声明文件的优先级(都是可配置的)。
91
141
 
92
- 如果通过 CLI 翻译 JSON 或使用 CMS 进行更改,Intlayer 会使用新的翻译更新 JSON 文件。
142
+ 如果使用 CLI CMS 更改了 JSON 的翻译,Intlayer 将使用新翻译更新 JSON 文件。
93
143
 
94
144
  有关 `syncJSON` 插件的更多详细信息,请参阅 [syncJSON 插件文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/plugins/sync-json.md)。
95
145
 
96
- <Steps>
146
+ </Step>
97
147
 
98
- <Step number={1} title="实现按组件的 JSON 翻译" isOptional={true}>
148
+ <Step number={3} title="设置 AI 提供商">
99
149
 
100
- 默认情况下,Intlayer 会加载、合并并同步 JSON 文件和内容声明文件。更多详情请参见[内容声明文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/content_file.md)。但如果你愿意,也可以使用 Intlayer 插件,在代码库中的任意位置实现基于组件的 JSON 本地化管理。
150
+ Intlayer 为你的 i18next 工作流解锁了一系列高级自动化和开发者友好的功能。
101
151
 
102
- 为此,你可以使用 `loadJSON` 插件。
152
+ - **自动检测和填充缺失的翻译**:Intlayer 扫描你的 JSON 字典,查找未翻译或缺失的键,仅翻译那些,所以你的 JSON 的 99% 保持不变。
153
+ - **大 JSON 文件的分块翻译**:当你的翻译文件非常大时,Intlayer 自动将处理分成可管理的块,独立地翻译它们以避免 API 限制和内存问题。
154
+ - **命名空间并行化**:如果你有数百个命名空间(或文件),Intlayer 并行化翻译任务,有效加快你的 CI/CD 或批量翻译操作。
155
+ - **灵活的 AI 提供商支持**:选择你首选的 AI 提供商(例如 OpenAI、Claude、Gemini),只需配置凭证。使用你自己的 API 密钥,并根据需要切换提供商。
156
+ - **弹性的 AI 响应处理**:Intlayer 可以处理你的 AI 提供商将文本作为字符串或对象返回的边界情况,甚至在格式不一致时自动重试。
157
+ - **CLI 和 CI/CD 就绪**:直接在你的测试或管道中运行 Intlayer 的检查和自动填充,使你的本地化流程强大和自动化。
158
+ - **集成在你现有的设置之上**:你无需更改你的 i18next 或 Next.js 基础。Intlayer 作为你当前设置的插件,为你提供所有这些好处,同时需要最小的迁移。
159
+
160
+ 以下是如何设置 AI 提供商的示例:
103
161
 
104
162
  ```ts fileName="intlayer.config.ts"
105
163
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -110,24 +168,15 @@ const config: IntlayerConfig = {
110
168
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
111
169
  defaultLocale: Locales.ENGLISH,
112
170
  },
113
-
114
- // 保持您当前的 JSON 文件与 Intlayer 字典同步
171
+ ai: {
172
+ provider: "openai",
173
+ model: "gpt-5-mini",
174
+ apiKey: process.env.OPENAI_API_KEY,
175
+ },
115
176
  plugins: [
116
- /**
117
- * 将加载 src 目录中所有匹配模式 {key}.i18n.json 的 JSON 文件
118
- */
119
- loadJSON({
120
- source: ({ key }) => `./src/**/${key}.i18n.json`,
121
- locale: Locales.ENGLISH,
122
- priority: 1, // 确保这些 JSON 文件优先于 `./locales/en/${key}.json` 中的文件
123
- }),
124
- /**
125
- * 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
126
- */
127
177
  syncJSON({
128
178
  format: "icu",
129
179
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
130
- priority: 0,
131
180
  }),
132
181
  ],
133
182
  };
@@ -135,7 +184,18 @@ const config: IntlayerConfig = {
135
184
  export default config;
136
185
  ```
137
186
 
138
- 这将加载 `src` 目录中所有匹配 `{key}.i18n.json` 模式的 JSON 文件,并将它们作为 Intlayer 字典加载。
187
+ 然后你可以执行以下命令来填充你的翻译:
188
+
189
+ ```bash
190
+ npx intlayer fill
191
+ ```
192
+
193
+ 这将用你配置的 AI 提供商填充你的翻译。
194
+
195
+ > 在 [Intlayer AI 配置文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md#ai-configuration) 中查看所有可用的 AI 提供商。
196
+ > 在 [Intlayer CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/index.md) 中查看所有可用的命令。
197
+
198
+ ---
139
199
 
140
200
  </Step>
141
201
 
@@ -55,11 +55,62 @@ author: aymericzip
55
55
 
56
56
  <TOC/>
57
57
 
58
- ### 2 步:实现 Intlayer 插件以包装 JSON
58
+ ## 使用 react-i18next 设置 Intlayer 的分步指南
59
59
 
60
- 创建一个 Intlayer 配置文件以定义支持的语言环境:
60
+ <Steps>
61
+
62
+ <Step number={1} title="安装依赖项">
63
+
64
+ 安装必要的包:
65
+
66
+ ```bash packageManager="npm"
67
+ npx intlayer init --interactive
68
+ ```
61
69
 
62
- **如果您还想导出用于 react-i18next 的 JSON 字典**,请添加 `syncJSON` 插件:
70
+ ```bash packageManager="pnpm"
71
+ pnpm dlx intlayer@canary init --interactive
72
+ ```
73
+
74
+ ```bash packageManager="yarn"
75
+ yarn dlx intlayer@canary init --interactive
76
+ ```
77
+
78
+ ```bash packageManager="bun"
79
+ bunx intlayer@canary init --interactive
80
+ ```
81
+
82
+ > `--interactive` 标志是可选的。如果您是 AI 代理,请使用 `intlayer-cli init`。
83
+
84
+ > 此命令将检测您的环境并安装所需的包。例如:
85
+
86
+ ```bash packageManager="npm"
87
+ npm install intlayer @intlayer/sync-json-plugin --save-dev
88
+ ```
89
+
90
+ ```bash packageManager="pnpm"
91
+ pnpm add intlayer @intlayer/sync-json-plugin --save-dev
92
+ ```
93
+
94
+ ```bash packageManager="yarn"
95
+ yarn add intlayer @intlayer/sync-json-plugin --dev
96
+ ```
97
+
98
+ ```bash packageManager="bun"
99
+ bun add intlayer @intlayer/sync-json-plugin --dev
100
+ ```
101
+
102
+ **包描述:**
103
+
104
+ - **intlayer**:国际化管理、内容声明和构建的核心库
105
+ - **@intlayer/sync-json-plugin**:将 Intlayer 内容声明导出为 react-i18next 兼容 JSON 格式的插件
106
+
107
+ </Step>
108
+
109
+ <Step number={2} title="实现 Intlayer 插件以包装 JSON">
110
+
111
+ 创建 Intlayer 配置文件以定义您支持的语言:
112
+
113
+ **如果您还想为 react-i18next 导出 JSON 字典**,请添加 `syncJSON` 插件:
63
114
 
64
115
  ```typescript fileName="intlayer.config.ts"
65
116
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -80,24 +131,32 @@ const config: IntlayerConfig = {
80
131
  export default config;
81
132
  ```
82
133
 
83
- `syncJSON` 插件会自动包装 JSON。它会读取和写入 JSON 文件,而不会改变内容结构。
134
+ `syncJSON` 插件将自动包装 JSON。它将读写 JSON 文件,而不改变内容架构。
84
135
 
85
- 如果你想让 JSON 与 intlayer 内容声明文件(`.content` 文件)共存,Intlayer 会按以下方式处理:
136
+ 如果您想让该 JSON 与 Intlayer 内容声明文件(`.content` 文件)共存,Intlayer 将按以下方式处理:
86
137
 
87
- 1. 加载 JSON 和内容声明文件,并将它们转换为 intlayer 字典。
88
- 2. 如果 JSON 和内容声明文件之间存在冲突,Intlayer 会合并所有字典。合并的优先级取决于插件的优先级和内容声明文件的优先级(所有均可配置)。
138
+ 1. 加载 JSON 和内容声明文件,并将它们转换为 Intlayer 字典。
139
+ 2. 如果 JSON 和内容声明文件之间存在冲突,Intlayer 将合并所有字典。根据插件的优先级和内容声明文件的优先级(都可配置)。
89
140
 
90
- 如果通过 CLI 翻译 JSON 或使用 CMS 进行更改,Intlayer 会使用新的翻译更新 JSON 文件。
141
+ 如果使用 CLI CMS JSON 进行更改以进行翻译,Intlayer 将用新翻译更新 JSON 文件。
91
142
 
92
- 要查看更多关于 `syncJSON` 插件的详细信息,请参阅 [syncJSON 插件文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/plugins/sync-json.md)。
143
+ 有关 `syncJSON` 插件的更多详情,请参考 [syncJSON 插件文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/plugins/sync-json.md)。
93
144
 
94
- <Steps>
145
+ </Step>
146
+
147
+ <Step number={3} title="设置 AI 提供商">
95
148
 
96
- <Step number={1} title="实现按组件的 JSON 翻译" isOptional={true}>
149
+ Intlayer 为您的 i18next 工作流解锁了一组高级自动化和开发者友好的功能。
97
150
 
98
- 默认情况下,Intlayer 会加载、合并并同步 JSON 文件和内容声明文件。更多详情请参阅 [内容声明文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/content_file.md)。但如果你愿意,也可以使用 Intlayer 插件,在代码库中的任意位置实现按组件管理本地化的 JSON。
151
+ - **自动检测和填充缺失的翻译**:Intlayer 扫描您的 JSON 字典,查找未翻译或缺失的键,仅翻译这些,以便 99% JSON 保持不变。
152
+ - **大型 JSON 文件的分块翻译**:当您的翻译文件非常大时,Intlayer 会自动将处理分成可管理的块,独立翻译它们以避免 API 限制和内存问题。
153
+ - **命名空间并行化**:如果您有数百个命名空间(或文件),Intlayer 会并行化翻译任务,有效加快您的 CI/CD 或批量翻译操作。
154
+ - **灵活的 AI 提供商支持**:选择您首选的 AI 提供商(例如 OpenAI、Claude、Gemini),只需配置凭证即可。使用您自己的 API 密钥,并根据需要切换提供商。
155
+ - **弹性 AI 响应处理**:Intlayer 可以处理 AI 提供商以字符串或对象形式返回文本的边界情况,甚至在格式不一致时自动重试。
156
+ - **CLI 和 CI/CD 就绪**:直接在您的测试或管道中运行 Intlayer 的检查和自动填充,使您的本地化过程健壮和自动化。
157
+ - **集成到现有设置之上**:您无需改变 i18next 或 Next.js 基础。Intlayer 作为插件添加到您当前的设置中,以最小的迁移工作量为您提供所有这些好处。
99
158
 
100
- 为此,你可以使用 `loadJSON` 插件。
159
+ 以下是如何设置 AI 提供商的示例:
101
160
 
102
161
  ```ts fileName="intlayer.config.ts"
103
162
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -108,23 +167,14 @@ const config: IntlayerConfig = {
108
167
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
109
168
  defaultLocale: Locales.ENGLISH,
110
169
  },
111
-
112
- // 保持当前的 JSON 文件与 Intlayer 字典同步
170
+ ai: {
171
+ provider: "openai",
172
+ model: "gpt-5-mini",
173
+ apiKey: process.env.OPENAI_API_KEY,
174
+ },
113
175
  plugins: [
114
- /**
115
- * 将加载 src 目录中所有匹配模式 {key}.i18n.json 的 JSON 文件
116
- */
117
- loadJSON({
118
- source: ({ key }) => `./src/**/${key}.i18n.json`,
119
- locale: Locales.ENGLISH,
120
- priority: 1, // 确保这些 JSON 文件优先于 `./locales/en/${key}.json` 中的文件
121
- }),
122
- /**
123
- * 将加载并将输出和翻译写回到 locales 目录中的 JSON 文件
124
- */
125
176
  syncJSON({
126
177
  source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
127
- priority: 0,
128
178
  }),
129
179
  ],
130
180
  };
@@ -132,7 +182,16 @@ const config: IntlayerConfig = {
132
182
  export default config;
133
183
  ```
134
184
 
135
- 这将加载 `src` 目录中所有匹配 `{key}.i18n.json` 模式的 JSON 文件,并将它们作为 Intlayer 字典加载。
185
+ 然后您可以执行以下命令来填充您的翻译:
186
+
187
+ ```bash
188
+ npx intlayer fill
189
+ ```
190
+
191
+ 这将使用您配置的 AI 提供商填充您的翻译。
192
+
193
+ > 在 [Intlayer AI 配置文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md#ai-configuration) 中查看所有可用的 AI 提供商。
194
+ > 在 [Intlayer CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/index.md) 中查看所有可用的命令。
136
195
 
137
196
  </Step>
138
197
 
@@ -53,11 +53,62 @@ author: aymericzip
53
53
 
54
54
  本指南将向您展示如何利用 Intlayer 优越的内容声明系统,同时保持与 react-intl 的兼容性。
55
55
 
56
- ### 2 步:实现 Intlayer 插件以包装 JSON
56
+ ## 使用 react-intl 设置 Intlayer 的分步指南
57
57
 
58
- 创建一个 Intlayer 配置文件以定义您支持的语言环境:
58
+ <Steps>
59
+
60
+ <Step number={1} title="安装依赖">
61
+
62
+ 安装必要的包:
63
+
64
+ ```bash packageManager="npm"
65
+ npx intlayer init --interactive
66
+ ```
67
+
68
+ ```bash packageManager="pnpm"
69
+ pnpm dlx intlayer@canary init --interactive
70
+ ```
71
+
72
+ ```bash packageManager="yarn"
73
+ yarn dlx intlayer@canary init --interactive
74
+ ```
75
+
76
+ ```bash packageManager="bun"
77
+ bunx intlayer@canary init --interactive
78
+ ```
79
+
80
+ > `--interactive` 标志是可选的。如果您是 AI agent,请使用 `intlayer-cli init`。
81
+
82
+ > 此命令将检测您的环境并安装所需的包。例如:
83
+
84
+ ```bash packageManager="npm"
85
+ npm install intlayer @intlayer/sync-json-plugin --save-dev
86
+ ```
59
87
 
60
- **如果您还想导出适用于 react-intl 的 JSON 字典**,请添加 `syncJSON` 插件:
88
+ ```bash packageManager="pnpm"
89
+ pnpm add intlayer @intlayer/sync-json-plugin --save-dev
90
+ ```
91
+
92
+ ```bash packageManager="yarn"
93
+ yarn add intlayer @intlayer/sync-json-plugin --dev
94
+ ```
95
+
96
+ ```bash packageManager="bun"
97
+ bun add intlayer @intlayer/sync-json-plugin --dev
98
+ ```
99
+
100
+ **包描述:**
101
+
102
+ - **intlayer**:国际化管理、内容声明和构建的核心库
103
+ - **@intlayer/sync-json-plugin**:将 Intlayer 内容声明导出为 react-intl 兼容 JSON 格式的插件
104
+
105
+ </Step>
106
+
107
+ <Step number={2} title="实现 Intlayer 插件来包装 JSON">
108
+
109
+ 创建一个 Intlayer 配置文件来定义您支持的区域设置:
110
+
111
+ **如果您还想为 react-intl 导出 JSON 字典**,请添加 `syncJSON` 插件:
61
112
 
62
113
  ```typescript fileName="intlayer.config.ts"
63
114
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -79,24 +130,32 @@ const config: IntlayerConfig = {
79
130
  export default config;
80
131
  ```
81
132
 
82
- `syncJSON` 插件会自动包装 JSON。它会读取和写入 JSON 文件,而不会改变内容结构。
133
+ `syncJSON` 插件将自动包装 JSON。它将读取和写入 JSON 文件而不更改内容架构。
83
134
 
84
- 如果你希望让 JSON 与 intlayer 内容声明文件(`.content` 文件)共存,Intlayer 会按以下方式处理:
135
+ 如果您想让 JSON 与 intlayer 内容声明文件(`.content` 文件)共存,Intlayer 将按以下方式处理:
85
136
 
86
137
  1. 加载 JSON 和内容声明文件,并将它们转换为 intlayer 字典。
87
- 2. 如果 JSON 和内容声明文件之间存在冲突,Intlayer 会合并所有字典。具体合并方式取决于插件的优先级以及内容声明文件的优先级(所有优先级均可配置)。
138
+ 2. 如果 JSON 和内容声明文件之间存在冲突,Intlayer 将处理所有字典的合并。这取决于插件的优先级和内容声明文件的优先级(所有都是可配置的)。
88
139
 
89
- 如果通过 CLI 翻译 JSON 或使用 CMS 进行更改,Intlayer 会使用新的翻译更新 JSON 文件。
140
+ 如果使用 CLI CMS 进行更改以翻译 JSON,Intlayer 将使用新的翻译更新 JSON 文件。
90
141
 
91
- 要查看更多关于 `syncJSON` 插件的详细信息,请参阅 [syncJSON 插件文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/plugins/sync-json.md)。
142
+ 有关 `syncJSON` 插件的更多详细信息,请参考 [syncJSON 插件文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/plugins/sync-json.md)。
92
143
 
93
- <Steps>
144
+ </Step>
145
+
146
+ <Step number={3} title="设置 AI provider">
94
147
 
95
- <Step number={1} title="实现按组件的 JSON 翻译" isOptional={true}>
148
+ Intlayer 为您的 i18next 工作流解锁了一套高级自动化和开发者友好的功能。
96
149
 
97
- 默认情况下,Intlayer 会加载、合并并同步 JSON 和内容声明文件。更多详情请参阅 [内容声明文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/dictionary/content_file.md)。但如果你愿意,也可以使用 Intlayer 插件,在代码库中的任意位置实现按组件管理本地化的 JSON。
150
+ - **自动检测和填充缺失的翻译**:Intlayer 扫描您的 JSON 字典,找到未翻译或缺失的键,只翻译那些,所以您的 JSON 99% 保持不变。
151
+ - **大型 JSON 文件的分块翻译**:当您的翻译文件非常大时,Intlayer 自动将处理分成可管理的块,独立翻译它们以避免 API 限制和内存问题。
152
+ - **命名空间并行化**:如果您有数百个命名空间(或文件),Intlayer 会并行化翻译任务,有效地加快您的 CI/CD 或批量翻译操作。
153
+ - **灵活的 AI provider 支持**:选择您首选的 AI provider(例如 OpenAI、Claude、Gemini),只需配置凭证。使用您自己的 API 密钥,并根据需要切换 provider。
154
+ - **弹性 AI 响应处理**:Intlayer 可以处理您的 AI provider 将文本作为字符串或对象返回的边界情况,甚至在格式不一致时自动重试。
155
+ - **CLI 和 CI/CD 就绪**:直接在您的测试或管道中运行 Intlayer 的检查和自动填充,使您的本地化流程健壮且自动化。
156
+ - **集成在您现有的设置之上**:您无需更改您的 i18next 或 Next.js 基础。Intlayer 作为插件工作在您当前的设置之上,为您提供所有这些优点且迁移最少。
98
157
 
99
- 为此,你可以使用 `loadJSON` 插件。
158
+ 下面是如何设置 AI provider 的示例:
100
159
 
101
160
  ```ts fileName="intlayer.config.ts"
102
161
  import { Locales, type IntlayerConfig } from "intlayer";
@@ -107,24 +166,15 @@ const config: IntlayerConfig = {
107
166
  locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
108
167
  defaultLocale: Locales.ENGLISH,
109
168
  },
110
-
111
- // 保持您当前的 JSON 文件与 Intlayer 字典同步
169
+ ai: {
170
+ provider: "openai",
171
+ model: "gpt-5-mini",
172
+ apiKey: process.env.OPENAI_API_KEY,
173
+ },
112
174
  plugins: [
113
- /**
114
- * 将加载 src 目录中所有匹配模式 {key}.i18n.json 的 JSON 文件
115
- */
116
- loadJSON({
117
- source: ({ key }) => `./src/**/${key}.i18n.json`,
118
- locale: Locales.ENGLISH,
119
- priority: 1, // 确保这些 JSON 文件优先于 `./locales/en/${key}.json` 中的文件
120
- }),
121
- /**
122
- * 将加载并将输出和翻译写回 locales 目录中的 JSON 文件
123
- */
124
175
  syncJSON({
125
176
  format: "icu",
126
177
  source: ({ key, locale }) => `./messages/${locale}/${key}.json`,
127
- priority: 0,
128
178
  }),
129
179
  ],
130
180
  };
@@ -132,7 +182,18 @@ const config: IntlayerConfig = {
132
182
  export default config;
133
183
  ```
134
184
 
135
- 这将加载 `src` 目录中所有匹配 `{key}.i18n.json` 模式的 JSON 文件,并将它们作为 Intlayer 字典加载。
185
+ 然后您可以执行以下命令来填充您的翻译:
186
+
187
+ ```bash
188
+ npx intlayer fill
189
+ ```
190
+
191
+ 这将使用您配置的 AI provider 填充您的翻译。
192
+
193
+ > 在 [Intlayer AI 配置文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/configuration.md#ai-configuration) 中查看所有可用的 AI provider。
194
+ > 在 [Intlayer CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/index.md) 中查看所有可用的命令。
195
+
196
+ ---
136
197
 
137
198
  </Step>
138
199