@intlayer/docs 9.5.6 → 9.5.8

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 (643) hide show
  1. package/blog/ar/i18next_vs_intlayer-i18next.md +122 -15
  2. package/blog/ar/i18next_vs_intlayer.md +130 -16
  3. package/blog/ar/is_intlayer_lighter_than_paraglide.md +284 -0
  4. package/blog/ar/lingui_vs_intlayer.md +122 -15
  5. package/blog/ar/next-intl_vs_intlayer-next-intl.md +124 -15
  6. package/blog/ar/next-intl_vs_intlayer.md +136 -20
  7. package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +119 -17
  8. package/blog/ar/vue-i18n_vs_intlayer.md +193 -31
  9. package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +361 -0
  10. package/blog/de/i18next_vs_intlayer-i18next.md +122 -15
  11. package/blog/de/i18next_vs_intlayer.md +128 -14
  12. package/blog/de/is_intlayer_lighter_than_paraglide.md +284 -0
  13. package/blog/de/lingui_vs_intlayer.md +122 -15
  14. package/blog/de/next-intl_vs_intlayer-next-intl.md +124 -15
  15. package/blog/de/next-intl_vs_intlayer.md +125 -15
  16. package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  17. package/blog/de/vue-i18n_vs_intlayer.md +193 -31
  18. package/blog/en/i18next_vs_intlayer-i18next.md +121 -14
  19. package/blog/en/i18next_vs_intlayer.md +128 -14
  20. package/blog/en/is_intlayer_lighter_than_paraglide.md +288 -0
  21. package/blog/en/lingui_vs_intlayer.md +124 -15
  22. package/blog/en/next-intl_vs_intlayer-next-intl.md +123 -14
  23. package/blog/en/next-intl_vs_intlayer.md +125 -13
  24. package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +115 -15
  25. package/blog/en/vue-i18n_vs_intlayer.md +188 -27
  26. package/blog/en-GB/i18next_vs_intlayer-i18next.md +121 -14
  27. package/blog/en-GB/i18next_vs_intlayer.md +128 -14
  28. package/blog/en-GB/is_intlayer_lighter_than_paraglide.md +285 -0
  29. package/blog/en-GB/lingui_vs_intlayer.md +122 -15
  30. package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +124 -15
  31. package/blog/en-GB/next-intl_vs_intlayer.md +125 -15
  32. package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  33. package/blog/en-GB/vue-i18n_vs_intlayer.md +187 -25
  34. package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +116 -0
  35. package/blog/es/i18next_vs_intlayer-i18next.md +122 -15
  36. package/blog/es/i18next_vs_intlayer.md +128 -14
  37. package/blog/es/is_intlayer_lighter_than_paraglide.md +284 -0
  38. package/blog/es/lingui_vs_intlayer.md +122 -15
  39. package/blog/es/next-intl_vs_intlayer-next-intl.md +124 -15
  40. package/blog/es/next-intl_vs_intlayer.md +125 -15
  41. package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  42. package/blog/es/vue-i18n_vs_intlayer.md +193 -31
  43. package/blog/fr/i18next_vs_intlayer-i18next.md +122 -15
  44. package/blog/fr/i18next_vs_intlayer.md +128 -14
  45. package/blog/fr/is_intlayer_lighter_than_paraglide.md +284 -0
  46. package/blog/fr/lingui_vs_intlayer.md +122 -15
  47. package/blog/fr/next-intl_vs_intlayer-next-intl.md +124 -15
  48. package/blog/fr/next-intl_vs_intlayer.md +127 -15
  49. package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +118 -17
  50. package/blog/fr/vue-i18n_vs_intlayer.md +192 -31
  51. package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +329 -7
  52. package/blog/hi/i18next_vs_intlayer-i18next.md +122 -15
  53. package/blog/hi/i18next_vs_intlayer.md +130 -16
  54. package/blog/hi/is_intlayer_lighter_than_paraglide.md +284 -0
  55. package/blog/hi/lingui_vs_intlayer.md +122 -15
  56. package/blog/hi/next-intl_vs_intlayer-next-intl.md +124 -15
  57. package/blog/hi/next-intl_vs_intlayer.md +135 -19
  58. package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  59. package/blog/hi/vue-i18n_vs_intlayer.md +193 -31
  60. package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  61. package/blog/id/i18next_vs_intlayer-i18next.md +122 -15
  62. package/blog/id/i18next_vs_intlayer.md +128 -14
  63. package/blog/id/is_intlayer_lighter_than_paraglide.md +284 -0
  64. package/blog/id/lingui_vs_intlayer.md +122 -15
  65. package/blog/id/next-intl_vs_intlayer-next-intl.md +124 -15
  66. package/blog/id/next-intl_vs_intlayer.md +135 -19
  67. package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +354 -2
  68. package/blog/id/vue-i18n_vs_intlayer.md +188 -26
  69. package/blog/id/vue-i18n_vs_intlayer_benchmark.md +327 -7
  70. package/blog/it/i18next_vs_intlayer-i18next.md +122 -15
  71. package/blog/it/i18next_vs_intlayer.md +128 -14
  72. package/blog/it/is_intlayer_lighter_than_paraglide.md +284 -0
  73. package/blog/it/lingui_vs_intlayer.md +122 -15
  74. package/blog/it/next-intl_vs_intlayer-next-intl.md +124 -15
  75. package/blog/it/next-intl_vs_intlayer.md +125 -15
  76. package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  77. package/blog/it/vue-i18n_vs_intlayer.md +191 -31
  78. package/blog/it/vue-i18n_vs_intlayer_benchmark.md +332 -5
  79. package/blog/ja/i18next_vs_intlayer-i18next.md +122 -15
  80. package/blog/ja/i18next_vs_intlayer.md +129 -17
  81. package/blog/ja/is_intlayer_lighter_than_paraglide.md +284 -0
  82. package/blog/ja/lingui_vs_intlayer.md +122 -15
  83. package/blog/ja/next-intl_vs_intlayer-next-intl.md +124 -15
  84. package/blog/ja/next-intl_vs_intlayer.md +124 -14
  85. package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  86. package/blog/ja/vue-i18n_vs_intlayer.md +193 -31
  87. package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +361 -0
  88. package/blog/ko/i18next_vs_intlayer-i18next.md +122 -15
  89. package/blog/ko/i18next_vs_intlayer.md +129 -17
  90. package/blog/ko/is_intlayer_lighter_than_paraglide.md +284 -0
  91. package/blog/ko/lingui_vs_intlayer.md +122 -15
  92. package/blog/ko/next-intl_vs_intlayer-next-intl.md +124 -15
  93. package/blog/ko/next-intl_vs_intlayer.md +134 -18
  94. package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  95. package/blog/ko/vue-i18n_vs_intlayer.md +193 -31
  96. package/blog/pl/i18next_vs_intlayer-i18next.md +122 -15
  97. package/blog/pl/i18next_vs_intlayer.md +128 -14
  98. package/blog/pl/is_intlayer_lighter_than_paraglide.md +284 -0
  99. package/blog/pl/lingui_vs_intlayer.md +122 -15
  100. package/blog/pl/next-intl_vs_intlayer-next-intl.md +124 -15
  101. package/blog/pl/next-intl_vs_intlayer.md +134 -18
  102. package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  103. package/blog/pl/vue-i18n_vs_intlayer.md +188 -26
  104. package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +361 -0
  105. package/blog/pt/i18next_vs_intlayer-i18next.md +122 -15
  106. package/blog/pt/i18next_vs_intlayer.md +128 -14
  107. package/blog/pt/is_intlayer_lighter_than_paraglide.md +284 -0
  108. package/blog/pt/lingui_vs_intlayer.md +122 -15
  109. package/blog/pt/next-intl_vs_intlayer-next-intl.md +124 -15
  110. package/blog/pt/next-intl_vs_intlayer.md +131 -15
  111. package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  112. package/blog/pt/vue-i18n_vs_intlayer.md +193 -31
  113. package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +361 -0
  114. package/blog/ru/i18next_vs_intlayer-i18next.md +122 -15
  115. package/blog/ru/i18next_vs_intlayer.md +130 -16
  116. package/blog/ru/is_intlayer_lighter_than_paraglide.md +284 -0
  117. package/blog/ru/lingui_vs_intlayer.md +122 -15
  118. package/blog/ru/next-intl_vs_intlayer-next-intl.md +125 -16
  119. package/blog/ru/next-intl_vs_intlayer.md +123 -13
  120. package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +127 -27
  121. package/blog/ru/vue-i18n_vs_intlayer.md +193 -31
  122. package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +326 -19
  123. package/blog/tr/i18next_vs_intlayer-i18next.md +122 -15
  124. package/blog/tr/i18next_vs_intlayer.md +128 -14
  125. package/blog/tr/is_intlayer_lighter_than_paraglide.md +284 -0
  126. package/blog/tr/lingui_vs_intlayer.md +122 -15
  127. package/blog/tr/next-intl_vs_intlayer-next-intl.md +124 -15
  128. package/blog/tr/next-intl_vs_intlayer.md +136 -20
  129. package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  130. package/blog/tr/vue-i18n_vs_intlayer.md +188 -26
  131. package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +361 -0
  132. package/blog/uk/i18next_vs_intlayer-i18next.md +122 -15
  133. package/blog/uk/i18next_vs_intlayer.md +130 -16
  134. package/blog/uk/is_intlayer_lighter_than_paraglide.md +284 -0
  135. package/blog/uk/lingui_vs_intlayer.md +122 -15
  136. package/blog/uk/next-intl_vs_intlayer-next-intl.md +124 -15
  137. package/blog/uk/next-intl_vs_intlayer.md +135 -19
  138. package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +135 -17
  139. package/blog/uk/vue-i18n_vs_intlayer.md +188 -27
  140. package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +361 -0
  141. package/blog/vi/i18next_vs_intlayer-i18next.md +122 -15
  142. package/blog/vi/i18next_vs_intlayer.md +128 -14
  143. package/blog/vi/is_intlayer_lighter_than_paraglide.md +284 -0
  144. package/blog/vi/lingui_vs_intlayer.md +122 -15
  145. package/blog/vi/next-intl_vs_intlayer-next-intl.md +124 -15
  146. package/blog/vi/next-intl_vs_intlayer.md +135 -19
  147. package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  148. package/blog/vi/vue-i18n_vs_intlayer.md +188 -26
  149. package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +361 -0
  150. package/blog/zh/i18next_vs_intlayer-i18next.md +122 -15
  151. package/blog/zh/i18next_vs_intlayer.md +128 -14
  152. package/blog/zh/is_intlayer_lighter_than_paraglide.md +284 -0
  153. package/blog/zh/lingui_vs_intlayer.md +122 -15
  154. package/blog/zh/next-intl_vs_intlayer-next-intl.md +124 -15
  155. package/blog/zh/next-intl_vs_intlayer.md +125 -15
  156. package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
  157. package/blog/zh/vue-i18n_vs_intlayer.md +192 -31
  158. package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +340 -9
  159. package/dist/cjs/generated/blog.entry.cjs +20 -0
  160. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  161. package/dist/cjs/generated/docs.entry.cjs +60 -40
  162. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  163. package/dist/esm/generated/blog.entry.mjs +20 -0
  164. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  165. package/dist/esm/generated/docs.entry.mjs +60 -40
  166. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  167. package/dist/types/generated/blog.entry.d.ts +1 -0
  168. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  169. package/dist/types/generated/docs.entry.d.ts +3 -2
  170. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  171. package/docs/ar/benchmark/nextjs.md +19 -16
  172. package/docs/ar/benchmark/solid.md +26 -9
  173. package/docs/ar/benchmark/svelte.md +22 -7
  174. package/docs/ar/benchmark/tanstack.md +20 -16
  175. package/docs/ar/benchmark/vue.md +19 -10
  176. package/docs/ar/chrome_extension.md +130 -0
  177. package/docs/ar/cli/index.md +11 -1
  178. package/docs/ar/cli/infra.md +162 -0
  179. package/docs/ar/cli/init.md +24 -1
  180. package/docs/ar/cli/upgrade.md +125 -0
  181. package/docs/ar/dictionary/html.md +173 -5
  182. package/docs/ar/dictionary/markdown.md +263 -1
  183. package/docs/ar/intlayer_with_analog.md +23 -1
  184. package/docs/ar/intlayer_with_angular_19.md +24 -1
  185. package/docs/ar/intlayer_with_angular_21.md +24 -1
  186. package/docs/ar/intlayer_with_astro.md +24 -1
  187. package/docs/ar/intlayer_with_astro_lit.md +25 -1
  188. package/docs/ar/intlayer_with_astro_preact.md +26 -1
  189. package/docs/ar/intlayer_with_astro_react.md +26 -1
  190. package/docs/ar/intlayer_with_astro_solid.md +26 -1
  191. package/docs/ar/intlayer_with_astro_svelte.md +25 -1
  192. package/docs/ar/intlayer_with_astro_vue.md +25 -1
  193. package/docs/ar/intlayer_with_remix_3.md +22 -1
  194. package/docs/ar/self_hosting.md +406 -231
  195. package/docs/de/benchmark/nextjs.md +19 -16
  196. package/docs/de/benchmark/solid.md +26 -9
  197. package/docs/de/benchmark/svelte.md +22 -7
  198. package/docs/de/benchmark/tanstack.md +20 -16
  199. package/docs/de/benchmark/vue.md +19 -10
  200. package/docs/de/chrome_extension.md +130 -0
  201. package/docs/de/cli/index.md +11 -1
  202. package/docs/de/cli/infra.md +162 -0
  203. package/docs/de/cli/init.md +24 -1
  204. package/docs/de/cli/upgrade.md +125 -0
  205. package/docs/de/dictionary/html.md +173 -5
  206. package/docs/de/dictionary/markdown.md +263 -1
  207. package/docs/de/intlayer_with_analog.md +23 -1
  208. package/docs/de/intlayer_with_angular_19.md +24 -1
  209. package/docs/de/intlayer_with_angular_21.md +24 -1
  210. package/docs/de/intlayer_with_astro.md +24 -1
  211. package/docs/de/intlayer_with_astro_lit.md +25 -1
  212. package/docs/de/intlayer_with_astro_preact.md +26 -1
  213. package/docs/de/intlayer_with_astro_react.md +26 -1
  214. package/docs/de/intlayer_with_astro_solid.md +26 -1
  215. package/docs/de/intlayer_with_astro_svelte.md +25 -1
  216. package/docs/de/intlayer_with_astro_vue.md +25 -1
  217. package/docs/de/intlayer_with_remix_3.md +22 -1
  218. package/docs/de/self_hosting.md +404 -227
  219. package/docs/en/agent_skills.md +29 -1
  220. package/docs/en/benchmark/nextjs.md +19 -16
  221. package/docs/en/benchmark/solid.md +26 -9
  222. package/docs/en/benchmark/svelte.md +22 -7
  223. package/docs/en/benchmark/tanstack.md +21 -17
  224. package/docs/en/benchmark/vue.md +20 -11
  225. package/docs/en/chrome_extension.md +130 -0
  226. package/docs/en/cli/index.md +11 -1
  227. package/docs/en/cli/infra.md +175 -0
  228. package/docs/en/cli/init.md +25 -1
  229. package/docs/en/cli/upgrade.md +125 -0
  230. package/docs/en/dictionary/html.md +173 -5
  231. package/docs/en/dictionary/markdown.md +263 -1
  232. package/docs/en/intlayer_with_analog.md +23 -1
  233. package/docs/en/intlayer_with_angular_19.md +24 -1
  234. package/docs/en/intlayer_with_angular_21.md +24 -1
  235. package/docs/en/intlayer_with_astro.md +24 -1
  236. package/docs/en/intlayer_with_astro_lit.md +25 -1
  237. package/docs/en/intlayer_with_astro_preact.md +26 -1
  238. package/docs/en/intlayer_with_astro_react.md +26 -1
  239. package/docs/en/intlayer_with_astro_solid.md +26 -1
  240. package/docs/en/intlayer_with_astro_svelte.md +25 -1
  241. package/docs/en/intlayer_with_astro_vue.md +25 -1
  242. package/docs/en/intlayer_with_remix_3.md +22 -1
  243. package/docs/en/self_hosting.md +418 -176
  244. package/docs/en-GB/benchmark/nextjs.md +19 -16
  245. package/docs/en-GB/benchmark/solid.md +26 -9
  246. package/docs/en-GB/benchmark/svelte.md +22 -7
  247. package/docs/en-GB/benchmark/tanstack.md +20 -16
  248. package/docs/en-GB/benchmark/vue.md +20 -11
  249. package/docs/en-GB/chrome_extension.md +130 -0
  250. package/docs/en-GB/cli/index.md +11 -1
  251. package/docs/en-GB/cli/infra.md +162 -0
  252. package/docs/en-GB/cli/init.md +24 -1
  253. package/docs/en-GB/cli/upgrade.md +125 -0
  254. package/docs/en-GB/dictionary/html.md +173 -5
  255. package/docs/en-GB/dictionary/markdown.md +263 -1
  256. package/docs/en-GB/intlayer_with_analog.md +23 -1
  257. package/docs/en-GB/intlayer_with_angular_19.md +24 -1
  258. package/docs/en-GB/intlayer_with_angular_21.md +24 -1
  259. package/docs/en-GB/intlayer_with_astro.md +24 -1
  260. package/docs/en-GB/intlayer_with_astro_lit.md +25 -1
  261. package/docs/en-GB/intlayer_with_astro_preact.md +26 -1
  262. package/docs/en-GB/intlayer_with_astro_react.md +26 -1
  263. package/docs/en-GB/intlayer_with_astro_solid.md +26 -1
  264. package/docs/en-GB/intlayer_with_astro_svelte.md +25 -1
  265. package/docs/en-GB/intlayer_with_astro_vue.md +25 -1
  266. package/docs/en-GB/intlayer_with_remix_3.md +22 -1
  267. package/docs/en-GB/self_hosting.md +381 -206
  268. package/docs/es/benchmark/nextjs.md +19 -16
  269. package/docs/es/benchmark/solid.md +26 -9
  270. package/docs/es/benchmark/svelte.md +22 -7
  271. package/docs/es/benchmark/tanstack.md +20 -16
  272. package/docs/es/benchmark/vue.md +19 -10
  273. package/docs/es/chrome_extension.md +130 -0
  274. package/docs/es/cli/index.md +11 -1
  275. package/docs/es/cli/infra.md +162 -0
  276. package/docs/es/cli/init.md +24 -1
  277. package/docs/es/cli/upgrade.md +125 -0
  278. package/docs/es/dictionary/html.md +173 -5
  279. package/docs/es/dictionary/markdown.md +263 -1
  280. package/docs/es/intlayer_with_analog.md +23 -1
  281. package/docs/es/intlayer_with_angular_19.md +24 -1
  282. package/docs/es/intlayer_with_angular_21.md +24 -1
  283. package/docs/es/intlayer_with_astro.md +24 -1
  284. package/docs/es/intlayer_with_astro_lit.md +25 -1
  285. package/docs/es/intlayer_with_astro_preact.md +26 -1
  286. package/docs/es/intlayer_with_astro_react.md +26 -1
  287. package/docs/es/intlayer_with_astro_solid.md +26 -1
  288. package/docs/es/intlayer_with_astro_svelte.md +25 -1
  289. package/docs/es/intlayer_with_astro_vue.md +25 -1
  290. package/docs/es/intlayer_with_remix_3.md +22 -1
  291. package/docs/es/self_hosting.md +400 -223
  292. package/docs/fr/benchmark/nextjs.md +19 -16
  293. package/docs/fr/benchmark/solid.md +26 -9
  294. package/docs/fr/benchmark/svelte.md +22 -7
  295. package/docs/fr/benchmark/tanstack.md +20 -16
  296. package/docs/fr/benchmark/vue.md +20 -11
  297. package/docs/fr/chrome_extension.md +130 -0
  298. package/docs/fr/cli/index.md +11 -1
  299. package/docs/fr/cli/infra.md +162 -0
  300. package/docs/fr/cli/init.md +24 -1
  301. package/docs/fr/cli/upgrade.md +125 -0
  302. package/docs/fr/dictionary/html.md +173 -5
  303. package/docs/fr/dictionary/markdown.md +265 -4
  304. package/docs/fr/intlayer_with_analog.md +23 -1
  305. package/docs/fr/intlayer_with_angular_19.md +24 -1
  306. package/docs/fr/intlayer_with_angular_21.md +24 -1
  307. package/docs/fr/intlayer_with_astro.md +24 -1
  308. package/docs/fr/intlayer_with_astro_lit.md +25 -1
  309. package/docs/fr/intlayer_with_astro_preact.md +26 -1
  310. package/docs/fr/intlayer_with_astro_react.md +26 -1
  311. package/docs/fr/intlayer_with_astro_solid.md +26 -1
  312. package/docs/fr/intlayer_with_astro_svelte.md +25 -1
  313. package/docs/fr/intlayer_with_astro_vue.md +25 -1
  314. package/docs/fr/intlayer_with_remix_3.md +22 -1
  315. package/docs/fr/self_hosting.md +401 -224
  316. package/docs/hi/benchmark/nextjs.md +19 -16
  317. package/docs/hi/benchmark/solid.md +26 -9
  318. package/docs/hi/benchmark/svelte.md +22 -7
  319. package/docs/hi/benchmark/tanstack.md +20 -16
  320. package/docs/hi/benchmark/vue.md +20 -11
  321. package/docs/hi/chrome_extension.md +130 -0
  322. package/docs/hi/cli/index.md +11 -1
  323. package/docs/hi/cli/infra.md +162 -0
  324. package/docs/hi/cli/init.md +24 -1
  325. package/docs/hi/cli/upgrade.md +125 -0
  326. package/docs/hi/dictionary/html.md +173 -5
  327. package/docs/hi/dictionary/markdown.md +263 -1
  328. package/docs/hi/intlayer_with_analog.md +23 -1
  329. package/docs/hi/intlayer_with_angular_19.md +24 -1
  330. package/docs/hi/intlayer_with_angular_21.md +24 -1
  331. package/docs/hi/intlayer_with_astro.md +24 -1
  332. package/docs/hi/intlayer_with_astro_lit.md +25 -1
  333. package/docs/hi/intlayer_with_astro_preact.md +26 -1
  334. package/docs/hi/intlayer_with_astro_react.md +26 -1
  335. package/docs/hi/intlayer_with_astro_solid.md +26 -1
  336. package/docs/hi/intlayer_with_astro_svelte.md +25 -1
  337. package/docs/hi/intlayer_with_astro_vue.md +25 -1
  338. package/docs/hi/intlayer_with_remix_3.md +22 -1
  339. package/docs/hi/self_hosting.md +409 -235
  340. package/docs/id/benchmark/nextjs.md +19 -16
  341. package/docs/id/benchmark/solid.md +26 -9
  342. package/docs/id/benchmark/svelte.md +22 -7
  343. package/docs/id/benchmark/tanstack.md +20 -16
  344. package/docs/id/benchmark/vue.md +20 -11
  345. package/docs/id/chrome_extension.md +130 -0
  346. package/docs/id/cli/index.md +11 -1
  347. package/docs/id/cli/infra.md +162 -0
  348. package/docs/id/cli/init.md +24 -1
  349. package/docs/id/cli/upgrade.md +125 -0
  350. package/docs/id/dictionary/html.md +173 -5
  351. package/docs/id/dictionary/markdown.md +263 -1
  352. package/docs/id/intlayer_with_analog.md +23 -1
  353. package/docs/id/intlayer_with_angular_19.md +24 -1
  354. package/docs/id/intlayer_with_angular_21.md +24 -1
  355. package/docs/id/intlayer_with_astro.md +24 -1
  356. package/docs/id/intlayer_with_astro_lit.md +25 -1
  357. package/docs/id/intlayer_with_astro_preact.md +26 -1
  358. package/docs/id/intlayer_with_astro_react.md +26 -1
  359. package/docs/id/intlayer_with_astro_solid.md +26 -1
  360. package/docs/id/intlayer_with_astro_svelte.md +25 -1
  361. package/docs/id/intlayer_with_astro_vue.md +25 -1
  362. package/docs/id/intlayer_with_remix_3.md +22 -1
  363. package/docs/id/self_hosting.md +416 -243
  364. package/docs/it/benchmark/nextjs.md +19 -16
  365. package/docs/it/benchmark/solid.md +26 -9
  366. package/docs/it/benchmark/svelte.md +22 -7
  367. package/docs/it/benchmark/tanstack.md +20 -16
  368. package/docs/it/benchmark/vue.md +19 -10
  369. package/docs/it/chrome_extension.md +130 -0
  370. package/docs/it/cli/index.md +11 -1
  371. package/docs/it/cli/infra.md +162 -0
  372. package/docs/it/cli/init.md +24 -1
  373. package/docs/it/cli/upgrade.md +125 -0
  374. package/docs/it/dictionary/html.md +173 -5
  375. package/docs/it/dictionary/markdown.md +263 -1
  376. package/docs/it/intlayer_with_analog.md +23 -1
  377. package/docs/it/intlayer_with_angular_19.md +24 -1
  378. package/docs/it/intlayer_with_angular_21.md +24 -1
  379. package/docs/it/intlayer_with_astro.md +24 -1
  380. package/docs/it/intlayer_with_astro_lit.md +25 -1
  381. package/docs/it/intlayer_with_astro_preact.md +26 -1
  382. package/docs/it/intlayer_with_astro_react.md +26 -1
  383. package/docs/it/intlayer_with_astro_solid.md +26 -1
  384. package/docs/it/intlayer_with_astro_svelte.md +25 -1
  385. package/docs/it/intlayer_with_astro_vue.md +25 -1
  386. package/docs/it/intlayer_with_remix_3.md +22 -1
  387. package/docs/it/self_hosting.md +412 -237
  388. package/docs/ja/benchmark/nextjs.md +19 -16
  389. package/docs/ja/benchmark/solid.md +26 -9
  390. package/docs/ja/benchmark/svelte.md +22 -7
  391. package/docs/ja/benchmark/tanstack.md +18 -14
  392. package/docs/ja/benchmark/vue.md +19 -10
  393. package/docs/ja/chrome_extension.md +130 -0
  394. package/docs/ja/cli/index.md +11 -1
  395. package/docs/ja/cli/infra.md +162 -0
  396. package/docs/ja/cli/init.md +24 -1
  397. package/docs/ja/cli/upgrade.md +125 -0
  398. package/docs/ja/dictionary/html.md +173 -5
  399. package/docs/ja/dictionary/markdown.md +263 -1
  400. package/docs/ja/intlayer_with_analog.md +23 -1
  401. package/docs/ja/intlayer_with_angular_19.md +24 -1
  402. package/docs/ja/intlayer_with_angular_21.md +24 -1
  403. package/docs/ja/intlayer_with_astro.md +24 -1
  404. package/docs/ja/intlayer_with_astro_lit.md +25 -1
  405. package/docs/ja/intlayer_with_astro_preact.md +26 -1
  406. package/docs/ja/intlayer_with_astro_react.md +26 -1
  407. package/docs/ja/intlayer_with_astro_solid.md +26 -1
  408. package/docs/ja/intlayer_with_astro_svelte.md +25 -1
  409. package/docs/ja/intlayer_with_astro_vue.md +25 -1
  410. package/docs/ja/intlayer_with_remix_3.md +22 -1
  411. package/docs/ja/self_hosting.md +398 -223
  412. package/docs/ko/benchmark/nextjs.md +19 -16
  413. package/docs/ko/benchmark/solid.md +26 -9
  414. package/docs/ko/benchmark/svelte.md +22 -7
  415. package/docs/ko/benchmark/tanstack.md +20 -16
  416. package/docs/ko/benchmark/vue.md +20 -11
  417. package/docs/ko/chrome_extension.md +130 -0
  418. package/docs/ko/cli/index.md +11 -1
  419. package/docs/ko/cli/infra.md +162 -0
  420. package/docs/ko/cli/init.md +24 -1
  421. package/docs/ko/cli/upgrade.md +126 -0
  422. package/docs/ko/dictionary/html.md +173 -5
  423. package/docs/ko/dictionary/markdown.md +263 -1
  424. package/docs/ko/intlayer_with_analog.md +23 -1
  425. package/docs/ko/intlayer_with_angular_19.md +24 -1
  426. package/docs/ko/intlayer_with_angular_21.md +24 -1
  427. package/docs/ko/intlayer_with_astro.md +24 -1
  428. package/docs/ko/intlayer_with_astro_lit.md +25 -1
  429. package/docs/ko/intlayer_with_astro_preact.md +26 -1
  430. package/docs/ko/intlayer_with_astro_react.md +26 -1
  431. package/docs/ko/intlayer_with_astro_solid.md +26 -1
  432. package/docs/ko/intlayer_with_astro_svelte.md +25 -1
  433. package/docs/ko/intlayer_with_astro_vue.md +25 -1
  434. package/docs/ko/intlayer_with_remix_3.md +22 -1
  435. package/docs/ko/self_hosting.md +411 -238
  436. package/docs/pl/benchmark/nextjs.md +19 -16
  437. package/docs/pl/benchmark/solid.md +26 -9
  438. package/docs/pl/benchmark/svelte.md +22 -7
  439. package/docs/pl/benchmark/tanstack.md +20 -16
  440. package/docs/pl/benchmark/vue.md +20 -11
  441. package/docs/pl/chrome_extension.md +130 -0
  442. package/docs/pl/cli/index.md +11 -1
  443. package/docs/pl/cli/infra.md +162 -0
  444. package/docs/pl/cli/init.md +24 -1
  445. package/docs/pl/cli/upgrade.md +125 -0
  446. package/docs/pl/dictionary/html.md +173 -5
  447. package/docs/pl/dictionary/markdown.md +263 -1
  448. package/docs/pl/intlayer_with_analog.md +23 -1
  449. package/docs/pl/intlayer_with_angular_19.md +24 -1
  450. package/docs/pl/intlayer_with_angular_21.md +24 -1
  451. package/docs/pl/intlayer_with_astro.md +24 -1
  452. package/docs/pl/intlayer_with_astro_lit.md +25 -1
  453. package/docs/pl/intlayer_with_astro_preact.md +26 -1
  454. package/docs/pl/intlayer_with_astro_react.md +26 -1
  455. package/docs/pl/intlayer_with_astro_solid.md +26 -1
  456. package/docs/pl/intlayer_with_astro_svelte.md +25 -1
  457. package/docs/pl/intlayer_with_astro_vue.md +25 -1
  458. package/docs/pl/intlayer_with_remix_3.md +22 -1
  459. package/docs/pl/self_hosting.md +408 -233
  460. package/docs/pt/benchmark/nextjs.md +19 -16
  461. package/docs/pt/benchmark/solid.md +26 -9
  462. package/docs/pt/benchmark/svelte.md +22 -7
  463. package/docs/pt/benchmark/tanstack.md +20 -16
  464. package/docs/pt/benchmark/vue.md +19 -10
  465. package/docs/pt/chrome_extension.md +130 -0
  466. package/docs/pt/cli/index.md +11 -1
  467. package/docs/pt/cli/infra.md +162 -0
  468. package/docs/pt/cli/init.md +24 -1
  469. package/docs/pt/cli/upgrade.md +125 -0
  470. package/docs/pt/dictionary/html.md +173 -5
  471. package/docs/pt/dictionary/markdown.md +263 -1
  472. package/docs/pt/intlayer_with_analog.md +23 -1
  473. package/docs/pt/intlayer_with_angular_19.md +24 -1
  474. package/docs/pt/intlayer_with_angular_21.md +24 -1
  475. package/docs/pt/intlayer_with_astro.md +24 -1
  476. package/docs/pt/intlayer_with_astro_lit.md +25 -1
  477. package/docs/pt/intlayer_with_astro_preact.md +26 -1
  478. package/docs/pt/intlayer_with_astro_react.md +26 -1
  479. package/docs/pt/intlayer_with_astro_solid.md +26 -1
  480. package/docs/pt/intlayer_with_astro_svelte.md +25 -1
  481. package/docs/pt/intlayer_with_astro_vue.md +25 -1
  482. package/docs/pt/intlayer_with_remix_3.md +22 -1
  483. package/docs/pt/self_hosting.md +399 -224
  484. package/docs/ru/benchmark/nextjs.md +19 -16
  485. package/docs/ru/benchmark/solid.md +26 -9
  486. package/docs/ru/benchmark/svelte.md +22 -7
  487. package/docs/ru/benchmark/tanstack.md +20 -16
  488. package/docs/ru/benchmark/vue.md +20 -11
  489. package/docs/ru/chrome_extension.md +130 -0
  490. package/docs/ru/cli/index.md +11 -1
  491. package/docs/ru/cli/infra.md +162 -0
  492. package/docs/ru/cli/init.md +24 -1
  493. package/docs/ru/cli/upgrade.md +125 -0
  494. package/docs/ru/dictionary/html.md +173 -5
  495. package/docs/ru/dictionary/markdown.md +263 -1
  496. package/docs/ru/intlayer_with_analog.md +23 -1
  497. package/docs/ru/intlayer_with_angular_19.md +24 -1
  498. package/docs/ru/intlayer_with_angular_21.md +24 -1
  499. package/docs/ru/intlayer_with_astro.md +24 -1
  500. package/docs/ru/intlayer_with_astro_lit.md +25 -1
  501. package/docs/ru/intlayer_with_astro_preact.md +26 -1
  502. package/docs/ru/intlayer_with_astro_react.md +26 -1
  503. package/docs/ru/intlayer_with_astro_solid.md +26 -1
  504. package/docs/ru/intlayer_with_astro_svelte.md +25 -1
  505. package/docs/ru/intlayer_with_astro_vue.md +25 -1
  506. package/docs/ru/intlayer_with_remix_3.md +22 -1
  507. package/docs/ru/self_hosting.md +403 -228
  508. package/docs/tr/benchmark/nextjs.md +19 -16
  509. package/docs/tr/benchmark/solid.md +26 -9
  510. package/docs/tr/benchmark/svelte.md +22 -7
  511. package/docs/tr/benchmark/tanstack.md +20 -16
  512. package/docs/tr/benchmark/vue.md +20 -11
  513. package/docs/tr/chrome_extension.md +130 -0
  514. package/docs/tr/cli/index.md +11 -1
  515. package/docs/tr/cli/infra.md +162 -0
  516. package/docs/tr/cli/init.md +24 -1
  517. package/docs/tr/cli/upgrade.md +125 -0
  518. package/docs/tr/dictionary/html.md +173 -5
  519. package/docs/tr/dictionary/markdown.md +263 -1
  520. package/docs/tr/intlayer_with_analog.md +23 -1
  521. package/docs/tr/intlayer_with_angular_19.md +24 -1
  522. package/docs/tr/intlayer_with_angular_21.md +24 -1
  523. package/docs/tr/intlayer_with_astro.md +24 -1
  524. package/docs/tr/intlayer_with_astro_lit.md +25 -1
  525. package/docs/tr/intlayer_with_astro_preact.md +26 -1
  526. package/docs/tr/intlayer_with_astro_react.md +26 -1
  527. package/docs/tr/intlayer_with_astro_solid.md +26 -1
  528. package/docs/tr/intlayer_with_astro_svelte.md +25 -1
  529. package/docs/tr/intlayer_with_astro_vue.md +25 -1
  530. package/docs/tr/intlayer_with_remix_3.md +22 -1
  531. package/docs/tr/self_hosting.md +410 -234
  532. package/docs/uk/benchmark/nextjs.md +19 -16
  533. package/docs/uk/benchmark/solid.md +26 -9
  534. package/docs/uk/benchmark/svelte.md +22 -7
  535. package/docs/uk/benchmark/tanstack.md +20 -16
  536. package/docs/uk/benchmark/vue.md +20 -11
  537. package/docs/uk/chrome_extension.md +130 -0
  538. package/docs/uk/cli/index.md +11 -1
  539. package/docs/uk/cli/infra.md +162 -0
  540. package/docs/uk/cli/init.md +24 -1
  541. package/docs/uk/cli/upgrade.md +125 -0
  542. package/docs/uk/dictionary/html.md +173 -5
  543. package/docs/uk/dictionary/markdown.md +263 -1
  544. package/docs/uk/intlayer_with_analog.md +23 -1
  545. package/docs/uk/intlayer_with_angular_19.md +24 -1
  546. package/docs/uk/intlayer_with_angular_21.md +24 -1
  547. package/docs/uk/intlayer_with_astro.md +24 -1
  548. package/docs/uk/intlayer_with_astro_lit.md +25 -1
  549. package/docs/uk/intlayer_with_astro_preact.md +26 -1
  550. package/docs/uk/intlayer_with_astro_react.md +26 -1
  551. package/docs/uk/intlayer_with_astro_solid.md +26 -1
  552. package/docs/uk/intlayer_with_astro_svelte.md +25 -1
  553. package/docs/uk/intlayer_with_astro_vue.md +25 -1
  554. package/docs/uk/intlayer_with_remix_3.md +22 -1
  555. package/docs/uk/self_hosting.md +413 -238
  556. package/docs/vi/benchmark/nextjs.md +19 -16
  557. package/docs/vi/benchmark/solid.md +26 -9
  558. package/docs/vi/benchmark/svelte.md +22 -7
  559. package/docs/vi/benchmark/tanstack.md +20 -16
  560. package/docs/vi/benchmark/vue.md +20 -11
  561. package/docs/vi/chrome_extension.md +130 -0
  562. package/docs/vi/cli/index.md +11 -1
  563. package/docs/vi/cli/infra.md +162 -0
  564. package/docs/vi/cli/init.md +24 -1
  565. package/docs/vi/cli/upgrade.md +125 -0
  566. package/docs/vi/dictionary/html.md +173 -5
  567. package/docs/vi/dictionary/markdown.md +263 -1
  568. package/docs/vi/intlayer_with_analog.md +23 -1
  569. package/docs/vi/intlayer_with_angular_19.md +24 -1
  570. package/docs/vi/intlayer_with_angular_21.md +24 -1
  571. package/docs/vi/intlayer_with_astro.md +24 -1
  572. package/docs/vi/intlayer_with_astro_lit.md +25 -1
  573. package/docs/vi/intlayer_with_astro_preact.md +26 -1
  574. package/docs/vi/intlayer_with_astro_react.md +26 -1
  575. package/docs/vi/intlayer_with_astro_solid.md +26 -1
  576. package/docs/vi/intlayer_with_astro_svelte.md +25 -1
  577. package/docs/vi/intlayer_with_astro_vue.md +25 -1
  578. package/docs/vi/intlayer_with_remix_3.md +22 -1
  579. package/docs/vi/self_hosting.md +408 -234
  580. package/docs/zh/benchmark/nextjs.md +19 -16
  581. package/docs/zh/benchmark/solid.md +26 -9
  582. package/docs/zh/benchmark/svelte.md +22 -7
  583. package/docs/zh/benchmark/tanstack.md +19 -15
  584. package/docs/zh/benchmark/vue.md +20 -11
  585. package/docs/zh/chrome_extension.md +130 -0
  586. package/docs/zh/cli/index.md +11 -1
  587. package/docs/zh/cli/infra.md +162 -0
  588. package/docs/zh/cli/init.md +24 -1
  589. package/docs/zh/cli/upgrade.md +125 -0
  590. package/docs/zh/dictionary/html.md +172 -5
  591. package/docs/zh/dictionary/markdown.md +262 -1
  592. package/docs/zh/intlayer_with_analog.md +23 -1
  593. package/docs/zh/intlayer_with_angular_19.md +24 -1
  594. package/docs/zh/intlayer_with_angular_21.md +24 -1
  595. package/docs/zh/intlayer_with_astro.md +24 -1
  596. package/docs/zh/intlayer_with_astro_lit.md +25 -1
  597. package/docs/zh/intlayer_with_astro_preact.md +26 -1
  598. package/docs/zh/intlayer_with_astro_react.md +26 -1
  599. package/docs/zh/intlayer_with_astro_solid.md +26 -1
  600. package/docs/zh/intlayer_with_astro_svelte.md +25 -1
  601. package/docs/zh/intlayer_with_astro_vue.md +25 -1
  602. package/docs/zh/intlayer_with_remix_3.md +22 -1
  603. package/docs/zh/self_hosting.md +410 -237
  604. package/legal/ar/privacy_notice.md +9 -3
  605. package/legal/de/privacy_notice.md +9 -3
  606. package/legal/en/privacy_notice.md +10 -3
  607. package/legal/en-GB/privacy_notice.md +9 -3
  608. package/legal/es/privacy_notice.md +9 -3
  609. package/legal/fr/privacy_notice.md +9 -3
  610. package/legal/hi/privacy_notice.md +9 -3
  611. package/legal/id/privacy_notice.md +9 -3
  612. package/legal/it/privacy_notice.md +9 -3
  613. package/legal/ja/privacy_notice.md +9 -3
  614. package/legal/ko/privacy_notice.md +9 -3
  615. package/legal/pl/privacy_notice.md +9 -3
  616. package/legal/pt/privacy_notice.md +9 -3
  617. package/legal/ru/privacy_notice.md +9 -3
  618. package/legal/tr/privacy_notice.md +9 -3
  619. package/legal/uk/privacy_notice.md +9 -3
  620. package/legal/vi/privacy_notice.md +9 -3
  621. package/legal/zh/privacy_notice.md +9 -3
  622. package/package.json +6 -6
  623. package/src/generated/blog.entry.ts +20 -0
  624. package/src/generated/docs.entry.ts +60 -40
  625. package/docs/ar/roadmap.md +0 -321
  626. package/docs/de/roadmap.md +0 -322
  627. package/docs/en/intlayer_with_astro_vanilla.md +0 -713
  628. package/docs/en/roadmap.md +0 -325
  629. package/docs/en-GB/roadmap.md +0 -322
  630. package/docs/es/roadmap.md +0 -322
  631. package/docs/fr/roadmap.md +0 -322
  632. package/docs/hi/roadmap.md +0 -322
  633. package/docs/id/roadmap.md +0 -325
  634. package/docs/it/roadmap.md +0 -322
  635. package/docs/ja/roadmap.md +0 -322
  636. package/docs/ko/roadmap.md +0 -322
  637. package/docs/pl/roadmap.md +0 -325
  638. package/docs/pt/roadmap.md +0 -322
  639. package/docs/ru/roadmap.md +0 -322
  640. package/docs/tr/roadmap.md +0 -325
  641. package/docs/uk/roadmap.md +0 -325
  642. package/docs/vi/roadmap.md +0 -325
  643. package/docs/zh/roadmap.md +0 -322
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-02-07
3
- updatedAt: 2026-05-19
3
+ updatedAt: 2026-09-21
4
4
  title: Markdown
5
5
  description: Erfahren Sie, wie Sie Markdown-Inhalte auf Ihrer mehrsprachigen Website mit Intlayer deklarieren und verwenden. Befolgen Sie die Schritte in dieser Online-Dokumentation, um Markdown nahtlos in Ihr Projekt zu integrieren.
6
6
  keywords:
@@ -11,6 +11,8 @@ keywords:
11
11
  - Next.js
12
12
  - JavaScript
13
13
  - React
14
+ - Remix
15
+ - Astro
14
16
  slugs:
15
17
  - doc
16
18
  - concept
@@ -487,6 +489,111 @@ Das Markdown-Rendering unterstützt **MDX** — verwenden Sie jede JSX/Framework
487
489
  ```
488
490
 
489
491
  </Tab>
492
+ <Tab label="Remix" value="remix">
493
+ In Remix 3 werden Markdown-Knoten auf dem Server in einen HTML-String gerendert. Fügen Sie ihn mit der `innerHTML`-Prop von Remix JSX oder mit `html.raw` in einer `html-template`-Ansicht ein.
494
+
495
+ ```tsx fileName="src/views/home.tsx"
496
+ import { useIntlayer } from "remix-intlayer";
497
+
498
+ export const HomePage = () => () => {
499
+ const { myMarkdownContent } = useIntlayer("app");
500
+
501
+ return <div innerHTML={myMarkdownContent.value} />;
502
+ };
503
+ ```
504
+
505
+ ```ts fileName="src/views/home.ts"
506
+ import { html } from "remix/html-template";
507
+ import { useIntlayer } from "remix-intlayer";
508
+
509
+ export const renderHomePage = () => {
510
+ const { myMarkdownContent } = useIntlayer("app");
511
+
512
+ return html.raw`<div>${myMarkdownContent.value}</div>`;
513
+ };
514
+ ```
515
+
516
+ > Remix maskiert interpolierte Werte standardmäßig. `innerHTML` und `html.raw` sind die beiden Ausnahmen, die ein gerenderter Markdown-String benötigt.
517
+
518
+ Sie können auch lokale Überschreibungen für bestimmte Tags mithilfe der Methode `.use()` bereitstellen. Überschreibungen sind Funktionen, die einen HTML-String zurückgeben:
519
+
520
+ ```tsx
521
+ <div
522
+ innerHTML={myMarkdownContent.use({
523
+ h1: ({ children }) => `<h1 class="text-3xl font-bold">${children}</h1>`,
524
+ })}
525
+ />
526
+ ```
527
+
528
+ `.value` ist der gerenderte HTML-String, während `String()` / `.toString()` den rohen Markdown-Quellcode zurückgeben:
529
+
530
+ ```tsx
531
+ myMarkdownContent.value // "<h1>…</h1>"
532
+ String(myMarkdownContent) // "# …"
533
+ myMarkdownContent.toString() // "# …"
534
+ ```
535
+
536
+ Und Sie können wie folgt auf Ihre Markdown-Metadaten zugreifen:
537
+
538
+ ```tsx
539
+ myMarkdownContent.metadata
540
+ myMarkdownContent.metadata.title
541
+ ```
542
+
543
+ </Tab>
544
+ <Tab label="Astro" value="astro">
545
+ In Astro werden Markdown-Knoten in einen HTML-String gerendert. Fügen Sie ihn mit der `set:html`-Direktive im Template oder mit `innerHTML` in einem clientseitigen `<script>` ein.
546
+
547
+ ```astro fileName="src/pages/index.astro"
548
+ ---
549
+ import { useIntlayer } from "astro-intlayer";
550
+
551
+ const { myMarkdownContent } = useIntlayer("app");
552
+ ---
553
+
554
+ <div set:html={myMarkdownContent.value} />
555
+ ```
556
+
557
+ ```astro fileName="src/components/Content.astro"
558
+ <div id="content"></div>
559
+
560
+ <script>
561
+ import { useIntlayer } from "astro-intlayer";
562
+
563
+ const { myMarkdownContent } = useIntlayer("app");
564
+
565
+ document.querySelector("#content")!.innerHTML = myMarkdownContent.value;
566
+ </script>
567
+ ```
568
+
569
+ > Astro maskiert `{Ausdrücke}` standardmäßig. `set:html` ist die Ausnahme, die ein gerenderter Markdown-String benötigt.
570
+
571
+ Sie können auch lokale Überschreibungen für bestimmte Tags mithilfe der Methode `.use()` bereitstellen. Überschreibungen sind Funktionen, die einen HTML-String zurückgeben:
572
+
573
+ ```astro
574
+ <div
575
+ set:html={myMarkdownContent.use({
576
+ h1: ({ children }) => `<h1 class="text-3xl font-bold">${children}</h1>`,
577
+ })}
578
+ />
579
+ ```
580
+
581
+ `.value` ist der gerenderte HTML-String, während `String()` / `.toString()` den rohen Markdown-Quellcode zurückgeben:
582
+
583
+ ```astro
584
+ myMarkdownContent.value // "<h1>…</h1>"
585
+ String(myMarkdownContent) // "# …"
586
+ myMarkdownContent.toString() // "# …"
587
+ ```
588
+
589
+ Und Sie können wie folgt auf Ihre Markdown-Metadaten zugreifen:
590
+
591
+ ```astro
592
+ myMarkdownContent.metadata
593
+ myMarkdownContent.metadata.title
594
+ ```
595
+
596
+ </Tab>
490
597
  </Tabs>
491
598
 
492
599
  ### 2. Hilfsprogramme (Nur Markdown-Strings)
@@ -698,6 +805,60 @@ Diese Dienstprogramme rendern **nur reine Markdown-Strings** und sind unabhängi
698
805
  ```
699
806
 
700
807
  </Tab>
808
+ <Tab label="Remix" value="remix">
809
+ #### `useMarkdownRenderer()` Hook
810
+
811
+ Holen Sie sich eine von `installIntlayerMarkdown()` vorkonfigurierte Renderer-Funktion. Sie gibt einen HTML-String zurück.
812
+
813
+ ```tsx
814
+ import { useMarkdownRenderer } from "remix-intlayer/markdown";
815
+
816
+ const renderMarkdown = useMarkdownRenderer({ forceBlock: true });
817
+
818
+ return <div innerHTML={renderMarkdown("# My Title")} />;
819
+ ```
820
+
821
+ #### `renderMarkdown()` Utility
822
+
823
+ Eigenständiges Dienstprogramm, das die globale Konfiguration ignoriert.
824
+
825
+ ```tsx
826
+ import { renderMarkdown } from "remix-intlayer/markdown";
827
+
828
+ const html = renderMarkdown("# My Title", { forceBlock: true });
829
+ ```
830
+
831
+ </Tab>
832
+ <Tab label="Astro" value="astro">
833
+ #### `useMarkdownRenderer()` Hook
834
+
835
+ Holen Sie sich eine von `installIntlayerMarkdown()` vorkonfigurierte Renderer-Funktion. Sie gibt einen HTML-String zurück.
836
+
837
+ ```astro
838
+ ---
839
+ import { useMarkdownRenderer } from "astro-intlayer/markdown";
840
+
841
+ const renderMarkdown = useMarkdownRenderer({ forceBlock: true });
842
+ ---
843
+
844
+ <div set:html={renderMarkdown("# My Title")} />
845
+ ```
846
+
847
+ #### `renderMarkdown()` Utility
848
+
849
+ Eigenständiges Dienstprogramm, das die globale Konfiguration ignoriert.
850
+
851
+ ```astro
852
+ ---
853
+ import { renderMarkdown } from "astro-intlayer/markdown";
854
+
855
+ const html = renderMarkdown("# My Title", { forceBlock: true });
856
+ ---
857
+
858
+ <div set:html={html} />
859
+ ```
860
+
861
+ </Tab>
701
862
  </Tabs>
702
863
 
703
864
  ## Globale Konfiguration mit `MarkdownProvider`
@@ -997,6 +1158,73 @@ Der `MarkdownProvider` (oder sein Framework-Äquivalent) konfiguriert die Markdo
997
1158
  > Das dynamische Importieren Ihres Markdown-Renderers ist eine gute Möglichkeit, die Bundle-Größe Ihrer Anwendung zu reduzieren.
998
1159
 
999
1160
  </Tab>
1161
+ <Tab label="Remix" value="remix">
1162
+
1163
+ Remix verfügt über keinen Komponentenbaum, der einen Provider aufnehmen könnte, daher wird die Konfiguration einmalig als Singleton beim Serverstart installiert. Sie konfiguriert den von `useMarkdownRenderer()` zurückgegebenen Renderer. Die von `useIntlayer` zurückgegebenen `md`-Knoten werden mit dem Standard-Compiler gerendert; überschreiben Sie deren Tags pro Knoten mit `.use()`.
1164
+
1165
+ ```typescript fileName="src/router.ts"
1166
+ import { installIntlayerMarkdown } from "remix-intlayer/markdown";
1167
+
1168
+ installIntlayerMarkdown({
1169
+ forceBlock: true,
1170
+ components: {
1171
+ h1: ({ children }) => `<h1 class="text-2xl font-bold">${children}</h1>`,
1172
+ },
1173
+ });
1174
+ ```
1175
+
1176
+ Sie können auch Ihren eigenen Markdown-Renderer verwenden:
1177
+
1178
+ ```typescript fileName="src/router.ts"
1179
+ import { installIntlayerMarkdown } from "remix-intlayer/markdown";
1180
+
1181
+ installIntlayerMarkdown({
1182
+ renderMarkdown: async (md) => {
1183
+ const { marked } = await import("marked");
1184
+ return marked(md) as string;
1185
+ },
1186
+ });
1187
+ ```
1188
+
1189
+ > Verwenden Sie `installIntlayerMarkdownDynamic(async () => …)`, um den Renderer selbst träge zu laden; der Loader wird nur beim ersten Aufruf ausgeführt.
1190
+
1191
+ </Tab>
1192
+ <Tab label="Astro" value="astro">
1193
+
1194
+ Astro verfügt über keinen Komponentenbaum, der einen Provider aufnehmen könnte, daher wird die Konfiguration einmalig als Singleton in der Middleware (Server) und in einem clientseitigen `<script>` (Browser) installiert. Sie konfiguriert den von `useMarkdownRenderer()` zurückgegebenen Renderer. Die von `useIntlayer` zurückgegebenen `md`-Knoten werden mit dem Standard-Compiler gerendert; überschreiben Sie deren Tags pro Knoten mit `.use()`.
1195
+
1196
+ ```typescript fileName="src/middleware.ts"
1197
+ import { installIntlayerMarkdown } from "astro-intlayer/markdown";
1198
+ import { defineMiddleware } from "astro:middleware";
1199
+
1200
+ // Wird einmal beim Serverstart ausgeführt; die Intlayer-Middleware selbst wird
1201
+ // vor dieser Datei durch die Integration registriert.
1202
+ installIntlayerMarkdown({
1203
+ forceBlock: true,
1204
+ components: {
1205
+ h1: ({ children }) => `<h1 class="text-2xl font-bold">${children}</h1>`,
1206
+ },
1207
+ });
1208
+
1209
+ export const onRequest = defineMiddleware((_context, next) => next());
1210
+ ```
1211
+
1212
+ Sie können auch Ihren eigenen Markdown-Renderer verwenden:
1213
+
1214
+ ```typescript fileName="src/middleware.ts"
1215
+ import { installIntlayerMarkdown } from "astro-intlayer/markdown";
1216
+
1217
+ installIntlayerMarkdown({
1218
+ renderMarkdown: async (md) => {
1219
+ const { marked } = await import("marked");
1220
+ return marked(md) as string;
1221
+ },
1222
+ });
1223
+ ```
1224
+
1225
+ > Verwenden Sie `installIntlayerMarkdownDynamic(async () => …)`, um den Renderer selbst träge zu laden; der Loader wird nur beim ersten Aufruf ausgeführt.
1226
+
1227
+ </Tab>
1000
1228
  </Tabs>
1001
1229
 
1002
1230
  ## Suspense
@@ -1325,6 +1553,40 @@ Sie können die Funktion `parseMarkdown` aus dem Intlayer-Paket Ihres Frameworks
1325
1553
  ```
1326
1554
 
1327
1555
  </Tab>
1556
+ <Tab label="Remix" value="remix">
1557
+
1558
+ Remix 3 rendert auf dem Server und streamt HTML, sodass kein AST an den Client übertragen werden muss. Einmal parsen und das AST überall dort rendern, wo die Seite erstellt wird:
1559
+
1560
+ ```tsx fileName="src/views/article.tsx"
1561
+ import { parseMarkdown, renderMarkdown } from "remix-intlayer/markdown";
1562
+
1563
+ // 1. Parsen des Markdowns in ein serialisierbares AST (z. B. einmalig beim Modulladen)
1564
+ const ast = parseMarkdown("## My title \n\nLorem Ipsum");
1565
+
1566
+ export const ArticlePage = () => () => (
1567
+ // 2. Rendern des AST: Der Renderer akzeptiert einen rohen String oder das geparste AST
1568
+ <article innerHTML={renderMarkdown(ast)} />
1569
+ );
1570
+ ```
1571
+
1572
+ </Tab>
1573
+ <Tab label="Astro" value="astro">
1574
+
1575
+ Astro-Seiten werden auf dem Server gerendert, sodass kein AST an den Client übertragen werden muss. Parsen Sie das Markdown im Frontmatter und rendern Sie es mit `set:html`:
1576
+
1577
+ ```astro fileName="src/pages/article.astro"
1578
+ ---
1579
+ import { parseMarkdown, renderMarkdown } from "astro-intlayer/markdown";
1580
+
1581
+ // 1. Parsen des Markdowns in ein serialisierbares AST
1582
+ const ast = parseMarkdown("## My title \n\nLorem Ipsum");
1583
+ ---
1584
+
1585
+ <!-- 2. Rendern des AST: Der Renderer akzeptiert einen rohen String oder das geparste AST -->
1586
+ <article set:html={renderMarkdown(ast)} />
1587
+ ```
1588
+
1589
+ </Tab>
1328
1590
  </Tabs>
1329
1591
 
1330
1592
  Dieses Muster stellt sicher, dass die Markdown-Parsing-Logik vollständig auf dem Server ausgeführt wird, was die clientseitige Ausführungszeit erheblich verkürzt und die anfängliche Hydratisierungsgeschwindigkeit verbessert.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-21
4
4
  title: "Analog i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Analog-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -157,6 +157,28 @@ bun add intlayer angular-intlayer vite-intlayer
157
157
  </Step>
158
158
  <Step number={2} title="Konfiguration Ihres Projekts">
159
159
 
160
+ ### Architektur
161
+
162
+ In dieser Architektur stellt `angular-intlayer` `provideIntlayer()` bereit, das in `src/app/app.config.ts` registriert ist, damit jede Komponente und dateibasierte Seite ihren Inhalt über das `useIntlayer`-Signal lesen kann. Analog basiert auf Vite, daher wird das `intlayer()`-Plugin von `vite-intlayer` neben `analog()` in `vite.config.ts` hinzugefügt, um Ihre Inhaltsdeklarationen zu überwachen und neu zu erstellen sowie den Gebietsschema-Proxy auszuführen. Inhaltsdeklarationen werden neben Komponenten und Seiten in `src/app/` abgelegt.
163
+
164
+ ```bash
165
+ .
166
+ ├── src
167
+ │ ├── app
168
+ │ │ ├── pages
169
+ │ │ │ └── index.page.ts # File-based route using useIntlayer
170
+ │ │ ├── app.config.ts # Application config with provideIntlayer()
171
+ │ │ ├── app.content.ts # App content declaration
172
+ │ │ └── locale-switcher.component.ts
173
+ │ └── main.ts
174
+ ├── intlayer.config.ts
175
+ ├── package.json
176
+ ├── tsconfig.json
177
+ └── vite.config.ts # analog() and intlayer() Vite plugins
178
+ ```
179
+
180
+ ### Konfiguration
181
+
160
182
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu konfigurieren:
161
183
 
162
184
  ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-21
4
4
  title: "Angular 19 i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Angular 19-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -164,6 +164,29 @@ bun add @angular-builders/custom-webpack --dev
164
164
  </Step>
165
165
  <Step number={2} title="Konfiguration Ihres Projekts">
166
166
 
167
+ ### Architektur
168
+
169
+ In dieser Architektur stellt `angular-intlayer` `provideIntlayer()` bereit, das in `src/app/app.config.ts` registriert ist, damit jede Komponente ihren Inhalt über das `useIntlayer`-Signal lesen kann. Die Angular CLI wird auf den benutzerdefinierten Webpack-Builder umgestellt, und `webpack.config.ts` bindet das Intlayer-Plugin in den Build ein, um Ihre Inhaltsdeklarationen zu überwachen und neu zu erstellen. Inhaltsdeklarationen werden neben Komponenten in `src/app/` abgelegt.
170
+
171
+ ```bash
172
+ .
173
+ ├── src
174
+ │ ├── app
175
+ │ │ ├── app.component.html # Root template reading the content signal
176
+ │ │ ├── app.component.ts # Root component using useIntlayer
177
+ │ │ ├── app.config.ts # Application config with provideIntlayer()
178
+ │ │ ├── app.content.ts # App content declaration
179
+ │ │ └── locale-switcher.component.ts
180
+ │ └── main.ts
181
+ ├── angular.json # Custom Webpack builder for build and serve
182
+ ├── intlayer.config.ts
183
+ ├── package.json
184
+ ├── tsconfig.json
185
+ └── webpack.config.ts # mergeConfig() from angular-intlayer/webpack
186
+ ```
187
+
188
+ ### Konfiguration
189
+
167
190
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu konfigurieren:
168
191
 
169
192
  ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2025-04-18
3
- updatedAt: 2026-08-30
3
+ updatedAt: 2026-09-21
4
4
  title: "Angular 22 i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Angular 22-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -166,6 +166,29 @@ bun add @angular-builders/custom-esbuild --dev
166
166
  </Step>
167
167
  <Step number={2} title="Konfiguration Ihres Projekts">
168
168
 
169
+ ### Architektur
170
+
171
+ In dieser Architektur stellt `angular-intlayer` `provideIntlayer()` bereit, das in `src/app/app.config.ts` registriert ist, damit jede Komponente ihren Inhalt über das `useIntlayer`-Signal lesen kann. Die Angular CLI wird auf den benutzerdefinierten esbuild-Builder umgestellt, und `esbuild.plugins.ts` registriert das Intlayer-Plugin im Build, um Ihre Inhaltsdeklarationen zu überwachen und neu zu erstellen. Inhaltsdeklarationen werden neben Komponenten in `src/app/` abgelegt.
172
+
173
+ ```bash
174
+ .
175
+ ├── src
176
+ │ ├── app
177
+ │ │ ├── app.component.html # Root template reading the content signal
178
+ │ │ ├── app.component.ts # Root component using useIntlayer
179
+ │ │ ├── app.config.ts # Application config with provideIntlayer()
180
+ │ │ ├── app.content.ts # App content declaration
181
+ │ │ └── locale-switcher.component.ts
182
+ │ └── main.ts
183
+ ├── angular.json # Custom esbuild builder for build and serve
184
+ ├── esbuild.plugins.ts # intlayerEsbuildPlugin() from angular-intlayer/esbuild
185
+ ├── intlayer.config.ts
186
+ ├── package.json
187
+ └── tsconfig.json
188
+ ```
189
+
190
+ ### Konfiguration
191
+
169
192
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung festzulegen:
170
193
 
171
194
  ```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-03-07
3
- updatedAt: 2026-09-20
3
+ updatedAt: 2026-09-21
4
4
  title: "Astro i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Astro-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -160,6 +160,29 @@ bun add intlayer astro-intlayer
160
160
  </Step>
161
161
  <Step number={2} title="Konfigurieren Sie Ihr Projekt">
162
162
 
163
+ ### Architektur
164
+
165
+ In dieser Architektur erstellt die in `astro.config.ts` registrierte `intlayer()`-Integration Ihre Wörterbücher und fügt eine Middleware hinzu, die das Gebietsschema jeder Anfrage auflöst und unter `Astro.locals.intlayer` bereitstellt. Seiten befinden sich unter einem Rest-Segment `src/pages/[...locale]/`, sodass das Standard-Gebietsschema ohne Präfix bereitgestellt wird und jedes andere Gebietsschema eine eigene dedizierte URL erhält. `.astro`-Dateien lesen den Inhalt mit den `useIntlayer` / `useLocale`-Hooks von `astro-intlayer`, und Inhaltsdeklarationen werden neben Ihren Komponenten in `src/` abgelegt.
166
+
167
+ ```bash
168
+ .
169
+ ├── src
170
+ │ ├── app.content.tsx # App content declaration
171
+ │ ├── components
172
+ │ │ └── LocaleSwitcher.astro # Locale switcher component
173
+ │ └── pages
174
+ │ ├── [...locale]
175
+ │ │ └── index.astro # Localized page (rest param also serves the default locale)
176
+ │ ├── robots.txt.ts # robots.txt endpoint
177
+ │ └── sitemap.xml.ts # Localized sitemap endpoint
178
+ ├── astro.config.ts # Astro config with the intlayer() integration
179
+ ├── intlayer.config.ts
180
+ ├── package.json
181
+ └── tsconfig.json
182
+ ```
183
+
184
+ ### Konfiguration
185
+
163
186
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu definieren:
164
187
 
165
188
  ```typescript fileName="intlayer.config.ts"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-09-20
3
+ updatedAt: 2026-09-21
4
4
  title: "Astro + Lit i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Astro + Lit-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -168,6 +168,30 @@ bun add intlayer astro-intlayer lit lit-intlayer @astrojs/lit
168
168
  </Step>
169
169
  <Step number={2} title="Konfigurieren Sie Ihr Projekt">
170
170
 
171
+ ### Architektur
172
+
173
+ In dieser Architektur erstellt die in `astro.config.ts` registrierte `intlayer()`-Integration Ihre Wörterbücher und fügt eine Middleware hinzu, die das Gebietsschema jeder Anfrage auflöst und unter `Astro.locals.intlayer` bereitstellt. Seiten befinden sich unter einem Rest-Segment `src/pages/[...locale]/`, sodass das Standard-Gebietsschema ohne Präfix bereitgestellt wird und jedes andere Gebietsschema eine eigene dedizierte URL erhält. `.astro`-Dateien lesen den Inhalt mit den `useIntlayer` / `useLocale`-Hooks von `astro-intlayer` für das Server-Rendering, und die Lit-Insel (`src/components/lit/LitDemo.ts`) empfängt das vom Server erkannte Gebietsschema als Prop und übergibt es an `lit-intlayer` für den interaktiven Teil. Inhaltsdeklarationen werden neben Ihren Komponenten in `src/` abgelegt.
174
+
175
+ ```bash
176
+ .
177
+ ├── src
178
+ │ ├── components
179
+ │ │ └── lit
180
+ │ │ ├── app.content.ts # App content declaration
181
+ │ │ └── LitDemo.ts # Lit custom element (content + locale switcher)
182
+ │ └── pages
183
+ │ ├── [...locale]
184
+ │ │ └── index.astro # Localized page mounting the custom element
185
+ │ ├── robots.txt.ts # robots.txt endpoint
186
+ │ └── sitemap.xml.ts # Localized sitemap endpoint
187
+ ├── astro.config.ts # Astro config with the intlayer() and lit() integrations
188
+ ├── intlayer.config.ts
189
+ ├── package.json
190
+ └── tsconfig.json
191
+ ```
192
+
193
+ ### Konfiguration
194
+
171
195
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu definieren:
172
196
 
173
197
  ```typescript fileName="intlayer.config.ts"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-09-20
3
+ updatedAt: 2026-09-21
4
4
  title: "Astro + Preact i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Astro + Preact-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -167,6 +167,31 @@ bun add intlayer astro-intlayer preact preact-intlayer @astrojs/preact
167
167
  </Step>
168
168
  <Step number={2} title="Konfigurieren Sie Ihr Projekt">
169
169
 
170
+ ### Architektur
171
+
172
+ In dieser Architektur erstellt die in `astro.config.ts` registrierte `intlayer()`-Integration Ihre Wörterbücher und fügt eine Middleware hinzu, die das Gebietsschema jeder Anfrage auflöst und unter `Astro.locals.intlayer` bereitstellt. Seiten befinden sich unter einem Rest-Segment `src/pages/[...locale]/`, sodass das Standard-Gebietsschema ohne Präfix bereitgestellt wird und jedes andere Gebietsschema eine eigene dedizierte URL erhält. `.astro`-Dateien lesen den Inhalt mit den `useIntlayer` / `useLocale`-Hooks von `astro-intlayer` für das Server-Rendering, und die Preact-Insel (`src/components/preact/PreactIsland.tsx`) empfängt das vom Server erkannte Gebietsschema als Prop und übergibt es an `preact-intlayer` für den interaktiven Teil. Inhaltsdeklarationen werden neben Ihren Komponenten in `src/` abgelegt.
173
+
174
+ ```bash
175
+ .
176
+ ├── src
177
+ │ ├── app.content.tsx # App content declaration
178
+ │ ├── components
179
+ │ │ └── preact
180
+ │ │ ├── LocaleSwitcher.tsx # Locale switcher rendered inside the island
181
+ │ │ └── PreactIsland.tsx # Preact island wrapping the tree in IntlayerProvider
182
+ │ └── pages
183
+ │ ├── [...locale]
184
+ │ │ └── index.astro # Localized page mounting the island
185
+ │ ├── robots.txt.ts # robots.txt endpoint
186
+ │ └── sitemap.xml.ts # Localized sitemap endpoint
187
+ ├── astro.config.ts # Astro config with the intlayer() and preact() integrations
188
+ ├── intlayer.config.ts
189
+ ├── package.json
190
+ └── tsconfig.json
191
+ ```
192
+
193
+ ### Konfiguration
194
+
170
195
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu definieren:
171
196
 
172
197
  ```typescript fileName="intlayer.config.ts"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2024-03-07
3
- updatedAt: 2026-09-20
3
+ updatedAt: 2026-09-21
4
4
  title: "Astro + React i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Astro + React-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -170,6 +170,31 @@ bun add intlayer astro-intlayer react react-dom react-intlayer @astrojs/react
170
170
  </Step>
171
171
  <Step number={2} title="Konfigurieren Sie Ihr Projekt">
172
172
 
173
+ ### Architektur
174
+
175
+ In dieser Architektur erstellt die in `astro.config.ts` registrierte `intlayer()`-Integration Ihre Wörterbücher und fügt eine Middleware hinzu, die das Gebietsschema jeder Anfrage auflöst und unter `Astro.locals.intlayer` bereitstellt. Seiten befinden sich unter einem Rest-Segment `src/pages/[...locale]/`, sodass das Standard-Gebietsschema ohne Präfix bereitgestellt wird und jedes andere Gebietsschema eine eigene dedizierte URL erhält. `.astro`-Dateien lesen den Inhalt mit den `useIntlayer` / `useLocale`-Hooks von `astro-intlayer` für das Server-Rendering, und die React-Insel (`src/components/react/ReactIsland.tsx`) empfängt das vom Server erkannte Gebietsschema als Prop und übergibt es an `react-intlayer` für den interaktiven Teil. Inhaltsdeklarationen werden neben Ihren Komponenten in `src/` abgelegt.
176
+
177
+ ```bash
178
+ .
179
+ ├── src
180
+ │ ├── app.content.tsx # App content declaration
181
+ │ ├── components
182
+ │ │ └── react
183
+ │ │ ├── LocaleSwitcher.tsx # Locale switcher rendered inside the island
184
+ │ │ └── ReactIsland.tsx # React island wrapping the tree in IntlayerProvider
185
+ │ └── pages
186
+ │ ├── [...locale]
187
+ │ │ └── index.astro # Localized page mounting the island
188
+ │ ├── robots.txt.ts # robots.txt endpoint
189
+ │ └── sitemap.xml.ts # Localized sitemap endpoint
190
+ ├── astro.config.ts # Astro config with the intlayer() and react() integrations
191
+ ├── intlayer.config.ts
192
+ ├── package.json
193
+ └── tsconfig.json
194
+ ```
195
+
196
+ ### Konfiguration
197
+
173
198
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu definieren:
174
199
 
175
200
  ```typescript fileName="intlayer.config.ts"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-09-20
3
+ updatedAt: 2026-09-21
4
4
  title: "Astro + Solid i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Astro + Solid-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -167,6 +167,31 @@ bun add intlayer astro-intlayer solid-js solid-intlayer @astrojs/solid-js
167
167
  </Step>
168
168
  <Step number={2} title="Konfigurieren Sie Ihr Projekt">
169
169
 
170
+ ### Architektur
171
+
172
+ In dieser Architektur erstellt die in `astro.config.ts` registrierte `intlayer()`-Integration Ihre Wörterbücher und fügt eine Middleware hinzu, die das Gebietsschema jeder Anfrage auflöst und unter `Astro.locals.intlayer` bereitstellt. Seiten befinden sich unter einem Rest-Segment `src/pages/[...locale]/`, sodass das Standard-Gebietsschema ohne Präfix bereitgestellt wird und jedes andere Gebietsschema eine eigene dedizierte URL erhält. `.astro`-Dateien lesen den Inhalt mit den `useIntlayer` / `useLocale`-Hooks von `astro-intlayer` für das Server-Rendering, und die Solid-Insel (`src/components/solid/SolidIsland.tsx`) empfängt das vom Server erkannte Gebietsschema als Prop und übergibt es an `solid-intlayer` für den interaktiven Teil. Inhaltsdeklarationen werden neben Ihren Komponenten in `src/` abgelegt.
173
+
174
+ ```bash
175
+ .
176
+ ├── src
177
+ │ ├── app.content.tsx # App content declaration
178
+ │ ├── components
179
+ │ │ └── solid
180
+ │ │ ├── LocaleSwitcher.tsx # Locale switcher rendered inside the island
181
+ │ │ └── SolidIsland.tsx # Solid island wrapping the tree in IntlayerProvider
182
+ │ └── pages
183
+ │ ├── [...locale]
184
+ │ │ └── index.astro # Localized page mounting the island
185
+ │ ├── robots.txt.ts # robots.txt endpoint
186
+ │ └── sitemap.xml.ts # Localized sitemap endpoint
187
+ ├── astro.config.ts # Astro config with the intlayer() and solid() integrations
188
+ ├── intlayer.config.ts
189
+ ├── package.json
190
+ └── tsconfig.json
191
+ ```
192
+
193
+ ### Konfiguration
194
+
170
195
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu definieren:
171
196
 
172
197
  ```typescript fileName="intlayer.config.ts"
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-04-24
3
- updatedAt: 2026-09-20
3
+ updatedAt: 2026-09-21
4
4
  title: "Astro + Svelte i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
5
5
  description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Astro + Svelte-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
6
6
  keywords:
@@ -167,6 +167,30 @@ bun add intlayer astro-intlayer svelte svelte-intlayer @astrojs/svelte
167
167
  </Step>
168
168
  <Step number={2} title="Konfigurieren Sie Ihr Projekt">
169
169
 
170
+ ### Architektur
171
+
172
+ In dieser Architektur erstellt die in `astro.config.ts` registrierte `intlayer()`-Integration Ihre Wörterbücher und fügt eine Middleware hinzu, die das Gebietsschema jeder Anfrage auflöst und unter `Astro.locals.intlayer` bereitstellt. Seiten befinden sich unter einem Rest-Segment `src/pages/[...locale]/`, sodass das Standard-Gebietsschema ohne Präfix bereitgestellt wird und jedes andere Gebietsschema eine eigene dedizierte URL erhält. `.astro`-Dateien lesen den Inhalt mit den `useIntlayer` / `useLocale`-Hooks von `astro-intlayer` für das Server-Rendering, und die Svelte-Insel (`src/components/svelte/SvelteIsland.svelte`) empfängt das vom Server erkannte Gebietsschema als Prop und übergibt es an `svelte-intlayer` für den interaktiven Teil. Inhaltsdeklarationen werden neben Ihren Komponenten in `src/` abgelegt.
173
+
174
+ ```bash
175
+ .
176
+ ├── src
177
+ │ ├── app.content.ts # App content declaration
178
+ │ ├── components
179
+ │ │ └── svelte
180
+ │ │ └── SvelteIsland.svelte # Svelte island (content + locale switcher)
181
+ │ └── pages
182
+ │ ├── [...locale]
183
+ │ │ └── index.astro # Localized page mounting the island
184
+ │ ├── robots.txt.ts # robots.txt endpoint
185
+ │ └── sitemap.xml.ts # Localized sitemap endpoint
186
+ ├── astro.config.ts # Astro config with the intlayer() and svelte() integrations
187
+ ├── intlayer.config.ts
188
+ ├── package.json
189
+ └── tsconfig.json
190
+ ```
191
+
192
+ ### Konfiguration
193
+
170
194
  Erstellen Sie eine Konfigurationsdatei, um die Sprachen Ihrer Anwendung zu definieren:
171
195
 
172
196
  ```typescript fileName="intlayer.config.ts"