@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
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-07-11
3
+ updatedAt: 2026-08-06
4
4
  title: কনফিগারেশন (Configuration)
5
5
  description: আপনার অ্যাপ্লিকেশনের জন্য Intlayer কীভাবে কনফিগার করবেন তা শিখুন। আপনার প্রয়োজন অনুযায়ী Intlayer কাস্টমাইজ করতে উপলব্ধ বিভিন্ন সেটিংস এবং বিকল্পগুলি বুঝুন।
6
6
  keywords:
@@ -14,6 +14,9 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 9.1.3
18
+ date: 2026-08-06
19
+ changes: "`routing.enableProxy` কে তিন-অবস্থার করা হয়েছে: আনসেট (auto), `true`, `false`"
17
20
  - version: 9.0.0
18
21
  date: 2026-07-11
19
22
  changes: "`analytics` কনফিগারেশন যোগ করা হয়েছে"
@@ -235,6 +238,19 @@ const config: IntlayerConfig = {
235
238
  */
236
239
  mode: "prefix-no-default",
237
240
 
241
+ /**
242
+ * Intlayer লোকেল-রাউটিং প্রক্সি (মিডলওয়্যার) সক্রিয় করে।
243
+ * dev, preview এবং SSR-এ লোকেল শনাক্তকরণ, রিডাইরেক্ট ও রিরাইট পরিচালনা করে।
244
+ * - আনসেট (auto): dev ও preview সার্ভার কুকি এবং হেডারে সংরক্ষিত লোকেল উপেক্ষা করে
245
+ * রাউটিং URL-নির্ভর রাখে। প্রিফিক্স এখনও সমাধান হয়, লোকেল এখনও সংরক্ষিত হয়,
246
+ * এবং Accept-Language শনাক্তকরণ এখনও প্রযোজ্য।
247
+ * প্রোডাকশনে `true`-এর মতো আচরণ করে।
248
+ * - true: সব পরিবেশে সম্পূর্ণ আচরণ।
249
+ * - false: কোনো লোকেল রাউটিং নেই।
250
+ * ডিফল্ট: undefined (auto)
251
+ */
252
+ enableProxy: undefined,
253
+
238
254
  /**
239
255
  * ব্যবহারকারীর নির্বাচিত লোকাল কোথায় সংরক্ষণ করা হবে।
240
256
  * বিকল্পসমূহ: 'cookie', 'localStorage', 'sessionStorage', 'header' অথবা এগুলোর অ্যারে।
@@ -706,13 +722,14 @@ Intlayer অ্যানালিটিক্স সম্পর্কিত স
706
722
 
707
723
  URL কাঠামো, লোকাল স্টোরেজ এবং মিডলওয়্যার ম্যানেজমেন্ট সহ রাউটিং আচরণ নিয়ন্ত্রণকারী সেটিংস।
708
724
 
709
- | ফিল্ড | বর্ণনা | টাইপ | ডিফল্ট | উদাহরণ | মন্তব্য |
710
- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
711
- | `mode` | লোকাল ম্যানেজমেন্টের জন্য URL রাউটিং মোড। | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) অথবা `/fr/dashboard` (fr)। `'prefix-all'`: `/en/dashboard` । `'no-prefix'`: লোকাল অন্য উপায়ে ম্যানেজ করা হয়। `'search-params'`: `/dashboard?locale=fr` | এটি কুকি ম্যানেজমেন্ট বা লোকাল স্টোরেজকে প্রভাবিত করে না। |
712
- | `storage` | ক্লায়েন্টে লোকাল স্টোরেজের কনফিগারেশন। | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | নিচে স্টোরেজ প্যারামিটার টেবিল দেখুন। |
713
- | `basePath` | অ্যাপ্লিকেশন URL-এর জন্য বেস পাথ। | `string` | `''` | `'/my-app'` | যদি অ্যাপ্লিকেশনটি `https://example.com/my-app` ঠিকানায় চলে, তবে basePath হলো `'/my-app'` এবং URL গুলো হয় `https://example.com/my-app/en` |
714
- | `rewrite` | কাস্টম URL রিরাইট নিয়ম যা নির্দিষ্ট পাথের জন্য ডিফল্ট রাউটিং মোডকে ওভাররাইড করে। ডাইনামিক প্যারামিটার `[param]` সমর্থন করে। | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | উদাহরণ নিচে দেখুন | • রিরাইট নিয়মের অগ্রাধিকার `mode`-এর চেয়ে বেশি।<br/>• Next.js এবং Vite-এর সাথে কাজ করে।<br/>• `getLocalizedUrl()` স্বয়ংক্রিয়ভাবে যথাযথ নিয়ম প্রয়োগ করে।<br/>• [কাস্টম URL রিরাইট](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md) দেখুন। |
715
- | `domains` | ডোমেইন-ভিত্তিক রাউটিং এর জন্য লোকালগুলিকে ডোমেইন হোস্টনামের সাথে ম্যাপ করে। সেট করা হলে, সেই লোকালের জন্য URL গুলি এই ডোমেইনটিকে বেস (পরম URL) হিসেবে ব্যবহার করে এবং পাথে কোনো লোকাল প্রিফিক্স যোগ করা হয় না। | `Partial<Record<Locale, string>>` | `undefined` | `{ zh: 'intlayer.zh', fr: 'intlayer.org' }` | • হোস্টনামে অন্তর্ভুক্ত না থাকলে ডিফল্ট প্রোটোকল হলো `https://` ।<br/>• ডোমেইন নিজেই লোকালকে শনাক্ত করে, তাই `/zh/` প্রিফিক্স যোগ করা হয় না।<br/>• `getLocalizedUrl('/', 'zh')` রিটার্ন করে `https://intlayer.zh/` |
725
+ | ফিল্ড | বর্ণনা | টাইপ | ডিফল্ট | উদাহরণ | মন্তব্য |
726
+ | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
727
+ | `mode` | লোকাল ম্যানেজমেন্টের জন্য URL রাউটিং মোড। | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) অথবা `/fr/dashboard` (fr)। `'prefix-all'`: `/en/dashboard` । `'no-prefix'`: লোকাল অন্য উপায়ে ম্যানেজ করা হয়। `'search-params'`: `/dashboard?locale=fr` | এটি কুকি ম্যানেজমেন্ট বা লোকাল স্টোরেজকে প্রভাবিত করে না। |
728
+ | `enableProxy` | Intlayer লোকেল-রাউটিং প্রক্সি (মিডলওয়্যার) সক্রিয় করে। | `boolean` &#124; <br/> `undefined` | `undefined` (auto) | `true` | আনসেট (auto): dev preview সার্ভার কুকি/হেডারে সংরক্ষিত লোকেলকে রিডাইরেক্টের উৎস হিসেবে উপেক্ষা করে; প্রিফিক্স, সংরক্ষণ ও `Accept-Language` শনাক্তকরণ এখনও প্রযোজ্য। প্রোডাকশনে `true`-এর মতো।<br/>• `true`: সর্বত্র সম্পূর্ণ আচরণ।<br/>• `false`: কোনো লোকেল রাউটিং নেই। Next.js-এ `intlayerProxy` মিডলওয়্যার পাস-থ্রু হয়ে যায়। |
729
+ | `storage` | ক্লায়েন্টে লোকাল স্টোরেজের কনফিগারেশন। | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | নিচে স্টোরেজ প্যারামিটার টেবিল দেখুন। |
730
+ | `basePath` | অ্যাপ্লিকেশন URL-এর জন্য বেস পাথ। | `string` | `''` | `'/my-app'` | যদি অ্যাপ্লিকেশনটি `https://example.com/my-app` ঠিকানায় চলে, তবে basePath হলো `'/my-app'` এবং URL গুলো হয় `https://example.com/my-app/en` |
731
+ | `rewrite` | কাস্টম URL রিরাইট নিয়ম যা নির্দিষ্ট পাথের জন্য ডিফল্ট রাউটিং মোডকে ওভাররাইড করে। ডাইনামিক প্যারামিটার `[param]` সমর্থন করে। | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | উদাহরণ নিচে দেখুন | • রিরাইট নিয়মের অগ্রাধিকার `mode`-এর চেয়ে বেশি।<br/>• Next.js এবং Vite-এর সাথে কাজ করে।<br/>• `getLocalizedUrl()` স্বয়ংক্রিয়ভাবে যথাযথ নিয়ম প্রয়োগ করে।<br/>• [কাস্টম URL রিরাইট](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md) দেখুন। |
732
+ | `domains` | ডোমেইন-ভিত্তিক রাউটিং এর জন্য লোকালগুলিকে ডোমেইন হোস্টনামের সাথে ম্যাপ করে। সেট করা হলে, সেই লোকালের জন্য URL গুলি এই ডোমেইনটিকে বেস (পরম URL) হিসেবে ব্যবহার করে এবং পাথে কোনো লোকাল প্রিফিক্স যোগ করা হয় না। | `Partial<Record<Locale, string>>` | `undefined` | `{ zh: 'intlayer.zh', fr: 'intlayer.org' }` | • হোস্টনামে অন্তর্ভুক্ত না থাকলে ডিফল্ট প্রোটোকল হলো `https://` ।<br/>• ডোমেইন নিজেই লোকালকে শনাক্ত করে, তাই `/zh/` প্রিফিক্স যোগ করা হয় না।<br/>• `getLocalizedUrl('/', 'zh')` রিটার্ন করে `https://intlayer.zh/` । |
716
733
 
717
734
  **`rewrite` উদাহরণ**:
718
735
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
3
  updatedAt: 2026-05-31
4
- title: "Angular 21 i18n - আপনার অ্যাপ অনুবাদের সম্পূর্ণ গাইড"
5
- description: "আর i18next নয়। 2026 সালে Angular 21 অ্যাপ কে বহুভাষিক (i18n) করার গাইড। AI এজেন্ট দিয়ে অনুবাদ করুন এবং বান্ডেল সাইজ, SEO ও পারফরম্যান্স অপ্টিমাইজ করুন।"
4
+ title: "Angular 22 i18n - আপনার অ্যাপ অনুবাদের সম্পূর্ণ গাইড"
5
+ description: "আর i18next নয়। 2026 সালে Angular 22 অ্যাপ কে বহুভাষিক (i18n) করার গাইড। AI এজেন্ট দিয়ে অনুবাদ করুন এবং বান্ডেল সাইজ, SEO ও পারফরম্যান্স অপ্টিমাইজ করুন।"
6
6
  keywords:
7
7
  - আন্তর্জাতিকীকরণ
8
8
  - ডকুমেন্টেশন
@@ -13,8 +13,8 @@ slugs:
13
13
  - doc
14
14
  - environment
15
15
  - angular
16
- applicationTemplate: https://github.com/aymericzip/intlayer-angular-21-template
17
- applicationShowcase: https://intlayer-angular-21-template.vercel.app/
16
+ applicationTemplate: https://github.com/aymericzip/intlayer-angular-22-template
17
+ applicationShowcase: https://intlayer-angular-22-template.vercel.app/
18
18
  history:
19
19
  - version: 8.9.0
20
20
  date: 2026-05-04
@@ -31,7 +31,7 @@ history:
31
31
  author: aymericzip
32
32
  ---
33
33
 
34
- # Intlayer ব্যবহার করে আপনার Angular 21 (Vite) ওয়েবসাইট অনুবাদ করুন | আন্তর্জাতিকীকরণ (i18n)
34
+ # Intlayer ব্যবহার করে আপনার Angular 22 (Vite) ওয়েবসাইট অনুবাদ করুন | আন্তর্জাতিকীকরণ (i18n)
35
35
 
36
36
  ## সূচিপত্র
37
37
 
@@ -56,7 +56,7 @@ Intlayer এর মাধ্যমে আপনি যা করতে পার
56
56
  <Tab label="কোড" value="code">
57
57
 
58
58
  <iframe
59
- src="https://ide.intlayer.org/aymericzip/intlayer-angular-21-template?file=intlayer.config.ts"
59
+ src="https://ide.intlayer.org/aymericzip/intlayer-angular-22-template?file=intlayer.config.ts"
60
60
  className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
61
61
  title="Demo CodeSandbox - Intlayer ব্যবহার করে কীভাবে আপনার অ্যাপ্লিকেশনের আন্তর্জাতিকীকরণ করবেন"
62
62
  sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
@@ -67,7 +67,7 @@ Intlayer এর মাধ্যমে আপনি যা করতে পার
67
67
  <Tab label="ডেমো" value="demo">
68
68
 
69
69
  <iframe
70
- src="https://intlayer-angular-21-template.vercel.app/"
70
+ src="https://intlayer-angular-22-template.vercel.app/"
71
71
  className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
72
72
  title="Demo - intlayer-angular-template"
73
73
  sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
@@ -77,7 +77,7 @@ Intlayer এর মাধ্যমে আপনি যা করতে পার
77
77
  </Tab>
78
78
  </Tabs>
79
79
 
80
- GitHub এ [অ্যাপ্লিকেশন টেমপ্লেট](https://github.com/aymericzip/intlayer-angular-21-template) দেখুন।
80
+ GitHub এ [অ্যাপ্লিকেশন টেমপ্লেট](https://github.com/aymericzip/intlayer-angular-22-template) দেখুন।
81
81
 
82
82
  ### ধাপ ১: ডিপেন্ডেন্সি ইন্সটল করুন
83
83
 
@@ -159,7 +159,7 @@ export default config;
159
159
 
160
160
  ### ধাপ ৩: আপনার Angular কনফিগারেশনে Intlayer একত্রিত করুন
161
161
 
162
- Intlayer কে Angular CLI এর সাথে একত্রিত করতে আপনাকে একটি কাস্টম বিল্ডার ব্যবহার করতে হবে। এই গাইডটি ধরে নেয় যে আপনি Vite/esbuild ব্যবহার করছেন (Angular 21 প্রজেক্টের জন্য ডিফল্ট)।
162
+ Intlayer কে Angular CLI এর সাথে একত্রিত করতে আপনাকে একটি কাস্টম বিল্ডার ব্যবহার করতে হবে। এই গাইডটি ধরে নেয় যে আপনি Vite/esbuild ব্যবহার করছেন (Angular 22 প্রজেক্টের জন্য ডিফল্ট)।
163
163
 
164
164
  প্রথমে আপনার `angular.json` পরিবর্তন করে কাস্টম esbuild বিল্ডার ব্যবহার করুন। `build` এবং `serve` কনফিগারেশন আপডেট করুন:
165
165
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-08-13
3
- updatedAt: 2026-07-11
3
+ updatedAt: 2026-08-06
4
4
  title: Konfigurace (Configuration)
5
5
  description: Naučte se, jak nakonfigurovat Intlayer pro vaši aplikaci. Porozumějte různým nastavením a možnostem dostupným pro přizpůsobení Intlayer vašim potřebám.
6
6
  keywords:
@@ -14,6 +14,9 @@ slugs:
14
14
  - concept
15
15
  - configuration
16
16
  history:
17
+ - version: 9.1.3
18
+ date: 2026-08-06
19
+ changes: "Změna `routing.enableProxy` na tři stavy: nenastaveno (auto), `true`, `false`"
17
20
  - version: 9.0.0
18
21
  date: 2026-07-11
19
22
  changes: "Přidána konfigurace `analytics`"
@@ -235,6 +238,19 @@ const config: IntlayerConfig = {
235
238
  */
236
239
  mode: "prefix-no-default",
237
240
 
241
+ /**
242
+ * Zapíná proxy pro směrování locale v Intlayeru (middleware).
243
+ * Řeší detekci locale, přesměrování a přepisy URL ve dev, preview a SSR.
244
+ * - nenastaveno (auto): dev a preview servery drží směrování řízené URL a ignorují
245
+ * locale uloženou v cookies a hlavičkách. Prefixy se stále vyhodnocují, locale
246
+ * se stále ukládá a detekce Accept-Language stále platí.
247
+ * V produkci se chová jako `true`.
248
+ * - true: plné chování ve všech prostředích.
249
+ * - false: žádné směrování locale.
250
+ * Výchozí: undefined (auto)
251
+ */
252
+ enableProxy: undefined,
253
+
238
254
  /**
239
255
  * Kde ukládat uživatelem zvolenou lokalitu.
240
256
  * Možnosti: 'cookie', 'localStorage', 'sessionStorage', 'header' nebo jejich pole.
@@ -713,13 +729,14 @@ Analytika je striktně opt-in: nic se neshromažďuje, pokud není `analytics.en
713
729
 
714
730
  Nastavení ovládající chování routování, včetně struktury URL, ukládání lokalit a správy middleware.
715
731
 
716
- | Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
717
- | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
718
- | `mode` | Režim routování URL pro správu lokalit. | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) nebo `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: lokalita spravována jinými způsoby. `'search-params'`: `/dashboard?locale=fr` | Neovlivňuje správu cookies nebo úložiště lokalit. |
719
- | `storage` | Konfigurace ukládání lokality na klientovi. | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Viz tabulka parametrů úložiště níže. |
720
- | `basePath` | Základní cesta pro URL aplikace. | `string` | `''` | `'/my-app'` | Pokud aplikace běží na adrese `https://example.com/my-app`, basePath je `'/my-app'` a URL se stanou `https://example.com/my-app/en`. |
721
- | `rewrite` | Vlastní pravidla přepisu URL, která přebíjejí výchozí režim routování pro konkrétní cesty. Podporuje dynamické parametry `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Viz příklad níže | Pravidla přepisu mají prioritu před `mode`.<br/>• Funguje s Next.js a Vite.<br/>• `getLocalizedUrl()` automaticky aplikuje odpovídající pravidla.<br/>• Viz [Vlastní přepisy URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
722
- | `domains` | Mapuje lokality na doménová jména hostitelů pro směrování založené na doménách. Pokud je nastaveno, URL pro danou lokalitu používají tuto doménu jako základ (absolutní URL) a do cesty není přidán žádný prefix lokality. | `Partial<Record<Locale, string>>` | `undefined` | `{ zh: 'intlayer.zh', fr: 'intlayer.org' }` | • Výchozí protokol je `https://`, pokud není součástí hostitele.<br/>• Doména sama identifikuje lokalitu, takže prefix `/zh/` není přidán.<br/>• `getLocalizedUrl('/', 'zh')` vrací `https://intlayer.zh/`. |
732
+ | Pole | Popis | Typ | Výchozí | Příklad | Poznámka |
733
+ | ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
734
+ | `mode` | Režim routování URL pro správu lokalit. | `'prefix-no-default'` &#124; <br/> `'prefix-all'` &#124; <br/> `'no-prefix'` &#124; <br/> `'search-params'` | `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) nebo `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: lokalita spravována jinými způsoby. `'search-params'`: `/dashboard?locale=fr` | Neovlivňuje správu cookies nebo úložiště lokalit. |
735
+ | `enableProxy` | Zapíná proxy pro směrování locale v Intlayeru (middleware). | `boolean` &#124; <br/> `undefined` | `undefined` (auto) | `true` | Nenastaveno (auto): dev a preview servery ignorují locale uloženou v cookies/hlavičkách jako zdroj přesměrování; prefixy, ukládání locale a detekce `Accept-Language` stále platí. V produkci se chová jako `true`.<br/>• `true`: plné chování všude.<br/>• `false`: žádné směrování locale. V Next.js se middleware `intlayerProxy` stane průchozím. |
736
+ | `storage` | Konfigurace ukládání lokality na klientovi. | `false` &#124; <br/> `'cookie'` &#124; <br/> `'localStorage'` &#124; <br/> `'sessionStorage'` &#124; <br/> `'header'` &#124; <br/> `CookiesAttributes` &#124; <br/> `StorageAttributes` &#124; <br/> `Array` | `['cookie', 'header']` | `'localStorage'` <br/> `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | Viz tabulka parametrů úložiště níže. |
737
+ | `basePath` | Základní cesta pro URL aplikace. | `string` | `''` | `'/my-app'` | Pokud aplikace běží na adrese `https://example.com/my-app`, basePath je `'/my-app'` a URL se stanou `https://example.com/my-app/en`. |
738
+ | `rewrite` | Vlastní pravidla přepisu URL, která přebíjejí výchozí režim routování pro konkrétní cesty. Podporuje dynamické parametry `[param]`. | `Record<string, StrictModeLocaleMap<string>>` | `undefined` | Viz příklad níže | • Pravidla přepisu mají prioritu před `mode`.<br/>• Funguje s Next.js a Vite.<br/>• `getLocalizedUrl()` automaticky aplikuje odpovídající pravidla.<br/>• Viz [Vlastní přepisy URL](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/custom_url_rewrites.md). |
739
+ | `domains` | Mapuje lokality na doménová jména hostitelů pro směrování založené na doménách. Pokud je nastaveno, URL pro danou lokalitu používají tuto doménu jako základ (absolutní URL) a do cesty není přidán žádný prefix lokality. | `Partial<Record<Locale, string>>` | `undefined` | `{ zh: 'intlayer.zh', fr: 'intlayer.org' }` | • Výchozí protokol je `https://`, pokud není součástí hostitele.<br/>• Doména sama identifikuje lokalitu, takže prefix `/zh/` není přidán.<br/>• `getLocalizedUrl('/', 'zh')` vrací `https://intlayer.zh/`. |
723
740
 
724
741
  **Příklad `rewrite`**:
725
742
 
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
3
  updatedAt: 2026-05-31
4
- title: "Angular 21 i18n - Kompletní průvodce překladem vaší aplikace"
5
- description: "Žádný i18next. Průvodce 2026 pro vytváření vícejazyčné (i18n) aplikace Angular 21. Překládejte pomocí agentů AI a optimalizujte velikost bundlu, SEO a výkon."
4
+ title: "Angular 22 i18n - Kompletní průvodce překladem vaší aplikace"
5
+ description: "Žádný i18next. Průvodce 2026 pro vytváření vícejazyčné (i18n) aplikace Angular 22. Překládejte pomocí agentů AI a optimalizujte velikost bundlu, SEO a výkon."
6
6
  keywords:
7
7
  - Internacionalizace
8
8
  - Dokumentace
@@ -13,8 +13,8 @@ slugs:
13
13
  - doc
14
14
  - environment
15
15
  - angular
16
- applicationTemplate: https://github.com/aymericzip/intlayer-angular-21-template
17
- applicationShowcase: https://intlayer-angular-21-template.vercel.app/
16
+ applicationTemplate: https://github.com/aymericzip/intlayer-angular-22-template
17
+ applicationShowcase: https://intlayer-angular-22-template.vercel.app/
18
18
  history:
19
19
  - version: 8.9.0
20
20
  date: 2026-05-04
@@ -31,7 +31,7 @@ history:
31
31
  author: aymericzip
32
32
  ---
33
33
 
34
- # Přeložte svůj web Angular 21 (Vite) pomocí Intlayer | Internacionalizace (i18n)
34
+ # Přeložte svůj web Angular 22 (Vite) pomocí Intlayer | Internacionalizace (i18n)
35
35
 
36
36
  ## Obsah
37
37
 
@@ -56,7 +56,7 @@ S Intlayer můžete:
56
56
  <Tab label="Kód" value="code">
57
57
 
58
58
  <iframe
59
- src="https://ide.intlayer.org/aymericzip/intlayer-angular-21-template?file=intlayer.config.ts"
59
+ src="https://ide.intlayer.org/aymericzip/intlayer-angular-22-template?file=intlayer.config.ts"
60
60
  className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
61
61
  title="Demo CodeSandbox - Jak internacionalizovat vaši aplikaci pomocí Intlayer"
62
62
  sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
@@ -67,7 +67,7 @@ S Intlayer můžete:
67
67
  <Tab label="Demo" value="demo">
68
68
 
69
69
  <iframe
70
- src="https://intlayer-angular-21-template.vercel.app/"
70
+ src="https://intlayer-angular-22-template.vercel.app/"
71
71
  className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
72
72
  title="Demo - intlayer-angular-template"
73
73
  sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
@@ -77,7 +77,7 @@ S Intlayer můžete:
77
77
  </Tab>
78
78
  </Tabs>
79
79
 
80
- Podívejte se na [šablonu aplikace](https://github.com/aymericzip/intlayer-angular-21-template) na GitHubu.
80
+ Podívejte se na [šablonu aplikace](https://github.com/aymericzip/intlayer-angular-22-template) na GitHubu.
81
81
 
82
82
  <Steps>
83
83
 
@@ -165,7 +165,7 @@ export default config;
165
165
 
166
166
  <Step number={3} title="Integrace Intlayer do vaší konfigurace Angular">
167
167
 
168
- K integraci Intlayer s Angular CLI je nutné použít vlastní builder. Tento průvodce předpokládá, že používáte Vite/esbuild (výchozí pro projekty Angular 21).
168
+ K integraci Intlayer s Angular CLI je nutné použít vlastní builder. Tento průvodce předpokládá, že používáte Vite/esbuild (výchozí pro projekty Angular 22).
169
169
 
170
170
  Nejprve upravte svůj `angular.json` tak, aby používal vlastní esbuild builder. Aktualizujte konfigurace pro `build` a `serve`:
171
171
 
@@ -0,0 +1,222 @@
1
+ ---
2
+ createdAt: 2026-07-08
3
+ updatedAt: 2026-07-08
4
+ title: Intlayer Analytics | Inhalte nachverfolgen und A/B-Tests durchführen
5
+ description: Erfahren Sie, wie @intlayer/analytics Seiten-/Gebietsschema-Aufrufe und die Anzeige von Inhalten nachverfolgt und wie Sie damit A/B-Tests für Ihre Intlayer-Inhalte durchführen können.
6
+ keywords:
7
+ - Analytics
8
+ - A/B-Tests
9
+ - Zielgruppe
10
+ - Internationalisierung
11
+ - Dokumentation
12
+ - Intlayer
13
+ - Next.js
14
+ - JavaScript
15
+ - React
16
+ slugs:
17
+ - doc
18
+ - concept
19
+ - analytics
20
+ history:
21
+ - version: 9.0.0
22
+ date: 2026-07-08
23
+ changes: "Init doc — @intlayer/analytics Paket, Nachverfolgung auf Provider-/Node-Ebene, A/B-Tests, Dashboard"
24
+ author: aymericzip
25
+ ---
26
+
27
+ # Intlayer Analytics Dokumentation
28
+
29
+ `@intlayer/analytics` ist ein optionales Begleitpaket, das Ihnen mitteilt, **welche Inhalte Ihren Besuchern tatsächlich angezeigt werden** — welche Seite, in welchem Gebietsschema (Locale) und welcher spezifische Teil des übersetzten Inhalts — damit Sie Ihr Publikum verstehen und **A/B-Tests für Inhalte** durchführen können.
30
+
31
+ ## Inhaltsverzeichnis
32
+
33
+ <TOC/>
34
+
35
+ ---
36
+
37
+ ## Was es nachverfolgt
38
+
39
+ `@intlayer/analytics` bündelt drei Arten von anonymen Ereignissen:
40
+
41
+ | Ereignis | Wo erfasst | Was es Ihnen sagt |
42
+ | ------------------ | ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
43
+ | `page_view` | Provider-Ebene (`IntlayerProvider`) | Welche Seite und welches Gebietsschema eine Sitzung beim ersten Laden, beim Routenwechsel oder Gebietsschema-Wechsel aufgerufen hat. |
44
+ | `content_exposure` | Node-Ebene (`useIntlayer` / Interpreter-Plugins) | Welcher Wörterbuchschlüssel / Schlüsselpfad tatsächlich aufgelöst und angezeigt wurde — und, falls Teil eines Experiments, welche **Variante**. |
45
+ | `conversion` | Überall dort, wo Sie `useConversion()` aufrufen | Ein erreichtes Ziel (Anmeldung, Klick, Kauf...), das der A/B-Variante zugeschrieben wird, der die Sitzung ausgesetzt war. |
46
+
47
+ Ereignisse werden im Speicher gesammelt und als **einzelne Batch-Anfrage etwa alle 20 Sekunden** gesendet — niemals bei jedem Tastendruck oder Rendern — sodass die Analytik niemals die erste Renderzeit beeinträchtigt oder eine Anfrage pro Interaktion hinzufügt.
48
+
49
+ ## Wie es A/B-Tests für Inhalte ermöglicht
50
+
51
+ Mit Intlayer können Sie bereits inhaltliche [Varianten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dynamic_dictionaries/index.md) deklarieren (z. B. ein `hero-banner` Wörterbuch mit einer `control` und einer `black_friday` Variante). `@intlayer/analytics` schließt den Kreis:
52
+
53
+ 1. `getVariant(experimentKey, variants)` weist jede anonyme Sitzung deterministisch einer Variante zu — eine reine Funktion der Sitzungs-ID und des Experimentschlüssels, sodass die Zuweisung **über die gesamte Sitzung hinweg stabil** ist und **keine Server-Roundtrips** vor dem ersten Rendern erfordert (kein Flackern, keine Layout-Verschiebung).
54
+ 2. Jedes `content_exposure` Ereignis enthält die `variant`, die angezeigt wurde.
55
+ 3. Mit `useConversion()` können Sie dieser Variante ein Ziel (z. B. `"cta_click"`) zuschreiben.
56
+ 4. Der Endpunkt für die Experimentergebnisse des Dashboards vergleicht die Konversionsraten pro Variante, einschließlich der statistischen Signifikanz (ein z-Test).
57
+
58
+ ## Installation
59
+
60
+ `@intlayer/analytics` ist eine **optionale Peer-Abhängigkeit** — sie wird niemals automatisch durch ein Framework-Paket installiert. Fügen Sie es neben `intlayer` hinzu:
61
+
62
+ ```bash packageManager="npm"
63
+ npm install @intlayer/analytics
64
+ ```
65
+
66
+ ```bash packageManager="yarn"
67
+ yarn add @intlayer/analytics
68
+ ```
69
+
70
+ ```bash packageManager="pnpm"
71
+ pnpm add @intlayer/analytics
72
+ ```
73
+
74
+ ```bash packageManager="bun"
75
+ bun add @intlayer/analytics
76
+ ```
77
+
78
+ Wenn Sie es nicht installieren, wird jeder Integrationspunkt in ein No-Op aufgelöst — siehe [Keine Kosten, wenn nicht installiert](#keine-kosten-wenn-nicht-installiert) unten.
79
+
80
+ ## Konfiguration
81
+
82
+ Analytics **verwendet den vorhandenen `editor` Konfigurationsblock wieder** — es gibt kein separates `analytics` Konfigurationsschema auszufüllen:
83
+
84
+ ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
85
+ import type { IntlayerConfig } from "intlayer";
86
+
87
+ const config: IntlayerConfig = {
88
+ editor: {
89
+ backendURL: "https://back.intlayer.org", // Wird auch als Analytics-Ingestion-Endpunkt verwendet
90
+ clientId: "your-client-id", // Wird auch als Analytics-Projektschlüssel verwendet
91
+ clientSecret: "your-client-secret",
92
+ },
93
+ };
94
+
95
+ export default config;
96
+ ```
97
+
98
+ - `editor.backendURL` — die Basis-URL, an die Analytics-Ereignisse gesendet werden (`POST {backendURL}/api/analytics/events`).
99
+ - `editor.clientId` — der öffentliche Projektschlüssel, der jedem aufgenommenen Ereignis zugeschrieben wird. Es fungiert auch als **Aktivierungsschalter**: Analytics bleibt vollständig deaktiviert (und als Dead-Code eliminiert, siehe unten), bis `clientId` konfiguriert ist.
100
+
101
+ Wenn Sie Intlayer selbst hosten, verweist die Analytik automatisch auf Ihre eigene Instanz, da sie `editor.backendURL` teilt.
102
+
103
+ ## Framework-Unterstützung
104
+
105
+ Analytics ist mit dem freigegebenen `IntlayerProvider` von `react-intlayer` verdrahtet und steht daher heute überall dort zur Verfügung, wo dieser Provider verwendet wird:
106
+
107
+ | Framework | Status |
108
+ | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
109
+ | React | ✅ Verfügbar |
110
+ | Next.js (`next-intlayer`) | ✅ Verfügbar (über `react-intlayer`) |
111
+ | React Native / Expo (`react-native-intlayer`) | ✅ Verfügbar (über `react-intlayer`) |
112
+ | Vue, Svelte, Angular, Solid, Preact, Lit, Astro, Vanilla | 🚧 Geplant — gleicher Client, Provider-Level-Bindungen nach dem `@intlayer/editor` Rollout-Muster |
113
+
114
+ ## Verwendung
115
+
116
+ ### Automatische Nachverfolgung auf Provider-Ebene
117
+
118
+ Es sind keine Codeänderungen erforderlich. Sobald `@intlayer/analytics` installiert und `editor.clientId` konfiguriert ist, führt der `IntlayerProvider` automatisch Folgendes aus:
119
+
120
+ - initialisiert den Analytics-Client beim Mounten,
121
+ - zeichnet einen `page_view` beim ersten Laden auf,
122
+ - zeichnet einen `page_view` bei jedem Gebietsschema-Wechsel auf,
123
+ - startet die ca. 20-sekündige Flush-Schleife und flusht verbleibende Ereignisse beim Unmounten / Schließen des Tabs (über `navigator.sendBeacon`, andernfalls `fetch(..., { keepalive: true })`).
124
+
125
+ ### Automatische Nachverfolgung auf Node-Ebene
126
+
127
+ Jedes Mal, wenn `useIntlayer` einen Inhalt zur Anzeige auflöst, meldet der Interpreter ein `content_exposure` Ereignis für genau diese `dictionaryKey` + Schlüsselpfad + Gebietsschema — auch hier sind keine Codeänderungen erforderlich. Wiederholte Expositionen desselben Knotens innerhalb eines Flush-Fensters werden zu einem einzigen Ereignis mit einem `count` zusammengefasst, sodass eine Liste, die 50 Mal neu gerendert wird, nicht 50 Ereignisse sendet.
128
+
129
+ ### Nachverfolgung von Konversionen für A/B-Tests
130
+
131
+ Verwenden Sie `useConversion()`, um einer Variante, die eine Sitzung gesehen hat, ein Ziel zuzuschreiben:
132
+
133
+ ```tsx fileName="CTAButton.tsx" codeFormat="tsx"
134
+ import { useConversion } from "react-intlayer";
135
+
136
+ const CTAButton = () => {
137
+ const trackConversion = useConversion();
138
+
139
+ return (
140
+ <button
141
+ onClick={() =>
142
+ trackConversion({
143
+ experimentKey: "homepage-hero",
144
+ variant: "black_friday",
145
+ goal: "cta_click",
146
+ })
147
+ }
148
+ >
149
+ Loslegen
150
+ </button>
151
+ );
152
+ };
153
+ ```
154
+
155
+ ### Auflösung einer Variante auf der Clientseite
156
+
157
+ ```tsx fileName="useHeroVariant.ts" codeFormat="tsx"
158
+ import { getGlobalAnalyticsClient } from "@intlayer/analytics/client";
159
+
160
+ const client = getGlobalAnalyticsClient();
161
+ const variant = client?.getVariant("homepage-hero", [
162
+ "control",
163
+ "black_friday",
164
+ ]);
165
+ ```
166
+
167
+ ## Datenschutz & Leistung
168
+
169
+ - **Anonym durch Design**: Sitzungen werden durch eine rotierende ID identifiziert; das Backend speichert nur einen **SHA-256-Hash** dieser ID — niemals die rohe ID, niemals eine IP-Adresse.
170
+ - **Standort ist grob**: nur ein Ländercode, der aus CDN-Geolokalisierungs-Headern (`cf-ipcountry`, `x-vercel-ip-country`, ...) abgeleitet wird — es wird keine IP gelesen oder gespeichert.
171
+ - **URLs schließen Suchparameter aus**: standardmäßig werden Query-Strings nie erfasst.
172
+ - **Sampling**: `sampleRate` ermöglicht es Ihnen, bei Traffic-starken Apps nur einen Bruchteil der Content-Exposure-Ereignisse zu behalten.
173
+ - **Gepoolt**: eine Anfrage ungefähr alle 20 Sekunden (`flushInterval`), oder früher, wenn der Puffer voll ist (`maxBufferSize`) — niemals eine Anfrage pro Ereignis.
174
+
175
+ ### Keine Kosten, wenn nicht installiert
176
+
177
+ `@intlayer/analytics` folgt genau dem gleichen optionalen Abhängigkeitsmuster wie `@intlayer/editor`:
178
+
179
+ - Jeder Integrationspunkt lädt das Paket über einen **dynamischen `import()` umhüllt in `try/catch`** — eine App, die `@intlayer/analytics` nie installiert, zahlt weder für Bundle-Größe noch Laufzeitkosten und sieht nie einen Fehler;
180
+ - eine Umgebungsvariable zur Kompilierzeit (`INTLAYER_ANALYTICS_ENABLED`), die von `@intlayer/config` automatisch auf `'false'` gesetzt wird, wenn `editor.clientId` nicht konfiguriert ist, ermöglicht es Bundlern, die gesamte Integration **als Dead-Code zu eliminieren**;
181
+ - Analytics ist im Intlayer Editor/CMS-Vorschau-Iframe deaktiviert, sodass Editor-Sitzungen niemals als echter Traffic gewertet werden.
182
+
183
+ ## Dashboard: Analytics-Seite
184
+
185
+ Sobald Ihr Projekt Ereignisse gesammelt hat, zeigt die Seite **Analytics** im [Intlayer Dashboard](https://app.intlayer.org/analytics) (sichtbar in der Seitenleiste, sobald ein Projekt ausgewählt ist) Folgendes an:
186
+
187
+ - **Aktive Nutzer** — eindeutige Besucher über das ausgewählte rollierende Zeitfenster (7 / 30 / 90 Tage).
188
+ - **Nutzer heute** und **Nutzer in den letzten 7 Tagen**.
189
+ - **Seitenaufrufe** über das ausgewählte Zeitfenster.
190
+ - Ein **Verlaufsdiagramm** der täglichen eindeutigen Besucher.
191
+ - Registerkarten für die Aufschlüsselung nach **Gebietsschemas (Locales)** und **Standort**, die Ihre Zielgruppe nach Gebietsschema und Land einordnen.
192
+
193
+ ## Backend-API-Referenz
194
+
195
+ Alle Lese-Endpunkte erfordern Authentifizierung; die Ingestion ist öffentlich und wird durch `clientId` zugeordnet.
196
+
197
+ | Methode | Endpunkt | Beschreibung |
198
+ | ------- | ------------------------------------------- | ------------------------------------------------------------------------------------------- |
199
+ | `POST` | `/api/analytics/events` | Aufnahme eines Batches von Ereignissen (öffentlich, zugewiesen durch `clientId` im Body). |
200
+ | `GET` | `/api/analytics/overview` | Seiten-/Gebietsschema-Gesamtwerte für das authentifizierte Projekt. |
201
+ | `GET` | `/api/analytics/audience?days=30` | Eindeutige Besucher, Seitenaufrufe, Tagesserien, Gebietsschema- + Länder-Aufschlüsselungen. |
202
+ | `GET` | `/api/analytics/content-stats` | Content-Exposure-Gesamtwerte, gruppiert nach Wörterbuchschlüssel / Pfad / Gebietsschema. |
203
+ | `GET` | `/api/analytics/experiments/:experimentKey` | Konversionsraten pro Variante und statistische Signifikanz für ein A/B-Experiment. |
204
+
205
+ Sie können diese auch programmgesteuert mit dem [CMS SDK](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_CMS.md) aufrufen:
206
+
207
+ ```ts fileName="analytics.ts"
208
+ import { createIntlayerCMS } from "@intlayer/api";
209
+ import { analyticsEndpoint } from "@intlayer/api/analytics";
210
+
211
+ const cms = createIntlayerCMS();
212
+
213
+ const { data: audience } = await analyticsEndpoint(cms).getAudience(30);
214
+ ```
215
+
216
+ ## Nützliche Links
217
+
218
+ - [Dynamische Wörterbücher - Kollektionen & Varianten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dynamic_dictionaries/index.md)
219
+ - [Intlayer CMS - CMS SDK](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_CMS.md)
220
+ - [Intlayer Visueller Editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_visual_editor.md)
221
+ - [Konfigurationsreferenz](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/configuration.md)
222
+ - [Self-Hosting-Leitfaden](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/self_hosting.md)
@@ -75,11 +75,30 @@ In v7 hat sich das Verhalten des `fill`-Befehls aktualisiert:
75
75
 
76
76
  Bei Verwendung einer Path-Option zum Schreiben in eine andere Datei funktioniert der Fill-Mechanismus über eine _Master-Slave_-Beziehung zwischen Content-Declaration-Dateien. Die Hauptdatei (Master) dient als Single Source of Truth, und wenn sie aktualisiert wird, wendet Intlayer diese Änderungen automatisch auf die abgeleiteten (gefüllten) Declaration-Dateien an, die durch den Path angegeben werden.
77
77
 
78
- # Übersetzungen der Deklarationsdatei für automatisches Ausfüllen von Inhalten
78
+ ### Pro-Locale-Anpassung
79
79
 
80
- **Deklarationsdateien für automatisches Ausfüllen von Inhalten** sind eine Möglichkeit, Ihren Entwicklungsworkflow zu beschleunigen.
80
+ Sie können das Verhalten für jedes Locale auch anpassen, indem Sie ein Objekt verwenden:
81
81
 
82
- Der Mechanismus des automatischen Ausfüllens funktioniert durch eine _Master-Slave_-Beziehung zwischen Inhaltsdeklarationsdateien. Wenn die Hauptdatei (Master) aktualisiert wird, wendet Intlayer diese Änderungen automatisch auf die abgeleiteten (automatisch ausgefüllten) Deklarationsdateien an.
82
+ ```ts fileName="intlayer.config.ts"
83
+ const config: IntlayerConfig = {
84
+ content: {
85
+ internationalization: {
86
+ locales: [Locales.ENGLISH, Locales.FRENCH, Locales.POLISH],
87
+ defaultLocale: Locales.ENGLISH,
88
+ requiredLocales: [Locales.ENGLISH], // Empfohlen, um zu vermeiden, dass Property 'pl' in type '{ en: string; xxx } on your t function fehlt
89
+ },
90
+ },
91
+ dictionary: {
92
+ fill: {
93
+ en: true, // Aktuelle Datei für Englisch ausfüllen und bearbeiten
94
+ fr: "./translations/fr.json", // Separate Datei für Französisch erstellen
95
+ es: false, // Ausfüllen für Spanisch deaktivieren
96
+ },
97
+ },
98
+ };
99
+ ```
100
+
101
+ Dies ermöglicht es Ihnen, verschiedene Fill-Verhalten für verschiedene Locales innerhalb desselben Projekts zu haben.
83
102
 
84
103
  ```ts fileName="src/components/example/example.content.ts"
85
104
  import { Locales, type Dictionary } from "intlayer";
@@ -87,18 +106,18 @@ import { Locales, type Dictionary } from "intlayer";
87
106
  const exampleContent = {
88
107
  key: "example",
89
108
  locale: Locales.ENGLISH,
90
- autoFill: "./example.content.json",
109
+ fill: "./example.content.json",
91
110
  content: {
92
- contentExample: "Dies ist ein Beispielinhalt", // Beispielinhalt
111
+ contentExample: "This is an example of content",
93
112
  },
94
113
  } satisfies Dictionary;
95
114
 
96
115
  export default exampleContent;
97
116
  ```
98
117
 
99
- Hier ist eine [pro-Locale Inhaltsdeklarationsdatei](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/per_locale_file.md) mit der `autoFill`-Anweisung.
118
+ Hier ist eine [Pro-Locale-Inhaltsdeklarationsdatei](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/per_locale_file.md), die die `fill`-Anweisung verwendet.
100
119
 
101
- Dann, wenn Sie den folgenden Befehl ausführen:
120
+ Wenn Sie dann den folgenden Befehl ausführen:
102
121
 
103
122
  ```bash packageManager="npm"
104
123
  npx intlayer fill --file 'src/components/example/example.content.ts'
@@ -116,7 +135,7 @@ pnpm intlayer fill --file 'src/components/example/example.content.ts'
116
135
  bun x intlayer fill --file 'src/components/example/example.content.ts'
117
136
  ```
118
137
 
119
- Intlayer generiert automatisch die abgeleitete Deklarationsdatei unter `src/components/example/example.content.json` und füllt alle Lokalisierungen aus, die in der Hauptdatei noch nicht deklariert sind.
138
+ Intlayer generiert automatisch die abgeleitete Deklarationsdatei unter `src/components/example/example.content.json` und füllt alle Locales aus, die nicht bereits in der Hauptdatei deklariert sind.
120
139
 
121
140
  ```json5 fileName="src/components/example/example.content.json"
122
141
  {
@@ -133,7 +152,7 @@ Intlayer generiert automatisch die abgeleitete Deklarationsdatei unter `src/comp
133
152
  }
134
153
  ```
135
154
 
136
- Anschließend werden beide Deklarationsdateien zu einem einzigen Wörterbuch zusammengeführt, das über den Standard-`useIntlayer("example")` Hook (React) / Composable (Vue) zugänglich ist.
155
+ Danach werden beide Deklarationsdateien in ein einzelnes Wörterbuch zusammengeführt, das mit dem Standard-`useIntlayer("example")`-Hook (React) / Composable (Vue) zugänglich ist.
137
156
 
138
157
  ## Globale Konfiguration
139
158