@intlayer/docs 9.5.3 → 9.5.4

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 (783) hide show
  1. package/README.md +8 -8
  2. package/blog/ar/history_of_i18n.md +54 -54
  3. package/blog/ar/how_to_pick_react_i18n_library.md +548 -0
  4. package/blog/ar/how_to_pick_solid_i18n_library.md +438 -0
  5. package/blog/ar/how_to_pick_svelte_i18n_library.md +454 -0
  6. package/blog/ar/how_to_pick_vue_i18n_library.md +442 -0
  7. package/blog/ar/is_i18next_outdated.md +5 -1
  8. package/blog/ar/is_next-intl_outdated.md +5 -1
  9. package/blog/ar/is_vue-i18n_outdated.md +7 -1
  10. package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +8 -4
  11. package/blog/ar/per-component_vs_centralized_i18n.md +9 -4
  12. package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  13. package/blog/de/history_of_i18n.md +54 -54
  14. package/blog/de/how_to_pick_react_i18n_library.md +548 -0
  15. package/blog/de/how_to_pick_solid_i18n_library.md +451 -0
  16. package/blog/de/how_to_pick_svelte_i18n_library.md +454 -0
  17. package/blog/de/how_to_pick_vue_i18n_library.md +448 -0
  18. package/blog/de/is_i18next_outdated.md +5 -1
  19. package/blog/de/is_next-intl_outdated.md +5 -1
  20. package/blog/de/is_vue-i18n_outdated.md +7 -1
  21. package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  22. package/blog/de/per-component_vs_centralized_i18n.md +9 -4
  23. package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  24. package/blog/en/history_of_i18n.md +54 -54
  25. package/blog/en/how_to_pick_react_i18n_library.md +542 -0
  26. package/blog/en/how_to_pick_solid_i18n_library.md +438 -0
  27. package/blog/en/how_to_pick_svelte_i18n_library.md +448 -0
  28. package/blog/en/how_to_pick_vue_i18n_library.md +442 -0
  29. package/blog/en/is_i18next_outdated.md +5 -1
  30. package/blog/en/is_next-intl_outdated.md +5 -1
  31. package/blog/en/is_vue-i18n_outdated.md +7 -1
  32. package/blog/en/list_i18n_technologies/frameworks/react-router.md +2 -3
  33. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  34. package/blog/en/per-component_vs_centralized_i18n.md +9 -4
  35. package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  36. package/blog/en-GB/history_of_i18n.md +54 -54
  37. package/blog/en-GB/how_to_pick_react_i18n_library.md +542 -0
  38. package/blog/en-GB/how_to_pick_solid_i18n_library.md +438 -0
  39. package/blog/en-GB/how_to_pick_svelte_i18n_library.md +448 -0
  40. package/blog/en-GB/how_to_pick_vue_i18n_library.md +448 -0
  41. package/blog/en-GB/is_i18next_outdated.md +5 -1
  42. package/blog/en-GB/is_next-intl_outdated.md +5 -1
  43. package/blog/en-GB/is_vue-i18n_outdated.md +7 -1
  44. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  45. package/blog/en-GB/per-component_vs_centralized_i18n.md +9 -4
  46. package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  47. package/blog/es/history_of_i18n.md +54 -54
  48. package/blog/es/how_to_pick_react_i18n_library.md +542 -0
  49. package/blog/es/how_to_pick_solid_i18n_library.md +446 -0
  50. package/blog/es/how_to_pick_svelte_i18n_library.md +448 -0
  51. package/blog/es/how_to_pick_vue_i18n_library.md +442 -0
  52. package/blog/es/is_i18next_outdated.md +5 -1
  53. package/blog/es/is_next-intl_outdated.md +5 -1
  54. package/blog/es/is_vue-i18n_outdated.md +7 -1
  55. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  56. package/blog/es/per-component_vs_centralized_i18n.md +9 -4
  57. package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  58. package/blog/fr/history_of_i18n.md +54 -54
  59. package/blog/fr/how_to_pick_react_i18n_library.md +542 -0
  60. package/blog/fr/how_to_pick_solid_i18n_library.md +438 -0
  61. package/blog/fr/how_to_pick_svelte_i18n_library.md +448 -0
  62. package/blog/fr/how_to_pick_vue_i18n_library.md +442 -0
  63. package/blog/fr/is_i18next_outdated.md +5 -1
  64. package/blog/fr/is_next-intl_outdated.md +5 -1
  65. package/blog/fr/is_vue-i18n_outdated.md +7 -1
  66. package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  67. package/blog/fr/per-component_vs_centralized_i18n.md +9 -4
  68. package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  69. package/blog/hi/history_of_i18n.md +54 -54
  70. package/blog/hi/how_to_pick_react_i18n_library.md +548 -0
  71. package/blog/hi/how_to_pick_solid_i18n_library.md +451 -0
  72. package/blog/hi/how_to_pick_svelte_i18n_library.md +448 -0
  73. package/blog/hi/how_to_pick_vue_i18n_library.md +442 -0
  74. package/blog/hi/is_i18next_outdated.md +5 -1
  75. package/blog/hi/is_next-intl_outdated.md +5 -1
  76. package/blog/hi/is_vue-i18n_outdated.md +7 -1
  77. package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +8 -4
  78. package/blog/hi/per-component_vs_centralized_i18n.md +9 -4
  79. package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  80. package/blog/id/history_of_i18n.md +54 -54
  81. package/blog/id/how_to_pick_react_i18n_library.md +548 -0
  82. package/blog/id/how_to_pick_solid_i18n_library.md +451 -0
  83. package/blog/id/how_to_pick_svelte_i18n_library.md +454 -0
  84. package/blog/id/how_to_pick_vue_i18n_library.md +442 -0
  85. package/blog/id/is_i18next_outdated.md +5 -1
  86. package/blog/id/is_next-intl_outdated.md +5 -1
  87. package/blog/id/is_vue-i18n_outdated.md +7 -1
  88. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  89. package/blog/id/per-component_vs_centralized_i18n.md +9 -4
  90. package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  91. package/blog/it/history_of_i18n.md +54 -54
  92. package/blog/it/how_to_pick_react_i18n_library.md +549 -0
  93. package/blog/it/how_to_pick_solid_i18n_library.md +451 -0
  94. package/blog/it/how_to_pick_svelte_i18n_library.md +455 -0
  95. package/blog/it/how_to_pick_vue_i18n_library.md +449 -0
  96. package/blog/it/is_i18next_outdated.md +5 -1
  97. package/blog/it/is_next-intl_outdated.md +5 -1
  98. package/blog/it/is_vue-i18n_outdated.md +7 -1
  99. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  100. package/blog/it/per-component_vs_centralized_i18n.md +9 -4
  101. package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  102. package/blog/ja/history_of_i18n.md +54 -54
  103. package/blog/ja/how_to_pick_react_i18n_library.md +542 -0
  104. package/blog/ja/how_to_pick_solid_i18n_library.md +451 -0
  105. package/blog/ja/how_to_pick_svelte_i18n_library.md +457 -0
  106. package/blog/ja/how_to_pick_vue_i18n_library.md +442 -0
  107. package/blog/ja/is_i18next_outdated.md +5 -1
  108. package/blog/ja/is_next-intl_outdated.md +5 -1
  109. package/blog/ja/is_vue-i18n_outdated.md +7 -1
  110. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  111. package/blog/ja/per-component_vs_centralized_i18n.md +9 -4
  112. package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  113. package/blog/ko/history_of_i18n.md +54 -54
  114. package/blog/ko/how_to_pick_react_i18n_library.md +548 -0
  115. package/blog/ko/how_to_pick_solid_i18n_library.md +451 -0
  116. package/blog/ko/how_to_pick_svelte_i18n_library.md +454 -0
  117. package/blog/ko/how_to_pick_vue_i18n_library.md +448 -0
  118. package/blog/ko/is_i18next_outdated.md +5 -1
  119. package/blog/ko/is_next-intl_outdated.md +5 -1
  120. package/blog/ko/is_vue-i18n_outdated.md +7 -1
  121. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  122. package/blog/ko/per-component_vs_centralized_i18n.md +9 -4
  123. package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  124. package/blog/pl/history_of_i18n.md +54 -54
  125. package/blog/pl/how_to_pick_react_i18n_library.md +549 -0
  126. package/blog/pl/how_to_pick_solid_i18n_library.md +438 -0
  127. package/blog/pl/how_to_pick_svelte_i18n_library.md +460 -0
  128. package/blog/pl/how_to_pick_vue_i18n_library.md +442 -0
  129. package/blog/pl/is_i18next_outdated.md +5 -1
  130. package/blog/pl/is_next-intl_outdated.md +5 -1
  131. package/blog/pl/is_vue-i18n_outdated.md +7 -1
  132. package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  133. package/blog/pl/per-component_vs_centralized_i18n.md +9 -4
  134. package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  135. package/blog/pt/history_of_i18n.md +54 -54
  136. package/blog/pt/how_to_pick_react_i18n_library.md +549 -0
  137. package/blog/pt/how_to_pick_solid_i18n_library.md +451 -0
  138. package/blog/pt/how_to_pick_svelte_i18n_library.md +454 -0
  139. package/blog/pt/how_to_pick_vue_i18n_library.md +448 -0
  140. package/blog/pt/is_i18next_outdated.md +5 -1
  141. package/blog/pt/is_next-intl_outdated.md +5 -1
  142. package/blog/pt/is_vue-i18n_outdated.md +7 -1
  143. package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  144. package/blog/pt/per-component_vs_centralized_i18n.md +9 -4
  145. package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  146. package/blog/ru/history_of_i18n.md +54 -54
  147. package/blog/ru/how_to_pick_react_i18n_library.md +553 -0
  148. package/blog/ru/how_to_pick_solid_i18n_library.md +451 -0
  149. package/blog/ru/how_to_pick_svelte_i18n_library.md +459 -0
  150. package/blog/ru/how_to_pick_vue_i18n_library.md +453 -0
  151. package/blog/ru/is_i18next_outdated.md +5 -1
  152. package/blog/ru/is_next-intl_outdated.md +5 -1
  153. package/blog/ru/is_vue-i18n_outdated.md +7 -1
  154. package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +8 -4
  155. package/blog/ru/per-component_vs_centralized_i18n.md +9 -4
  156. package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  157. package/blog/tr/history_of_i18n.md +54 -54
  158. package/blog/tr/how_to_pick_react_i18n_library.md +548 -0
  159. package/blog/tr/how_to_pick_solid_i18n_library.md +451 -0
  160. package/blog/tr/how_to_pick_svelte_i18n_library.md +454 -0
  161. package/blog/tr/how_to_pick_vue_i18n_library.md +448 -0
  162. package/blog/tr/is_i18next_outdated.md +5 -1
  163. package/blog/tr/is_next-intl_outdated.md +5 -1
  164. package/blog/tr/is_vue-i18n_outdated.md +7 -1
  165. package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  166. package/blog/tr/per-component_vs_centralized_i18n.md +9 -4
  167. package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  168. package/blog/uk/history_of_i18n.md +54 -54
  169. package/blog/uk/how_to_pick_react_i18n_library.md +542 -0
  170. package/blog/uk/how_to_pick_solid_i18n_library.md +451 -0
  171. package/blog/uk/how_to_pick_svelte_i18n_library.md +448 -0
  172. package/blog/uk/how_to_pick_vue_i18n_library.md +443 -0
  173. package/blog/uk/is_i18next_outdated.md +5 -1
  174. package/blog/uk/is_next-intl_outdated.md +5 -1
  175. package/blog/uk/is_vue-i18n_outdated.md +7 -1
  176. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  177. package/blog/uk/per-component_vs_centralized_i18n.md +9 -4
  178. package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  179. package/blog/vi/history_of_i18n.md +54 -54
  180. package/blog/vi/how_to_pick_react_i18n_library.md +548 -0
  181. package/blog/vi/how_to_pick_solid_i18n_library.md +438 -0
  182. package/blog/vi/how_to_pick_svelte_i18n_library.md +448 -0
  183. package/blog/vi/how_to_pick_vue_i18n_library.md +442 -0
  184. package/blog/vi/is_i18next_outdated.md +5 -1
  185. package/blog/vi/is_next-intl_outdated.md +5 -1
  186. package/blog/vi/is_vue-i18n_outdated.md +7 -1
  187. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  188. package/blog/vi/per-component_vs_centralized_i18n.md +9 -4
  189. package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  190. package/blog/zh/history_of_i18n.md +54 -54
  191. package/blog/zh/how_to_pick_react_i18n_library.md +548 -0
  192. package/blog/zh/how_to_pick_solid_i18n_library.md +451 -0
  193. package/blog/zh/how_to_pick_svelte_i18n_library.md +454 -0
  194. package/blog/zh/how_to_pick_vue_i18n_library.md +448 -0
  195. package/blog/zh/is_i18next_outdated.md +5 -1
  196. package/blog/zh/is_next-intl_outdated.md +5 -1
  197. package/blog/zh/is_vue-i18n_outdated.md +7 -1
  198. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
  199. package/blog/zh/per-component_vs_centralized_i18n.md +9 -4
  200. package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
  201. package/dist/cjs/generated/blog.entry.cjs +80 -0
  202. package/dist/cjs/generated/blog.entry.cjs.map +1 -1
  203. package/dist/cjs/index.cjs +1 -1
  204. package/dist/esm/generated/blog.entry.mjs +80 -0
  205. package/dist/esm/generated/blog.entry.mjs.map +1 -1
  206. package/dist/esm/index.mjs +1 -1
  207. package/dist/types/generated/blog.entry.d.ts +4 -0
  208. package/dist/types/generated/blog.entry.d.ts.map +1 -1
  209. package/docs/ar/bundle_optimization.md +5 -1
  210. package/docs/ar/how_works_intlayer.md +2 -2
  211. package/docs/ar/interest_of_intlayer.md +6 -6
  212. package/docs/ar/intlayer_CMS.md +1 -1
  213. package/docs/ar/intlayer_with_adonisjs.md +1 -1
  214. package/docs/ar/intlayer_with_analog.md +1 -1
  215. package/docs/ar/intlayer_with_angular_19.md +1 -1
  216. package/docs/ar/intlayer_with_angular_21.md +1 -1
  217. package/docs/ar/intlayer_with_astro.md +1 -1
  218. package/docs/ar/intlayer_with_astro_lit.md +1 -1
  219. package/docs/ar/intlayer_with_astro_preact.md +1 -1
  220. package/docs/ar/intlayer_with_astro_react.md +1 -1
  221. package/docs/ar/intlayer_with_astro_solid.md +1 -1
  222. package/docs/ar/intlayer_with_astro_svelte.md +1 -1
  223. package/docs/ar/intlayer_with_astro_vanilla.md +1 -1
  224. package/docs/ar/intlayer_with_astro_vue.md +1 -1
  225. package/docs/ar/intlayer_with_create_react_app.md +1 -1
  226. package/docs/ar/intlayer_with_express.md +1 -1
  227. package/docs/ar/intlayer_with_hono.md +1 -1
  228. package/docs/ar/intlayer_with_nestjs.md +1 -1
  229. package/docs/ar/intlayer_with_nextjs_14.md +1 -1
  230. package/docs/ar/intlayer_with_nextjs_15.md +1 -1
  231. package/docs/ar/intlayer_with_nextjs_16.md +1 -1
  232. package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
  233. package/docs/ar/intlayer_with_react_router_v7.md +1 -1
  234. package/docs/ar/intlayer_with_vite+preact.md +1 -1
  235. package/docs/ar/intlayer_with_vite+react.md +1 -1
  236. package/docs/ar/intlayer_with_vite+vue.md +1 -1
  237. package/docs/ar/introduction.md +0 -1
  238. package/docs/ar/readme.md +8 -8
  239. package/docs/bn/bundle_optimization.md +5 -1
  240. package/docs/bn/interest_of_intlayer.md +21 -21
  241. package/docs/bn/intlayer_CMS.md +1 -1
  242. package/docs/bn/intlayer_with_angular_21.md +1 -1
  243. package/docs/bn/intlayer_with_hono.md +1 -1
  244. package/docs/bn/introduction.md +0 -1
  245. package/docs/cs/bundle_optimization.md +5 -1
  246. package/docs/cs/interest_of_intlayer.md +6 -6
  247. package/docs/cs/intlayer_with_angular_21.md +1 -1
  248. package/docs/cs/intlayer_with_hono.md +1 -1
  249. package/docs/cs/introduction.md +0 -1
  250. package/docs/de/bundle_optimization.md +5 -1
  251. package/docs/de/how_works_intlayer.md +2 -2
  252. package/docs/de/interest_of_intlayer.md +6 -6
  253. package/docs/de/intlayer_CMS.md +1 -1
  254. package/docs/de/intlayer_with_adonisjs.md +1 -1
  255. package/docs/de/intlayer_with_analog.md +1 -1
  256. package/docs/de/intlayer_with_angular_19.md +1 -1
  257. package/docs/de/intlayer_with_angular_21.md +1 -1
  258. package/docs/de/intlayer_with_astro.md +1 -1
  259. package/docs/de/intlayer_with_astro_lit.md +1 -1
  260. package/docs/de/intlayer_with_astro_preact.md +1 -1
  261. package/docs/de/intlayer_with_astro_react.md +1 -1
  262. package/docs/de/intlayer_with_astro_solid.md +1 -1
  263. package/docs/de/intlayer_with_astro_svelte.md +1 -1
  264. package/docs/de/intlayer_with_astro_vanilla.md +1 -1
  265. package/docs/de/intlayer_with_astro_vue.md +1 -1
  266. package/docs/de/intlayer_with_create_react_app.md +1 -1
  267. package/docs/de/intlayer_with_express.md +1 -1
  268. package/docs/de/intlayer_with_hono.md +1 -1
  269. package/docs/de/intlayer_with_nestjs.md +1 -1
  270. package/docs/de/intlayer_with_nextjs_14.md +1 -1
  271. package/docs/de/intlayer_with_nextjs_15.md +1 -1
  272. package/docs/de/intlayer_with_nextjs_16.md +1 -1
  273. package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
  274. package/docs/de/intlayer_with_vite+preact.md +1 -1
  275. package/docs/de/intlayer_with_vite+react.md +1 -1
  276. package/docs/de/intlayer_with_vite+vue.md +1 -1
  277. package/docs/de/introduction.md +0 -1
  278. package/docs/de/readme.md +8 -8
  279. package/docs/en/bundle_optimization.md +5 -1
  280. package/docs/en/how_works_intlayer.md +2 -2
  281. package/docs/en/interest_of_intlayer.md +6 -6
  282. package/docs/en/intlayer_CMS.md +1 -1
  283. package/docs/en/intlayer_with_adonisjs.md +1 -1
  284. package/docs/en/intlayer_with_analog.md +1 -1
  285. package/docs/en/intlayer_with_angular_19.md +1 -1
  286. package/docs/en/intlayer_with_angular_21.md +1 -1
  287. package/docs/en/intlayer_with_astro.md +1 -1
  288. package/docs/en/intlayer_with_astro_lit.md +1 -1
  289. package/docs/en/intlayer_with_astro_preact.md +1 -1
  290. package/docs/en/intlayer_with_astro_react.md +1 -1
  291. package/docs/en/intlayer_with_astro_solid.md +1 -1
  292. package/docs/en/intlayer_with_astro_svelte.md +1 -1
  293. package/docs/en/intlayer_with_astro_vanilla.md +1 -1
  294. package/docs/en/intlayer_with_astro_vue.md +1 -1
  295. package/docs/en/intlayer_with_create_react_app.md +1 -1
  296. package/docs/en/intlayer_with_express.md +1 -1
  297. package/docs/en/intlayer_with_hono.md +1 -1
  298. package/docs/en/intlayer_with_nestjs.md +1 -1
  299. package/docs/en/intlayer_with_nextjs_14.md +1 -1
  300. package/docs/en/intlayer_with_nextjs_15.md +1 -1
  301. package/docs/en/intlayer_with_nextjs_16.md +1 -1
  302. package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
  303. package/docs/en/intlayer_with_vite+preact.md +1 -1
  304. package/docs/en/intlayer_with_vite+react.md +1 -1
  305. package/docs/en/intlayer_with_vite+vue.md +1 -1
  306. package/docs/en/introduction.md +0 -1
  307. package/docs/en/readme.md +8 -8
  308. package/docs/en-GB/bundle_optimization.md +5 -1
  309. package/docs/en-GB/how_works_intlayer.md +2 -2
  310. package/docs/en-GB/interest_of_intlayer.md +6 -6
  311. package/docs/en-GB/intlayer_CMS.md +1 -1
  312. package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
  313. package/docs/en-GB/intlayer_with_analog.md +1 -1
  314. package/docs/en-GB/intlayer_with_angular_19.md +1 -1
  315. package/docs/en-GB/intlayer_with_angular_21.md +1 -1
  316. package/docs/en-GB/intlayer_with_astro.md +1 -1
  317. package/docs/en-GB/intlayer_with_astro_lit.md +1 -1
  318. package/docs/en-GB/intlayer_with_astro_preact.md +1 -1
  319. package/docs/en-GB/intlayer_with_astro_react.md +1 -1
  320. package/docs/en-GB/intlayer_with_astro_solid.md +1 -1
  321. package/docs/en-GB/intlayer_with_astro_svelte.md +1 -1
  322. package/docs/en-GB/intlayer_with_astro_vanilla.md +1 -1
  323. package/docs/en-GB/intlayer_with_astro_vue.md +1 -1
  324. package/docs/en-GB/intlayer_with_create_react_app.md +1 -1
  325. package/docs/en-GB/intlayer_with_express.md +1 -1
  326. package/docs/en-GB/intlayer_with_hono.md +1 -1
  327. package/docs/en-GB/intlayer_with_nestjs.md +1 -1
  328. package/docs/en-GB/intlayer_with_nextjs_14.md +1 -1
  329. package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
  330. package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
  331. package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
  332. package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
  333. package/docs/en-GB/intlayer_with_vite+react.md +1 -1
  334. package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
  335. package/docs/en-GB/introduction.md +0 -1
  336. package/docs/en-GB/readme.md +8 -8
  337. package/docs/es/bundle_optimization.md +5 -1
  338. package/docs/es/how_works_intlayer.md +2 -2
  339. package/docs/es/interest_of_intlayer.md +6 -6
  340. package/docs/es/intlayer_CMS.md +1 -1
  341. package/docs/es/intlayer_with_adonisjs.md +1 -1
  342. package/docs/es/intlayer_with_analog.md +1 -1
  343. package/docs/es/intlayer_with_angular_19.md +1 -1
  344. package/docs/es/intlayer_with_angular_21.md +1 -1
  345. package/docs/es/intlayer_with_astro.md +1 -1
  346. package/docs/es/intlayer_with_astro_lit.md +1 -1
  347. package/docs/es/intlayer_with_astro_preact.md +1 -1
  348. package/docs/es/intlayer_with_astro_react.md +1 -1
  349. package/docs/es/intlayer_with_astro_solid.md +1 -1
  350. package/docs/es/intlayer_with_astro_svelte.md +1 -1
  351. package/docs/es/intlayer_with_astro_vanilla.md +1 -1
  352. package/docs/es/intlayer_with_astro_vue.md +1 -1
  353. package/docs/es/intlayer_with_create_react_app.md +1 -1
  354. package/docs/es/intlayer_with_express.md +1 -1
  355. package/docs/es/intlayer_with_hono.md +1 -1
  356. package/docs/es/intlayer_with_nestjs.md +1 -1
  357. package/docs/es/intlayer_with_nextjs_14.md +1 -1
  358. package/docs/es/intlayer_with_nextjs_15.md +1 -1
  359. package/docs/es/intlayer_with_nextjs_16.md +1 -1
  360. package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
  361. package/docs/es/intlayer_with_vite+preact.md +1 -1
  362. package/docs/es/intlayer_with_vite+react.md +1 -1
  363. package/docs/es/intlayer_with_vite+vue.md +1 -1
  364. package/docs/es/introduction.md +0 -1
  365. package/docs/es/readme.md +8 -8
  366. package/docs/fr/bundle_optimization.md +5 -1
  367. package/docs/fr/how_works_intlayer.md +2 -2
  368. package/docs/fr/interest_of_intlayer.md +6 -6
  369. package/docs/fr/intlayer_CMS.md +1 -1
  370. package/docs/fr/intlayer_with_adonisjs.md +1 -1
  371. package/docs/fr/intlayer_with_analog.md +1 -1
  372. package/docs/fr/intlayer_with_angular_19.md +1 -1
  373. package/docs/fr/intlayer_with_angular_21.md +1 -1
  374. package/docs/fr/intlayer_with_astro.md +1 -1
  375. package/docs/fr/intlayer_with_astro_lit.md +1 -1
  376. package/docs/fr/intlayer_with_astro_preact.md +1 -1
  377. package/docs/fr/intlayer_with_astro_react.md +1 -1
  378. package/docs/fr/intlayer_with_astro_solid.md +1 -1
  379. package/docs/fr/intlayer_with_astro_svelte.md +1 -1
  380. package/docs/fr/intlayer_with_astro_vanilla.md +1 -1
  381. package/docs/fr/intlayer_with_astro_vue.md +1 -1
  382. package/docs/fr/intlayer_with_create_react_app.md +1 -1
  383. package/docs/fr/intlayer_with_express.md +1 -1
  384. package/docs/fr/intlayer_with_hono.md +1 -1
  385. package/docs/fr/intlayer_with_nestjs.md +1 -1
  386. package/docs/fr/intlayer_with_nextjs_14.md +1 -1
  387. package/docs/fr/intlayer_with_nextjs_15.md +1 -1
  388. package/docs/fr/intlayer_with_nextjs_16.md +1 -1
  389. package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
  390. package/docs/fr/intlayer_with_react_router_v7.md +2 -2
  391. package/docs/fr/intlayer_with_vite+preact.md +1 -1
  392. package/docs/fr/intlayer_with_vite+react.md +1 -1
  393. package/docs/fr/intlayer_with_vite+vue.md +1 -1
  394. package/docs/fr/introduction.md +0 -1
  395. package/docs/fr/readme.md +8 -8
  396. package/docs/hi/bundle_optimization.md +5 -1
  397. package/docs/hi/how_works_intlayer.md +2 -2
  398. package/docs/hi/interest_of_intlayer.md +6 -6
  399. package/docs/hi/intlayer_CMS.md +1 -1
  400. package/docs/hi/intlayer_with_adonisjs.md +1 -1
  401. package/docs/hi/intlayer_with_analog.md +1 -1
  402. package/docs/hi/intlayer_with_angular_19.md +1 -1
  403. package/docs/hi/intlayer_with_angular_21.md +1 -1
  404. package/docs/hi/intlayer_with_astro.md +1 -1
  405. package/docs/hi/intlayer_with_astro_lit.md +1 -1
  406. package/docs/hi/intlayer_with_astro_preact.md +1 -1
  407. package/docs/hi/intlayer_with_astro_react.md +1 -1
  408. package/docs/hi/intlayer_with_astro_solid.md +1 -1
  409. package/docs/hi/intlayer_with_astro_svelte.md +1 -1
  410. package/docs/hi/intlayer_with_astro_vanilla.md +1 -1
  411. package/docs/hi/intlayer_with_astro_vue.md +1 -1
  412. package/docs/hi/intlayer_with_create_react_app.md +1 -1
  413. package/docs/hi/intlayer_with_express.md +1 -1
  414. package/docs/hi/intlayer_with_hono.md +1 -1
  415. package/docs/hi/intlayer_with_nestjs.md +1 -1
  416. package/docs/hi/intlayer_with_nextjs_14.md +1 -1
  417. package/docs/hi/intlayer_with_nextjs_15.md +1 -1
  418. package/docs/hi/intlayer_with_nextjs_16.md +1 -1
  419. package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
  420. package/docs/hi/intlayer_with_react_router_v7.md +1 -1
  421. package/docs/hi/intlayer_with_vite+preact.md +1 -1
  422. package/docs/hi/intlayer_with_vite+react.md +1 -1
  423. package/docs/hi/intlayer_with_vite+vue.md +1 -1
  424. package/docs/hi/introduction.md +0 -1
  425. package/docs/hi/readme.md +8 -8
  426. package/docs/id/bundle_optimization.md +5 -1
  427. package/docs/id/how_works_intlayer.md +2 -2
  428. package/docs/id/interest_of_intlayer.md +6 -6
  429. package/docs/id/intlayer_CMS.md +1 -1
  430. package/docs/id/intlayer_with_adonisjs.md +1 -1
  431. package/docs/id/intlayer_with_analog.md +1 -1
  432. package/docs/id/intlayer_with_angular_19.md +1 -1
  433. package/docs/id/intlayer_with_angular_21.md +1 -1
  434. package/docs/id/intlayer_with_astro.md +1 -1
  435. package/docs/id/intlayer_with_astro_lit.md +1 -1
  436. package/docs/id/intlayer_with_astro_preact.md +1 -1
  437. package/docs/id/intlayer_with_astro_react.md +1 -1
  438. package/docs/id/intlayer_with_astro_solid.md +1 -1
  439. package/docs/id/intlayer_with_astro_svelte.md +1 -1
  440. package/docs/id/intlayer_with_astro_vanilla.md +1 -1
  441. package/docs/id/intlayer_with_astro_vue.md +1 -1
  442. package/docs/id/intlayer_with_create_react_app.md +1 -1
  443. package/docs/id/intlayer_with_express.md +1 -1
  444. package/docs/id/intlayer_with_hono.md +1 -1
  445. package/docs/id/intlayer_with_nestjs.md +1 -1
  446. package/docs/id/intlayer_with_nextjs_14.md +1 -1
  447. package/docs/id/intlayer_with_nextjs_15.md +1 -1
  448. package/docs/id/intlayer_with_nextjs_16.md +1 -1
  449. package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
  450. package/docs/id/intlayer_with_react_router_v7.md +1 -1
  451. package/docs/id/intlayer_with_vite+preact.md +1 -1
  452. package/docs/id/intlayer_with_vite+react.md +1 -1
  453. package/docs/id/intlayer_with_vite+vue.md +1 -1
  454. package/docs/id/introduction.md +0 -1
  455. package/docs/id/readme.md +8 -8
  456. package/docs/it/bundle_optimization.md +5 -1
  457. package/docs/it/how_works_intlayer.md +2 -2
  458. package/docs/it/interest_of_intlayer.md +6 -6
  459. package/docs/it/intlayer_CMS.md +1 -1
  460. package/docs/it/intlayer_with_adonisjs.md +1 -1
  461. package/docs/it/intlayer_with_analog.md +1 -1
  462. package/docs/it/intlayer_with_angular_19.md +1 -1
  463. package/docs/it/intlayer_with_angular_21.md +1 -1
  464. package/docs/it/intlayer_with_astro.md +1 -1
  465. package/docs/it/intlayer_with_astro_lit.md +1 -1
  466. package/docs/it/intlayer_with_astro_preact.md +1 -1
  467. package/docs/it/intlayer_with_astro_react.md +1 -1
  468. package/docs/it/intlayer_with_astro_solid.md +1 -1
  469. package/docs/it/intlayer_with_astro_svelte.md +1 -1
  470. package/docs/it/intlayer_with_astro_vanilla.md +1 -1
  471. package/docs/it/intlayer_with_astro_vue.md +1 -1
  472. package/docs/it/intlayer_with_create_react_app.md +1 -1
  473. package/docs/it/intlayer_with_express.md +1 -1
  474. package/docs/it/intlayer_with_hono.md +1 -1
  475. package/docs/it/intlayer_with_nestjs.md +1 -1
  476. package/docs/it/intlayer_with_nextjs_14.md +1 -1
  477. package/docs/it/intlayer_with_nextjs_15.md +1 -1
  478. package/docs/it/intlayer_with_nextjs_16.md +1 -1
  479. package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
  480. package/docs/it/intlayer_with_react_router_v7.md +2 -2
  481. package/docs/it/intlayer_with_vite+preact.md +1 -1
  482. package/docs/it/intlayer_with_vite+react.md +1 -1
  483. package/docs/it/intlayer_with_vite+vue.md +1 -1
  484. package/docs/it/introduction.md +0 -1
  485. package/docs/it/readme.md +8 -8
  486. package/docs/ja/bundle_optimization.md +5 -1
  487. package/docs/ja/how_works_intlayer.md +2 -2
  488. package/docs/ja/interest_of_intlayer.md +6 -6
  489. package/docs/ja/intlayer_CMS.md +1 -1
  490. package/docs/ja/intlayer_with_adonisjs.md +1 -1
  491. package/docs/ja/intlayer_with_analog.md +1 -1
  492. package/docs/ja/intlayer_with_angular_19.md +1 -1
  493. package/docs/ja/intlayer_with_angular_21.md +1 -1
  494. package/docs/ja/intlayer_with_astro.md +1 -1
  495. package/docs/ja/intlayer_with_astro_lit.md +1 -1
  496. package/docs/ja/intlayer_with_astro_preact.md +1 -1
  497. package/docs/ja/intlayer_with_astro_react.md +1 -1
  498. package/docs/ja/intlayer_with_astro_solid.md +1 -1
  499. package/docs/ja/intlayer_with_astro_svelte.md +1 -1
  500. package/docs/ja/intlayer_with_astro_vanilla.md +1 -1
  501. package/docs/ja/intlayer_with_astro_vue.md +1 -1
  502. package/docs/ja/intlayer_with_create_react_app.md +1 -1
  503. package/docs/ja/intlayer_with_express.md +1 -1
  504. package/docs/ja/intlayer_with_hono.md +1 -1
  505. package/docs/ja/intlayer_with_nestjs.md +1 -1
  506. package/docs/ja/intlayer_with_nextjs_14.md +1 -1
  507. package/docs/ja/intlayer_with_nextjs_15.md +1 -1
  508. package/docs/ja/intlayer_with_nextjs_16.md +1 -1
  509. package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
  510. package/docs/ja/intlayer_with_vite+preact.md +1 -1
  511. package/docs/ja/intlayer_with_vite+react.md +1 -1
  512. package/docs/ja/intlayer_with_vite+vue.md +1 -1
  513. package/docs/ja/introduction.md +0 -1
  514. package/docs/ja/readme.md +8 -8
  515. package/docs/ko/bundle_optimization.md +5 -1
  516. package/docs/ko/how_works_intlayer.md +2 -2
  517. package/docs/ko/interest_of_intlayer.md +6 -6
  518. package/docs/ko/intlayer_CMS.md +1 -1
  519. package/docs/ko/intlayer_with_adonisjs.md +1 -1
  520. package/docs/ko/intlayer_with_analog.md +1 -1
  521. package/docs/ko/intlayer_with_angular_19.md +1 -1
  522. package/docs/ko/intlayer_with_angular_21.md +1 -1
  523. package/docs/ko/intlayer_with_astro.md +1 -1
  524. package/docs/ko/intlayer_with_astro_lit.md +1 -1
  525. package/docs/ko/intlayer_with_astro_preact.md +1 -1
  526. package/docs/ko/intlayer_with_astro_react.md +1 -1
  527. package/docs/ko/intlayer_with_astro_solid.md +1 -1
  528. package/docs/ko/intlayer_with_astro_svelte.md +1 -1
  529. package/docs/ko/intlayer_with_astro_vanilla.md +1 -1
  530. package/docs/ko/intlayer_with_astro_vue.md +1 -1
  531. package/docs/ko/intlayer_with_create_react_app.md +1 -1
  532. package/docs/ko/intlayer_with_express.md +1 -1
  533. package/docs/ko/intlayer_with_hono.md +1 -1
  534. package/docs/ko/intlayer_with_nestjs.md +1 -1
  535. package/docs/ko/intlayer_with_nextjs_14.md +1 -1
  536. package/docs/ko/intlayer_with_nextjs_15.md +1 -1
  537. package/docs/ko/intlayer_with_nextjs_16.md +1 -1
  538. package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
  539. package/docs/ko/intlayer_with_react_router_v7.md +2 -2
  540. package/docs/ko/intlayer_with_vite+preact.md +1 -1
  541. package/docs/ko/intlayer_with_vite+react.md +1 -1
  542. package/docs/ko/intlayer_with_vite+vue.md +1 -1
  543. package/docs/ko/introduction.md +0 -1
  544. package/docs/ko/readme.md +8 -8
  545. package/docs/nl/bundle_optimization.md +5 -1
  546. package/docs/nl/interest_of_intlayer.md +6 -6
  547. package/docs/nl/intlayer_with_angular_21.md +1 -1
  548. package/docs/nl/intlayer_with_hono.md +1 -1
  549. package/docs/nl/introduction.md +0 -1
  550. package/docs/pl/bundle_optimization.md +5 -1
  551. package/docs/pl/how_works_intlayer.md +2 -2
  552. package/docs/pl/interest_of_intlayer.md +6 -6
  553. package/docs/pl/intlayer_CMS.md +1 -1
  554. package/docs/pl/intlayer_with_adonisjs.md +1 -1
  555. package/docs/pl/intlayer_with_analog.md +1 -1
  556. package/docs/pl/intlayer_with_angular_19.md +1 -1
  557. package/docs/pl/intlayer_with_angular_21.md +1 -1
  558. package/docs/pl/intlayer_with_astro.md +1 -1
  559. package/docs/pl/intlayer_with_astro_lit.md +1 -1
  560. package/docs/pl/intlayer_with_astro_preact.md +1 -1
  561. package/docs/pl/intlayer_with_astro_react.md +1 -1
  562. package/docs/pl/intlayer_with_astro_solid.md +1 -1
  563. package/docs/pl/intlayer_with_astro_svelte.md +1 -1
  564. package/docs/pl/intlayer_with_astro_vanilla.md +1 -1
  565. package/docs/pl/intlayer_with_astro_vue.md +1 -1
  566. package/docs/pl/intlayer_with_create_react_app.md +1 -1
  567. package/docs/pl/intlayer_with_express.md +1 -1
  568. package/docs/pl/intlayer_with_hono.md +1 -1
  569. package/docs/pl/intlayer_with_nestjs.md +1 -1
  570. package/docs/pl/intlayer_with_nextjs_14.md +1 -1
  571. package/docs/pl/intlayer_with_nextjs_15.md +1 -1
  572. package/docs/pl/intlayer_with_nextjs_16.md +1 -1
  573. package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
  574. package/docs/pl/intlayer_with_react_router_v7.md +2 -2
  575. package/docs/pl/intlayer_with_vite+preact.md +1 -1
  576. package/docs/pl/intlayer_with_vite+react.md +1 -1
  577. package/docs/pl/intlayer_with_vite+vue.md +1 -1
  578. package/docs/pl/introduction.md +0 -1
  579. package/docs/pl/readme.md +8 -8
  580. package/docs/pt/bundle_optimization.md +5 -1
  581. package/docs/pt/how_works_intlayer.md +2 -2
  582. package/docs/pt/interest_of_intlayer.md +6 -6
  583. package/docs/pt/intlayer_CMS.md +1 -1
  584. package/docs/pt/intlayer_with_adonisjs.md +1 -1
  585. package/docs/pt/intlayer_with_analog.md +1 -1
  586. package/docs/pt/intlayer_with_angular_19.md +1 -1
  587. package/docs/pt/intlayer_with_angular_21.md +1 -1
  588. package/docs/pt/intlayer_with_astro.md +1 -1
  589. package/docs/pt/intlayer_with_astro_lit.md +1 -1
  590. package/docs/pt/intlayer_with_astro_preact.md +1 -1
  591. package/docs/pt/intlayer_with_astro_react.md +1 -1
  592. package/docs/pt/intlayer_with_astro_solid.md +1 -1
  593. package/docs/pt/intlayer_with_astro_svelte.md +1 -1
  594. package/docs/pt/intlayer_with_astro_vanilla.md +1 -1
  595. package/docs/pt/intlayer_with_astro_vue.md +1 -1
  596. package/docs/pt/intlayer_with_create_react_app.md +1 -1
  597. package/docs/pt/intlayer_with_express.md +1 -1
  598. package/docs/pt/intlayer_with_hono.md +1 -1
  599. package/docs/pt/intlayer_with_nestjs.md +1 -1
  600. package/docs/pt/intlayer_with_nextjs_14.md +1 -1
  601. package/docs/pt/intlayer_with_nextjs_15.md +1 -1
  602. package/docs/pt/intlayer_with_nextjs_16.md +1 -1
  603. package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
  604. package/docs/pt/intlayer_with_react_router_v7.md +2 -2
  605. package/docs/pt/intlayer_with_vite+preact.md +1 -1
  606. package/docs/pt/intlayer_with_vite+react.md +1 -1
  607. package/docs/pt/intlayer_with_vite+vue.md +1 -1
  608. package/docs/pt/introduction.md +0 -1
  609. package/docs/pt/readme.md +8 -8
  610. package/docs/ru/bundle_optimization.md +5 -1
  611. package/docs/ru/how_works_intlayer.md +2 -2
  612. package/docs/ru/interest_of_intlayer.md +6 -6
  613. package/docs/ru/intlayer_CMS.md +1 -1
  614. package/docs/ru/intlayer_with_adonisjs.md +1 -1
  615. package/docs/ru/intlayer_with_analog.md +1 -1
  616. package/docs/ru/intlayer_with_angular_19.md +1 -1
  617. package/docs/ru/intlayer_with_angular_21.md +1 -1
  618. package/docs/ru/intlayer_with_astro.md +1 -1
  619. package/docs/ru/intlayer_with_astro_lit.md +1 -1
  620. package/docs/ru/intlayer_with_astro_preact.md +1 -1
  621. package/docs/ru/intlayer_with_astro_react.md +1 -1
  622. package/docs/ru/intlayer_with_astro_solid.md +1 -1
  623. package/docs/ru/intlayer_with_astro_svelte.md +1 -1
  624. package/docs/ru/intlayer_with_astro_vanilla.md +1 -1
  625. package/docs/ru/intlayer_with_astro_vue.md +1 -1
  626. package/docs/ru/intlayer_with_create_react_app.md +1 -1
  627. package/docs/ru/intlayer_with_express.md +1 -1
  628. package/docs/ru/intlayer_with_hono.md +1 -1
  629. package/docs/ru/intlayer_with_nestjs.md +1 -1
  630. package/docs/ru/intlayer_with_nextjs_14.md +1 -1
  631. package/docs/ru/intlayer_with_nextjs_15.md +1 -1
  632. package/docs/ru/intlayer_with_nextjs_16.md +1 -1
  633. package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
  634. package/docs/ru/intlayer_with_react_router_v7.md +2 -2
  635. package/docs/ru/intlayer_with_vite+preact.md +1 -1
  636. package/docs/ru/intlayer_with_vite+react.md +1 -1
  637. package/docs/ru/intlayer_with_vite+vue.md +1 -1
  638. package/docs/ru/introduction.md +0 -1
  639. package/docs/ru/readme.md +8 -8
  640. package/docs/tr/bundle_optimization.md +5 -1
  641. package/docs/tr/how_works_intlayer.md +2 -2
  642. package/docs/tr/interest_of_intlayer.md +6 -6
  643. package/docs/tr/intlayer_CMS.md +1 -1
  644. package/docs/tr/intlayer_with_adonisjs.md +1 -1
  645. package/docs/tr/intlayer_with_analog.md +1 -1
  646. package/docs/tr/intlayer_with_angular_19.md +1 -1
  647. package/docs/tr/intlayer_with_angular_21.md +1 -1
  648. package/docs/tr/intlayer_with_astro.md +1 -1
  649. package/docs/tr/intlayer_with_astro_lit.md +1 -1
  650. package/docs/tr/intlayer_with_astro_preact.md +1 -1
  651. package/docs/tr/intlayer_with_astro_react.md +1 -1
  652. package/docs/tr/intlayer_with_astro_solid.md +1 -1
  653. package/docs/tr/intlayer_with_astro_svelte.md +1 -1
  654. package/docs/tr/intlayer_with_astro_vanilla.md +1 -1
  655. package/docs/tr/intlayer_with_astro_vue.md +1 -1
  656. package/docs/tr/intlayer_with_create_react_app.md +1 -1
  657. package/docs/tr/intlayer_with_express.md +1 -1
  658. package/docs/tr/intlayer_with_hono.md +1 -1
  659. package/docs/tr/intlayer_with_nestjs.md +1 -1
  660. package/docs/tr/intlayer_with_nextjs_14.md +1 -1
  661. package/docs/tr/intlayer_with_nextjs_15.md +1 -1
  662. package/docs/tr/intlayer_with_nextjs_16.md +1 -1
  663. package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
  664. package/docs/tr/intlayer_with_react_router_v7.md +1 -1
  665. package/docs/tr/intlayer_with_vite+preact.md +1 -1
  666. package/docs/tr/intlayer_with_vite+react.md +1 -1
  667. package/docs/tr/intlayer_with_vite+vue.md +1 -1
  668. package/docs/tr/introduction.md +0 -1
  669. package/docs/tr/readme.md +8 -8
  670. package/docs/uk/bundle_optimization.md +5 -1
  671. package/docs/uk/how_works_intlayer.md +2 -2
  672. package/docs/uk/interest_of_intlayer.md +6 -6
  673. package/docs/uk/intlayer_CMS.md +1 -1
  674. package/docs/uk/intlayer_with_adonisjs.md +1 -1
  675. package/docs/uk/intlayer_with_analog.md +1 -1
  676. package/docs/uk/intlayer_with_angular_19.md +1 -1
  677. package/docs/uk/intlayer_with_angular_21.md +1 -1
  678. package/docs/uk/intlayer_with_astro.md +1 -1
  679. package/docs/uk/intlayer_with_astro_lit.md +1 -1
  680. package/docs/uk/intlayer_with_astro_preact.md +1 -1
  681. package/docs/uk/intlayer_with_astro_react.md +1 -1
  682. package/docs/uk/intlayer_with_astro_solid.md +1 -1
  683. package/docs/uk/intlayer_with_astro_svelte.md +1 -1
  684. package/docs/uk/intlayer_with_astro_vanilla.md +1 -1
  685. package/docs/uk/intlayer_with_astro_vue.md +1 -1
  686. package/docs/uk/intlayer_with_create_react_app.md +1 -1
  687. package/docs/uk/intlayer_with_express.md +1 -1
  688. package/docs/uk/intlayer_with_hono.md +1 -1
  689. package/docs/uk/intlayer_with_nestjs.md +1 -1
  690. package/docs/uk/intlayer_with_nextjs_14.md +1 -1
  691. package/docs/uk/intlayer_with_nextjs_15.md +1 -1
  692. package/docs/uk/intlayer_with_nextjs_16.md +1 -1
  693. package/docs/uk/intlayer_with_nextjs_page_router.md +1 -1
  694. package/docs/uk/intlayer_with_react_router_v7.md +1 -1
  695. package/docs/uk/intlayer_with_vite+preact.md +1 -1
  696. package/docs/uk/intlayer_with_vite+react.md +1 -1
  697. package/docs/uk/intlayer_with_vite+vue.md +1 -1
  698. package/docs/uk/introduction.md +0 -1
  699. package/docs/uk/readme.md +8 -8
  700. package/docs/ur/bundle_optimization.md +5 -1
  701. package/docs/ur/interest_of_intlayer.md +6 -6
  702. package/docs/ur/intlayer_with_angular_21.md +1 -1
  703. package/docs/ur/intlayer_with_hono.md +1 -1
  704. package/docs/ur/introduction.md +0 -1
  705. package/docs/vi/bundle_optimization.md +5 -1
  706. package/docs/vi/how_works_intlayer.md +2 -2
  707. package/docs/vi/interest_of_intlayer.md +6 -6
  708. package/docs/vi/intlayer_CMS.md +1 -1
  709. package/docs/vi/intlayer_with_adonisjs.md +1 -1
  710. package/docs/vi/intlayer_with_analog.md +1 -1
  711. package/docs/vi/intlayer_with_angular_19.md +1 -1
  712. package/docs/vi/intlayer_with_angular_21.md +1 -1
  713. package/docs/vi/intlayer_with_astro.md +1 -1
  714. package/docs/vi/intlayer_with_astro_lit.md +1 -1
  715. package/docs/vi/intlayer_with_astro_preact.md +1 -1
  716. package/docs/vi/intlayer_with_astro_react.md +1 -1
  717. package/docs/vi/intlayer_with_astro_solid.md +1 -1
  718. package/docs/vi/intlayer_with_astro_svelte.md +1 -1
  719. package/docs/vi/intlayer_with_astro_vanilla.md +1 -1
  720. package/docs/vi/intlayer_with_astro_vue.md +1 -1
  721. package/docs/vi/intlayer_with_create_react_app.md +1 -1
  722. package/docs/vi/intlayer_with_express.md +1 -1
  723. package/docs/vi/intlayer_with_hono.md +1 -1
  724. package/docs/vi/intlayer_with_nestjs.md +1 -1
  725. package/docs/vi/intlayer_with_nextjs_14.md +1 -1
  726. package/docs/vi/intlayer_with_nextjs_15.md +1 -1
  727. package/docs/vi/intlayer_with_nextjs_16.md +1 -1
  728. package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
  729. package/docs/vi/intlayer_with_vite+preact.md +1 -1
  730. package/docs/vi/intlayer_with_vite+react.md +1 -1
  731. package/docs/vi/intlayer_with_vite+vue.md +1 -1
  732. package/docs/vi/introduction.md +0 -1
  733. package/docs/vi/readme.md +8 -8
  734. package/docs/zh/bundle_optimization.md +5 -1
  735. package/docs/zh/how_works_intlayer.md +2 -2
  736. package/docs/zh/interest_of_intlayer.md +6 -6
  737. package/docs/zh/intlayer_CMS.md +1 -1
  738. package/docs/zh/intlayer_with_adonisjs.md +1 -1
  739. package/docs/zh/intlayer_with_analog.md +1 -1
  740. package/docs/zh/intlayer_with_angular_19.md +1 -1
  741. package/docs/zh/intlayer_with_angular_21.md +1 -1
  742. package/docs/zh/intlayer_with_astro.md +1 -1
  743. package/docs/zh/intlayer_with_astro_lit.md +1 -1
  744. package/docs/zh/intlayer_with_astro_preact.md +1 -1
  745. package/docs/zh/intlayer_with_astro_react.md +1 -1
  746. package/docs/zh/intlayer_with_astro_solid.md +1 -1
  747. package/docs/zh/intlayer_with_astro_svelte.md +1 -1
  748. package/docs/zh/intlayer_with_astro_vanilla.md +1 -1
  749. package/docs/zh/intlayer_with_astro_vue.md +1 -1
  750. package/docs/zh/intlayer_with_create_react_app.md +1 -1
  751. package/docs/zh/intlayer_with_express.md +1 -1
  752. package/docs/zh/intlayer_with_hono.md +1 -1
  753. package/docs/zh/intlayer_with_nestjs.md +1 -1
  754. package/docs/zh/intlayer_with_nextjs_14.md +1 -1
  755. package/docs/zh/intlayer_with_nextjs_15.md +1 -1
  756. package/docs/zh/intlayer_with_nextjs_16.md +1 -1
  757. package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
  758. package/docs/zh/intlayer_with_react_router_v7.md +2 -2
  759. package/docs/zh/intlayer_with_vite+preact.md +1 -1
  760. package/docs/zh/intlayer_with_vite+react.md +1 -1
  761. package/docs/zh/intlayer_with_vite+vue.md +1 -1
  762. package/docs/zh/introduction.md +0 -1
  763. package/docs/zh/readme.md +8 -8
  764. package/docs/zh-TW/bundle_optimization.md +5 -1
  765. package/docs/zh-TW/interest_of_intlayer.md +6 -6
  766. package/docs/zh-TW/intlayer_with_angular_21.md +1 -1
  767. package/docs/zh-TW/introduction.md +0 -1
  768. package/package.json +8 -7
  769. package/src/generated/blog.entry.ts +80 -0
  770. package/blog/en/___per-component_vs_centralized_i18n.md +0 -255
  771. package/blog/pl/___per-component_vs_centralized_i18n.md +0 -100
  772. package/docs/en/benchmark/___NOTE.md +0 -101
  773. package/docs/en/benchmark/___nextjs.md +0 -197
  774. package/docs/en/benchmark/___solid.md +0 -12
  775. package/docs/en/benchmark/___svelte.md +0 -16
  776. package/docs/en/benchmark/___tanstack.md +0 -190
  777. package/docs/en/benchmark/___vue.md +0 -7
  778. package/docs/pl/benchmark/___NOTE.md +0 -101
  779. package/docs/pl/benchmark/___nextjs.md +0 -198
  780. package/docs/pl/benchmark/___solid.md +0 -36
  781. package/docs/pl/benchmark/___svelte.md +0 -36
  782. package/docs/pl/benchmark/___tanstack.md +0 -36
  783. package/docs/pl/benchmark/___vue.md +0 -36
@@ -0,0 +1,451 @@
1
+ ---
2
+ createdAt: 2026-09-16
3
+ updatedAt: 2026-09-16
4
+ title: "Wie man 2026 die richtige Solid i18n-Bibliothek auswählt"
5
+ description: Ein Entscheidungsleitfaden für die Internationalisierung mit SolidJS und SolidStart. Welche Fragen vor dem Vergleich von @solid-primitives/i18n, solid-i18next, Paraglide, Lingui und Intlayer zu beantworten sind und was jede Wahl bei Reaktivität, Bundle-Größe und Typisierung kostet.
6
+ keywords:
7
+ - solidjs i18n
8
+ - solid start i18n
9
+ - solid internationalisierung
10
+ - solid-primitives i18n
11
+ - solid-i18next
12
+ - Paraglide
13
+ - Lingui
14
+ - Intlayer
15
+ - i18n bibliotheken vergleich
16
+ slugs:
17
+ - blog
18
+ - how-to-pick-solid-i18n-library
19
+ author: aymericzip
20
+ ---
21
+
22
+ # Wie man die richtige Solid i18n-Bibliothek auswählt
23
+
24
+ Das Reaktivitätsmodell von Solid verändert grundlegend, was eine i18n-Bibliothek leisten muss. Da Komponenten nur einmal ausgeführt werden, ist eine bei der Initialisierung in einer `const` gespeicherte Übersetzung ein unveränderlicher String (frozen string). Eine Bibliothek, die Strings statt Accessors zurückgibt, führt zu einer Seite, die die Sprache überall umschaltet, außer in den drei Komponenten, in denen genau das getan wurde. Die Wahl einer Bibliothek für Solid dreht sich daher teils um die API und teils darum, welche Bibliothek diesen Fehler schwer vermeidbar macht.
25
+
26
+ Dieser Leitfaden stellt die wichtigsten Fragen vorab zusammen und ordnet sie anschließend `@solid-primitives/i18n`, `solid-i18next`, Paraglide, `@lingui/solid` und Intlayer zu, sowohl für Vite + Solid als auch für SolidStart.
27
+
28
+ ![Solid i18n-Bibliotheken-Ökosystem](https://github.com/aymericzip/intlayer/blob/main/docs/assets/cloud_i18n_logo.webp?raw=true)
29
+
30
+ ## Inhaltsverzeichnis
31
+
32
+ <TOC/>
33
+
34
+ ## Sechs Fragen vor dem Vergleich von Bibliotheken
35
+
36
+ 1. **Vite SPA oder SolidStart?** In einer SPA kann die Locale einfach in einem Signal leben. Bei SolidStart muss die Locale auf dem Server aus der URL aufgelöst werden, und alles, was ein Crawler ohne JavaScript sehen muss (`<html lang>`, `hreflang`), gehört in `entry-server.tsx`.
37
+ 2. **Wie reaktiv muss der Sprachwechsel sein?** Ein vollständiger Page Reload beim Umschalten ist für manche Anwendungen akzeptabel. Wenn nicht, müssen die Werte der Bibliothek Signals oder Accessors sein, und ihr Lesen muss getrackt und nicht kopiert werden.
38
+ 3. **Wer schreibt die Übersetzungen?** Entwickler, ein TMS, eine Agentur, die ICU-Strings liefert, oder eine KI-Pipeline. `solid-i18next` nutzt das Format von i18next. `@solid-primitives/i18n` verwendet Ihr eigenes Dictionary-Objekt. Wählen Sie passend zum Workflow.
39
+ 4. **Wie viele Locales und Seiten?** Zwei Sprachen und fünf Seiten können alles auf einmal ausliefern. Zehn Sprachen und vierzig Routen können das nicht; Lazy-Catalogs und Scoping werden dann zum Hauptkostenfaktor.
40
+ 5. **Benötigen Sie Typen für Schlüssel?** `@solid-primitives/i18n` leitet sie aus dem Quell-Dictionary ab. `solid-i18next` erfordert manuelle Deklarationen. Compile-Time-Bibliotheken generieren sie automatisch.
41
+ 6. **Wie viel Funktionsumfang benötigen Sie?** Cookie-Verwaltung, Routing mit Locale-Präfix, Redirects, Formatierer. Die leichteste Option bietet nichts davon, was völlig in Ordnung ist, bis man es doch braucht.
42
+
43
+ Schreiben Sie die Antworten auf. Alles Folgende bezieht sich darauf.
44
+
45
+ ## Die Landschaft auf einen Blick
46
+
47
+ Solid ist das jüngste Ökosystem in diesem Vergleich und bietet die wenigsten Optionen, verteilt auf drei Wellen.
48
+
49
+ ![Geschichte der JavaScript i18n-Bibliotheken](https://github.com/aymericzip/intlayer/blob/main/docs/assets/history_i18n.webp?raw=true)
50
+
51
+ <AccordionGroup>
52
+ <Accordion header="Laufzeit-Dictionaries: solid-i18next">
53
+
54
+ i18next für Solid adaptiert. Namespaces, Backends, Detectors und ein Jahrzehnt an Plugins. Die schwerste Option im Vergleich mit denselben `t("a.b")`-Kosten wie in React.
55
+
56
+ </Accordion>
57
+ <Accordion header="Minimale Primitives (2022): @solid-primitives/i18n">
58
+
59
+ Ein flaches, selbst verwaltetes Dictionary, ein `translator()`, der Accessors zurückgibt, und aus dem Quellobjekt abgeleitete Typen. Sehr kompakt, kein Scoping, kein Routing, keine Formatierer. Der Community-Standard.
60
+
61
+ </Accordion>
62
+ <Accordion header="Compiler und kolozierter Content (2024 bis 2026): Paraglide, Intlayer, @lingui/solid">
63
+
64
+ Paraglide generiert eine Funktion pro Nachricht. Intlayer deklariert Inhalte pro Komponente in `.content.ts`-Dateien und liefert signalbasierte Nodes zurück. Die Solid-Anbindung von Lingui erschien 2026 und bringt Makro-basierte Extraktion mit.
65
+
66
+ </Accordion>
67
+ </AccordionGroup>
68
+
69
+ Die [Geschichte der JavaScript-i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/history_of_i18n.md) behandelt jede Welle im Detail.
70
+
71
+ ## Die wichtigste Entscheidung: Wo Inhalte liegen und wann sie geladen werden
72
+
73
+ Zwei strukturelle Entscheidungen erklären den Großteil der Bundle-Unterschiede zwischen den Setups:
74
+
75
+ - **Zentralisierter oder gescopeter Content.** Ein einziges Dictionary für die gesamte App oder eine Deklaration pro Komponente.
76
+ - **Statischer oder dynamischer Import.** Alles beim Start laden oder die aktive Locale (und idealerweise die aktive Route) on demand abrufen.
77
+
78
+ Die Grafik schätzt die Payload für eine theoretische App mit 1 bis 10 Seiten ab, übersetzt in 1 bis 10 Sprachen, mit etwa 30 KB Text pro Seite.
79
+
80
+ ![Theoretischer Content-Leakage nach Architektur](https://github.com/aymericzip/intlayer/blob/main/docs/assets/theorical_content_leakage.webp?raw=true)
81
+
82
+ `@solid-primitives/i18n` kümmert sich um keine dieser beiden Achsen: Sie laden per `createResource` ein Dictionary pro Locale dynamisch nach, der Rest liegt bei Ihnen. `solid-i18next` bietet Namespaces und Lazy-Backends, erzwingt das Mapping jedoch nicht, sodass eine geteilte Komponente, die `common` importiert, dieses zur Abhängigkeit jeder Route macht. Paraglide deckt die Seiten-Achse über Tree-Shaking ab, auch wenn dies im [Solid-Benchmark](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/benchmark/solid.md) nicht griff. Intlayer löst dies über komponentenbezogene Deklarationen.
83
+
84
+ Wenn Ihre Antwort auf Frage 4 „viele Seiten“ war, gewichten Sie diesen Abschnitt stärker als jede API-Präferenz. Der Beitrag über [komponentenbezogene vs. zentralisierte i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/per-component_vs_centralized_i18n.md) beleuchtet die Wartungsseite desselben Kompromisses.
85
+
86
+ ## Die Kandidaten
87
+
88
+ Die Bibliotheksgrößen stammen aus dem [Solid-Benchmark](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/benchmark/solid.md): Provider plus Accessor in einer leeren Komponente nach Bundling, Tree-Shaking und Minifizierung in einer App mit 10 Seiten und 10 Sprachen. Inhalte werden separat gemessen.
89
+
90
+ | Bibliothek | Content-Modell | Reaktivität bei Sprachwechsel | Typsicherheit | Scoping und Lazy Loading | Bibliotheksgröße |
91
+ | :----------------------- | :-------------------------------------- | :--------------------------------- | :---------------------------------------- | :--------------------------- | :-------------------------------------------- |
92
+ | `@solid-primitives/i18n` | Flaches, eigenes Dictionary | Signal, Accessors vom Translator | 3/5 — Aus dem Quell-Dictionary abgeleitet | Nativ nicht vorhanden | ~0,6 kB |
93
+ | `solid-i18next` | i18next-Kataloge und Namespaces | Store, Re-Render über Provider | 2/5 — Manuelle Deklaration | Namespaces, Lazy-Backends | ~14,9 kB |
94
+ | Paraglide | inlang-Projekt, generierte Funktionen | Pro Aufruf aus Cookie oder Storage | 3.5/5 — Generiert | Tree-Shaking (nicht im Test) | Nahe null (durch generierten Code im Projekt) |
95
+ | `@lingui/solid` | Quelltext im Code, kompilierte Kataloge | Signalbasiert | 2/5 — Über den Compiler | Pro Katalog | ~11,8 kB |
96
+ | Intlayer | Eine `.content.ts` pro Komponente | Signalbasierte Nodes, kein Re-Run | 5/5 — Generiert, standardmäßig aktiv | Ja, pro Komponente | ~4,3 kB |
97
+
98
+ > Die Zahlen sind eine Momentaufnahme der Versionen im Benchmark. Die Größe von `@lingui/solid` stammt aus dem TanStack-Start-Benchmark. Testen Sie dies in Ihrer eigenen App, bevor Sie allein nach der Größe entscheiden.
99
+ > Typsicherheit: 5/5 bedeutet, dass Schlüssel, Parameter und jede Locale ohne manuelle Einrichtung geprüft werden, einschließlich URL-Formatierer und Helfer.
100
+
101
+ Die minimale Bibliotheksgröße von Paraglide resultiert aus dem Konzept: Die Laufzeit wird direkt in Ihr Repository generiert. Intlayer setzt `vite-intlayer` voraus und benötigt daher zwingend einen Build-Schritt.
102
+
103
+ ## Ordnen Sie Ihre Antworten einer Bibliothek zu
104
+
105
+ <AccordionGroup>
106
+ <Accordion header="Vite SPA, kleiner Katalog, maximale Einfachheit">
107
+
108
+ `@solid-primitives/i18n`. Ein flaches Dictionary, ein `translator()`, der Accessors zurückgibt, Typen ohne zusätzlichen Konfigurationsaufwand. Es ist die richtige Wahl für eine kleine App, und das Lesen des Quellcodes dauert zehn Minuten. Was Sie selbst schreiben müssen: Persistenz der Locale, Routing, Formatierer und Code-Splitting pro Route. Wenn diese Liste wächst, ist das das Signal für einen Wechsel.
109
+
110
+ </Accordion>
111
+ <Accordion header="Migration von React mit einer bestehenden i18next-Codebase">
112
+
113
+ `solid-i18next` ermöglicht die direkte Wiederverwendung von Katalogen, Namespaces, Backends und Detectors. Es ist die schwerste Option und bringt die gleichen Nachteile wie `react-i18next` mit sich: manuelle Typdeklaration, zeitaufwändige Optimierungen und ein `t()`, das einen String zurückgibt, wodurch der Bug mit eingefrorenen Übersetzungen leicht passieren kann. Platzieren Sie Aufrufe stets in JSX oder einem Memo und speichern Sie sie niemals bei der Initialisierung.
114
+
115
+ </Accordion>
116
+ <Accordion header="SolidStart mit Routen mit Locale-Präfix und SSR">
117
+
118
+ Die Locale muss auf dem Server aus der URL stammen, damit Client und Server übereinstimmen; eine Erkennung erst auf dem Client erfolgt zu spät. `@solid-primitives/i18n` und `solid-i18next` überlassen die `[[locale]]`-Route, `matchFilters`, Redirects und die Tags in `entry-server.tsx` Ihnen. Paraglide bietet ein Vite-Plugin für das Routing. Intlayer liefert passende Middleware und Route-Helper mit. Wofür Sie sich auch entscheiden: Platzieren Sie `<html lang>` und `hreflang` in `entry-server.tsx`; `@solidjs/meta` greift in SolidStart v2 erst nach der Hydration auf dem Client. Der Beitrag zur [Solid-i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/frameworks/solid.md) führt durch dieses Setup.
119
+
120
+ </Accordion>
121
+ <Accordion header="Sprachwechsel muss sofort und feingranular erfolgen">
122
+
123
+ Wählen Sie eine Bibliothek, deren Werte Signals oder Accessors sind und deren Lesezugriffe getrackt werden. Sowohl `@solid-primitives/i18n`-Accessors als auch Intlayer-Nodes aktualisieren ausschließlich die DOM-Knoten, die sie lesen, ohne die Komponente neu auszuführen. `solid-i18next` rendert über den Provider neu. Paraglide liest die Locale bei jedem Nachrichtenaufruf aus Cookies oder dem Storage statt aus einem Signal, was zwar funktioniert, aber pro Knoten mehr Arbeit verursacht als nötig.
124
+
125
+ </Accordion>
126
+ <Accordion header="Große App, viele Routen, striktes Bundle-Budget">
127
+
128
+ Gescopeter Content, der zur Build-Zeit kompiliert wird. Intlayer liefert nur das aus, was eine Route tatsächlich rendert. Paraglide sollte dies über Tree-Shaking erreichen; überprüfen Sie dies in Ihrem Setup, da es im Benchmark nicht funktionierte. Planen Sie bei `solid-i18next` die Namespace- und Lazy-Loading-Strategie von Tag eins an und setzen Sie diese im Review konsequent durch.
129
+
130
+ </Accordion>
131
+ <Accordion header="Typsicherheit ist unverzichtbar">
132
+
133
+ `@solid-primitives/i18n` bietet abgeleitete Typen frei Haus, was mehr ist, als die meisten React-Bibliotheken liefern. Für generierte Typen, die auch bei Lazy Loading und Code-Splitting pro Route erhalten bleiben, erzeugen Paraglide, `@lingui/solid` und Intlayer Typen direkt aus dem Inhalt. Der Beitrag zum [Erkennen fehlender Übersetzungen](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/detecting_missing_translations.md) vergleicht, was die Bibliotheken zur Build-Zeit abfangen.
134
+
135
+ </Accordion>
136
+ <Accordion header="Übersetzungen werden per KI erstellt">
137
+
138
+ In diesem Fall gibt es keinen Grund mehr für ein zentralisiertes Dictionary. Kolozierter Content kombiniert mit einem CLI-Tool, das fehlende Sprachen ergänzt, ist der schnellere Weg. Der `fill`-Befehl von Intlayer nutzt Ihren eigenen API-Key (OpenAI, Anthropic, Mistral, Gemini) und übersetzt nur nach, was sich geändert hat.
139
+
140
+ </Accordion>
141
+ </AccordionGroup>
142
+
143
+ ## Wo die Grenzen der einzelnen Bibliotheken liegen
144
+
145
+ - **`@solid-primitives/i18n`**: Kein Lazy Loading oder Scoping abseits eigener Implementierungen, kein Routing, keine Cookie-Verwaltung, keine Formatierer. Hervorragend für kleine Anwendungen, stößt bei professionellen Projekten jedoch schnell an Grenzen.
146
+ - **`solid-i18next`**: Schwerste Option, manuelle Typisierung, eigenes Pluralformat und `t()` gibt Strings zurück, sodass Übersetzungen einfrieren, wenn sie bei der Initialisierung gespeichert werden.
147
+ - **Paraglide**: Generierte Dateien müssen im Repository versioniert und vor jedem Push neu generiert werden, Tree-Shaking griff im Solid-Benchmark nicht, und die Locale wird pro Aufruf aus dem Storage statt aus einem Signal gelesen.
148
+ - **`@lingui/solid`**: Neu im Jahr 2026, daher bislang wenig Produktionserfahrung. Übernimmt den `extract`- und `compile`-Build-Schritt von Lingui sowie dessen teils überlappende Syntaxvarianten.
149
+ - **Intlayer**: Zwingend erforderliches Build-Plugin, kleineres Ökosystem, partielle ICU-Unterstützung und bewusst über die Codebase verteilte Inhalte, weshalb der Export einer einzelnen JSON-Datei für Übersetzer zusätzliche Tools erfordert.
150
+
151
+ ## Wie die Optionen im Code aussehen
152
+
153
+ Die gleiche Komponente, eine Warenkorb-Übersicht mit Titel und Pluralform, umgesetzt mit jedem Kandidaten. Achten Sie darauf, wo die Übersetzung gelesen wird: In JSX wird sie getrackt, im Initialisierungskörper ist sie ein unveränderlicher String.
154
+
155
+ <Tabs defaultTab="solid-primitives">
156
+ <Tab label="@solid-primitives/i18n" value="solid-primitives">
157
+
158
+ <Tabs group="locale">
159
+ <Tab value="en" label="Englisch">
160
+
161
+ ```ts fileName="src/i18n/en.ts"
162
+ export const en = {
163
+ cart: { title: "Your cart", items: "{{ count }} items" },
164
+ };
165
+ ```
166
+
167
+ </Tab>
168
+ <Tab value="fr" label="Französisch">
169
+
170
+ ```ts fileName="src/i18n/fr.ts"
171
+ import type { en } from "./en";
172
+
173
+ export const fr: typeof en = {
174
+ cart: { title: "Votre panier", items: "{{ count }} articles" },
175
+ };
176
+ ```
177
+
178
+ </Tab>
179
+ <Tab value="es" label="Spanisch">
180
+
181
+ ```ts fileName="src/i18n/es.ts"
182
+ import type { en } from "./en";
183
+
184
+ export const es: typeof en = {
185
+ cart: { title: "Tu carrito", items: "{{ count }} artículos" },
186
+ };
187
+ ```
188
+
189
+ </Tab>
190
+ </Tabs>
191
+
192
+ ```ts fileName="src/i18n/index.ts"
193
+ import * as i18n from "@solid-primitives/i18n";
194
+ import { en } from "./en";
195
+
196
+ export const dictionary = () => i18n.flatten(en);
197
+ export const t = i18n.translator(dictionary, i18n.resolveTemplate);
198
+ ```
199
+
200
+ ```tsx fileName="src/components/CartSummary.tsx"
201
+ import type { Component } from "solid-js";
202
+ import { t } from "../i18n";
203
+
204
+ export const CartSummary: Component<{ count: number }> = (props) => (
205
+ <section>
206
+ <h2>{t("cart.title")}</h2>
207
+ <p>{t("cart.items", { count: props.count })}</p>
208
+ </section>
209
+ );
210
+ ```
211
+
212
+ Schlüssel sind ohne Codegen über das englische Objekt typisiert. Es gibt keine Pluralregeln, kein Lazy Loading und kein Routing; all das muss selbst implementiert werden.
213
+
214
+ </Tab>
215
+ <Tab label="solid-i18next" value="solid-i18next">
216
+
217
+ <Tabs group="locale">
218
+ <Tab value="en" label="Englisch">
219
+
220
+ ```json fileName="public/locales/en/cart.json"
221
+ {
222
+ "title": "Your cart",
223
+ "items_one": "{{count}} item",
224
+ "items_other": "{{count}} items"
225
+ }
226
+ ```
227
+
228
+ </Tab>
229
+ <Tab value="fr" label="Französisch">
230
+
231
+ ```json fileName="public/locales/fr/cart.json"
232
+ {
233
+ "title": "Votre panier",
234
+ "items_one": "{{count}} article",
235
+ "items_other": "{{count}} articles"
236
+ }
237
+ ```
238
+
239
+ </Tab>
240
+ <Tab value="es" label="Spanisch">
241
+
242
+ ```json fileName="public/locales/es/cart.json"
243
+ {
244
+ "title": "Tu carrito",
245
+ "items_one": "{{count}} artículo",
246
+ "items_other": "{{count}} artículos"
247
+ }
248
+ ```
249
+
250
+ </Tab>
251
+ </Tabs>
252
+
253
+ ```tsx fileName="src/components/CartSummary.tsx"
254
+ import { useTransContext } from "@mbarzda/solid-i18next";
255
+ import type { Component } from "solid-js";
256
+
257
+ export const CartSummary: Component<{ count: number }> = (props) => {
258
+ const [t] = useTransContext();
259
+
260
+ return (
261
+ <section>
262
+ <h2>{t("cart:title")}</h2>
263
+ <p>{t("cart:items", { count: props.count })}</p>
264
+ </section>
265
+ );
266
+ };
267
+ ```
268
+
269
+ Kataloge, Namespaces und Plugins von i18next wie gewohnt. `t` gibt einen String zurück, weshalb `const title = t("cart:title")` bei der Initialisierung den Wert einfriert; belassen Sie den Aufruf innerhalb von JSX.
270
+
271
+ </Tab>
272
+ <Tab label="Paraglide" value="paraglide">
273
+
274
+ <Tabs group="locale">
275
+ <Tab value="en" label="Englisch">
276
+
277
+ ```json fileName="messages/en.json"
278
+ {
279
+ "cart_title": "Your cart",
280
+ "cart_items": "{count} items"
281
+ }
282
+ ```
283
+
284
+ </Tab>
285
+ <Tab value="fr" label="Französisch">
286
+
287
+ ```json fileName="messages/fr.json"
288
+ {
289
+ "cart_title": "Votre panier",
290
+ "cart_items": "{count} articles"
291
+ }
292
+ ```
293
+
294
+ </Tab>
295
+ <Tab value="es" label="Spanisch">
296
+
297
+ ```json fileName="messages/es.json"
298
+ {
299
+ "cart_title": "Tu carrito",
300
+ "cart_items": "{count} artículos"
301
+ }
302
+ ```
303
+
304
+ </Tab>
305
+ </Tabs>
306
+
307
+ ```tsx fileName="src/components/CartSummary.tsx"
308
+ import type { Component } from "solid-js";
309
+ import { m } from "../paraglide/messages.js";
310
+
311
+ export const CartSummary: Component<{ count: number }> = (props) => (
312
+ <section>
313
+ <h2>{m.cart_title()}</h2>
314
+ <p>{m.cart_items({ count: props.count })}</p>
315
+ </section>
316
+ );
317
+ ```
318
+
319
+ Jede Nachricht ist eine generierte, typisierte Funktion. Die Locale wird bei jedem Aufruf aus dem Cookie oder Storage statt aus einem Signal gelesen, sodass die Reaktivität beim Wechsel selbst angebunden werden muss.
320
+
321
+ </Tab>
322
+ <Tab label="Intlayer" value="intlayer">
323
+
324
+ ```ts fileName="src/components/cartSummary.content.ts"
325
+ import { type Dictionary, plural, t } from "intlayer";
326
+
327
+ const cartSummaryContent = {
328
+ key: "cart-summary",
329
+ content: {
330
+ title: t({
331
+ de: "Ihr Warenkorb",
332
+ en: "Your cart",
333
+ fr: "Votre panier",
334
+ es: "Tu carrito",
335
+ }),
336
+ items: plural({
337
+ one: t({
338
+ de: "{{count}} Artikel",
339
+ en: "{{count}} item",
340
+ fr: "{{count}} article",
341
+ }),
342
+ other: t({
343
+ de: "{{count}} Artikel",
344
+ en: "{{count}} items",
345
+ fr: "{{count}} articles",
346
+ }),
347
+ }),
348
+ },
349
+ } satisfies Dictionary;
350
+
351
+ export default cartSummaryContent;
352
+ ```
353
+
354
+ ```tsx fileName="src/components/CartSummary.tsx"
355
+ import { useIntlayer } from "solid-intlayer";
356
+ import type { Component } from "solid-js";
357
+
358
+ export const CartSummary: Component<{ count: number }> = (props) => {
359
+ const content = useIntlayer("cart-summary");
360
+
361
+ return (
362
+ <section>
363
+ <h2>{content.title}</h2>
364
+ <p>{content.items(props.count)}</p>
365
+ </section>
366
+ );
367
+ };
368
+ ```
369
+
370
+ Alle Sprachen in einer Datei direkt neben der Komponente. `useIntlayer` liefert signalbasierte Nodes zurück, sodass ein Sprachwechsel nur die DOM-Knoten aktualisiert, die sie tatsächlich lesen. `{content.title}` in JSX wird getrackt; `content.title.value` im Initialisierungskörper nicht.
371
+
372
+ </Tab>
373
+ </Tabs>
374
+
375
+ Für eine bestehende i18next-Codebase ermöglicht der [i18next-Kompatibilitätsadapter](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/compat/i18next.md) das Aliasen des Pakets auf Bundler-Ebene, sodass Kataloge und `t()` unverändert weiterfunktionieren, während Intlayer die Inhalte bereitstellt. Der [Migrationsleitfaden](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/migration_from_i18next_to_intlayer.md) behandelt die weiteren Schritte.
376
+
377
+ ## Vor der endgültigen Entscheidung
378
+
379
+ Eine Feature-Tabelle zeigt, was eine Bibliothek heute kann. Diese Punkte zeigen, wie sich die Arbeit im Alltag anfühlt.
380
+
381
+ **Überprüfen Sie die Aktivität des Repositories.**
382
+
383
+ Commits, Antwortzeiten bei Issues und ob das letzte Minor-Release in diesem Jahr stattfand. Ein solides Konzept ohne Maintainer ist eine vorprogrammierte Migration.
384
+
385
+ **Wählen Sie nicht nach npm-Downloadzahlen.**
386
+
387
+ Die am häufigsten installierte Bibliothek ist jene, die zuerst da war, nicht diejenige, die am besten zu einer Solid-Codebase im Jahr 2026 passt. Downloads spiegeln Historie wider, nicht Passgenauigkeit.
388
+
389
+ ![Tier-List der JavaScript i18n-Bibliotheken](https://github.com/aymericzip/intlayer/blob/main/docs/assets/alphabet_rank_i18n_lib.webp?raw=true)
390
+
391
+ **Prüfen Sie das Geschäftsmodell des Anbieters.**
392
+
393
+ `i18next` (hinter `solid-i18next`) wird von Locize unterstützt. `next-intl`, `vue-i18n`, `svelte-i18n` und Lingui werden von Crowdin unterstützt. Tolgee, Paraglide (inlang) und Intlayer betreiben jeweils eine eigene Plattform. Ein Anbieter, dessen Einnahmen auf gehosteten Übersetzungen basieren, hat wenig Interesse daran, Übersetzungen innerhalb Ihrer Toolchain kostenlos zu machen. Intlayer ist die einzige Lösung im Feld, die KI-Übersetzungen über das CLI mit eigenem API-Key und ein selbst hostbares CMS anbietet.
394
+
395
+ **Ist die Lösung bereit für KI-Coding-Agents?**
396
+
397
+ Coding-Agents tun sich bei i18n oft schwer: Sie vergessen Sprachen, erfinden Schlüssel oder mischen Nachrichtensyntaxen. Bietet die Bibliothek [Agent Skills](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/agent_skills.md) oder einen [MCP-Server](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/mcp_server.md), damit der Agent Inhalte auflisten, befüllen und testen kann? Und ist das Laden von Inhalten standardmäßig optimiert, oder muss jemand vierteljährlich Namespaces und Lazy-Imports überprüfen?
398
+
399
+ **Typsicherheit out of the box.**
400
+
401
+ Nicht „kann mit Zusatzaufwand typisiert werden“, sondern „ein falscher Schlüssel führt bei einer Neuinstallation zu einem Fehler in `tsc`“. Testen Sie das Verhalten bei Schlüsseln, die nicht existieren, sowie bei Sprachen, in denen eine Übersetzung fehlt.
402
+
403
+ **Erkennung ungenutzter Inhalte.**
404
+
405
+ Kataloge wachsen mit der Zeit immer weiter an. Der Build von Intlayer entfernt ungenutzte Felder und protokolliert sie (`build.purge`). Paraglide erreicht dies architektonisch, da ungenutzte Nachrichtenfunktionen durch Tree-Shaking entfernt werden. Alle anderen Lösungen überlassen das Aufräumen Ihnen.
406
+
407
+ **Developer Experience.**
408
+
409
+ Setup-Dauer bis zum ersten übersetzten String, ein [LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/lsp.md) oder eine [VS Code-Erweiterung](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/vs_code_extension.md), die Übersetzungen beim Hovern anzeigt und zur Deklaration springt, ein [CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/cli/index.md) zum Befüllen, Testen und Pushen, ein [Compiler](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/compiler.md) oder Extraktor, der hartkodierte Strings aus Ihren Komponenten zieht, damit Sie nicht jeden String Schlüssel für Schlüssel verwalten müssen, sowie eine Möglichkeit für Nicht-Entwickler, Inhalte per [visuellem Editor](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_visual_editor.md) oder [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_CMS.md) ohne Pull Request zu bearbeiten.
410
+
411
+ ## Häufig gestellte Fragen (FAQ)
412
+
413
+ <FAQ>
414
+
415
+ <Question title="Reicht @solid-primitives/i18n für eine produktive Anwendung aus?">
416
+
417
+ Für kleine Projekte ja, und es ist die leichteste verfügbare Option. Es stößt an Grenzen, wenn Sie Lazy-Catalogs pro Route, Locale-Routing in SolidStart, Cookie-Persistenz oder Formatierer benötigen, da all das selbst entwickelt werden muss.
418
+
419
+ </Question>
420
+
421
+ <Question title="Warum aktualisiert sich meine Übersetzung bei einem Sprachwechsel nicht?">
422
+
423
+ Weil Solid-Komponenten nur einmal ausgeführt werden. Eine Übersetzung, die bei der Initialisierung in eine `const` eingelesen wurde, ist ein einfacher String und kein reaktives Abonnement. Lesen Sie den Wert innerhalb von JSX, einem Effect oder Memo, oder wählen Sie eine Bibliothek, deren Werte Accessors sind, um diesen Fehler von vornherein auszuschließen.
424
+
425
+ </Question>
426
+
427
+ <Question title="Benötige ich eine compilerbasierte Bibliothek?">
428
+
429
+ Nur wenn Bundle-Größe, generierte Typen oder Prüfungen auf fehlende Schlüssel zur Build-Zeit tatsächliche Anforderungen sind. Der Beitrag [Compiler vs. deklarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/compiler_vs_declarative_i18n.md) erklärt die Vorteile von Compilern und wo mögliche Fallstricke liegen.
430
+
431
+ </Question>
432
+
433
+ <Question title="Hat die Wahl der Bibliothek Einfluss auf SEO?">
434
+
435
+ Indirekt. Crawler achten auf Routing, `hreflang`, `<html lang>` und darauf, ob Texte im serverseitig gerenderten HTML vorhanden sind, was bei SolidStart `entry-server.tsx` betrifft. Siehe dazu den [hreflang-Leitfaden](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/hreflang_guide_multilingual_seo.md).
436
+
437
+ </Question>
438
+
439
+ </FAQ>
440
+
441
+ ## Weiterführende Links
442
+
443
+ - [Solid i18n Benchmark: Bundle-Größe, Leakage und Zeiten beim Sprachwechsel](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/benchmark/solid.md)
444
+ - [Solid i18n: Warum Übersetzungen beim Sprachwechsel einfrieren](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/list_i18n_technologies/frameworks/solid.md)
445
+ - [Drop-in i18next-Kompatibilitätsadapter](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/compat/i18next.md) und [i18next-Migrationsleitfaden](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/migration_from_i18next_to_intlayer.md)
446
+ - [Die Geschichte der JavaScript-i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/history_of_i18n.md)
447
+ - [Compiler vs. deklarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/compiler_vs_declarative_i18n.md)
448
+ - [Komponentenbezogene vs. zentralisierte i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/per-component_vs_centralized_i18n.md)
449
+ - [Wie Bundle-Optimierung zur Build-Zeit funktioniert](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/bundle_optimization.md)
450
+ - [i18n in einer Vite + Solid App einrichten](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_vite+solid.md) und in einer [SolidStart App](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_with_solid_start.md)
451
+ - Der gleiche Leitfaden für [React](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/how_to_pick_react_i18n_library.md), [Vue](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/how_to_pick_vue_i18n_library.md) und [Svelte](https://github.com/aymericzip/intlayer/blob/main/docs/blog/de/how_to_pick_svelte_i18n_library.md)