@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: 2026-09-13
3
- updatedAt: 2026-09-13
3
+ updatedAt: 2026-09-22
4
4
  title: "Lingui ve Intlayer Karşılaştırması: 2026 Kıyaslama Testi"
5
5
  description: "Next.js ve TanStack Start üzerinde ölçülen derleyici tabanlı iki i18n kütüphanesi. Paket boyutu, içerik sızıntısı, bileşen boyutu, hidrasyon, dil değiştirme tepkiselliği ve geliştirici deneyimi."
6
6
  keywords:
@@ -24,6 +24,8 @@ author: aymericzip
24
24
 
25
25
  # Lingui ve Intlayer Karşılaştırması | React & Next.js Uluslararasılaşma (i18n) Testi
26
26
 
27
+ ![JavaScript i18n library ecosystem](https://github.com/aymericzip/intlayer/blob/main/docs/assets/cloud_i18n_logo.webp?raw=true)
28
+
27
29
  Lingui ve Intlayer, bu karşılaştırmada saf bir çalışma zamanı (runtime) yerine bir **derleyiciye (compiler)** dayanan iki kütüphanedir. Lingui derleme sırasında makrolardan mesajları çıkarır ve her dil için kataloglar derler. Intlayer ise bileşen başına sözlükler derler ve bunları dil başına tree-shake eder. Kağıt üzerinde birbirine çok yakın görünmelidirler. Ancak sayılar nerede ayrıştıklarını açıkça ortaya koyuyor.
28
30
 
29
31
  Veriler, her kütüphaneyle aynı uygulamayı oluşturan ve tarayıcının gerçekte ne indirdiğini ve çalıştırdığını kaydeden açık kaynaklı bir test paketi olan [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom) projesinden gelmektedir.
@@ -96,6 +98,10 @@ Her derleme için test paketi şunları kaydeder:
96
98
 
97
99
  ### Next.js Sonuçları
98
100
 
101
+ İlgilendiğiniz metrikleri ve kütüphaneleri seçin:
102
+
103
+ <I18nBenchmark framework="nextjs" vertical/>
104
+
99
105
  | Kütüphane | Strateji | Kütüphane Boyutu (gz) | Ort. Sayfa JS (gz) | Dil Sızıntısı | Sayfa Sızıntısı | Ort. Bileşen (gz) | E2E Tepkisellik | Hidrasyon |
100
106
  | ------------------- | -------------- | --------------------: | -----------------: | ------------: | --------------: | ----------------: | --------------: | --------: |
101
107
  | **base** (i18n yok) | - | 0.0 KB | 141.0 KB | 0.0% | 0.0% | 0.9 KB | 13.4 ms | 11.8 ms |
@@ -114,6 +120,15 @@ Her derleme için test paketi şunları kaydeder:
114
120
  - **Kaynak dil yedeği sızdırır.** Optimize edilmiş kurulumlarda bile **`en` dizgilerinin %3-15'i `fr` sayfalarına gönderilir**. Lingui makroları kaynak mesajı yedek olarak hazır tutar, bu nedenle çevirinin yanında pakete girer. Intlayer ise yedekleri derleme sırasında çözer ve yalnızca etkin dili gönderir.
115
121
  - **`scoped-dynamic` modunda bileşen boyutu aşırı büyür.** Yalıtılmış olarak derlenen her bileşenin ortalaması **152.6 KB** olur, çünkü her rotanın kataloğu onu içe aktaran bileşenden erişilebilir hale gelir. `useIntlayer()` kullanan aynı bileşenin ortalaması yalnızca **6.9 KB**'dır.
116
122
 
123
+ <ClickToOpenIframe
124
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
125
+ width="100%"
126
+ height="600px"
127
+ style="border:none;"
128
+ />
129
+
130
+ > Tüm kütüphaneler ve stratejiler için tam tablo [Next.js benchmark raporunda](https://intlayer.org/tr/doc/benchmark/nextjs).
131
+
117
132
  ### TanStack Start Sonuçları
118
133
 
119
134
  | Kütüphane | Strateji | Kütüphane Boyutu (gz) | Ort. Sayfa JS (gz) | Dil Sızıntısı | Sayfa Sızıntısı | Ort. Bileşen (gz) | E2E Tepkisellik | Hidrasyon |
@@ -135,8 +150,19 @@ Her derleme için test paketi şunları kaydeder:
135
150
  - **Intlayer'ın `static` satırı zaten %0 sayfa sızıntısına sahiptir**, çünkü yalnızca sayfa bileşenlerinin içe aktardığı sözlükler paketlenir. Tek satırlık bir yapılandırma (`importMode: 'dynamic'`) dil sızıntısını da ortadan kaldırır.
136
151
  - **`@intlayer/lingui`**, Lingui'nin makro sözdizimini korur ve bunu Intlayer sözlüklerinden sunar. Orijinal Lingui'ye göre daha küçük bileşenler (12.8 KB) ve daha hızlı hidrasyon elde etmek için sayfa boyutundan (137 KB) bir miktar ödün verir. Bu bir geçiş adımıdır, nihai hedef değildir.
137
152
 
153
+ <ClickToOpenIframe
154
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
155
+ width="100%"
156
+ height="600px"
157
+ style="border:none;"
158
+ />
159
+
160
+ > Tam tablo [TanStack Start benchmark raporunda](https://intlayer.org/tr/doc/benchmark/tanstack).
161
+
138
162
  ## Neden bu fark var? İki derleyici, iki çalışma birimi
139
163
 
164
+ ![The Intlayer compiler extracts content from components](https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.webp?raw=true)
165
+
140
166
  Her iki kütüphane de derleme yapar. Fark, **neyi** derlediklerindedir.
141
167
 
142
168
  **Lingui katalogları derler.** Kaynak kodunuzdaki makrolar dil başına bir `.po` dosyasına ayıklanır, ardından dil başına bir JS modülüne derlenir. Temel birim **dildir**. Rota veya bileşen bazında daha fazla bölmek; birden fazla katalog oluşturmak, `lingui.config.ts` dosyasını her birini farklı dosya kümelerinden ayıklayacak şekilde yapılandırmak ve her rotada doğru olanı yüklemek anlamına gelir. Çalışma zamanı `I18n` örneği geneldir; her `useLingui()` çağrısı bileşeni buna bağlar.
@@ -176,7 +202,9 @@ Her iki kütüphane de derleme yapar. Fark, **neyi** derlediklerindedir.
176
202
  └── about.content.ts
177
203
  ```
178
204
 
179
- Bu nedenle `scoped-dynamic` modeli Intlayer için doğal bir derleme çıktısı iken, Lingui için zahmetli bir yapılandırma projesidir.
205
+ Bu nedenle `scoped-dynamic` modeli Intlayer için doğal bir derleme çıktısı iken, Lingui için zahmetli bir yapılandırma projesidir. Fark iki eksende birden açılır: sayfalar ve diller:
206
+
207
+ ![Theoretical content leakage by architecture](https://github.com/aymericzip/intlayer/blob/main/docs/assets/theorical_content_leakage.webp?raw=true)
180
208
 
181
209
  > `dynamic` satırının sayılarını elde etmek için `intlayer.config.ts` dosyasında `dictionary.importMode: 'dynamic'` ayarını yapın. [Paket optimizasyonu kılavuzuna](https://intlayer.org/tr/doc/concept/bundle-optimization) göz atın.
182
210
 
@@ -184,7 +212,8 @@ Bu nedenle `scoped-dynamic` modeli Intlayer için doğal bir derleme çıktısı
184
212
 
185
213
  ### Kurulum
186
214
 
187
- **Lingui**
215
+ <Tabs defaultTab="intlayer" group="techno">
216
+ <Tab label="Lingui" value="lingui">
188
217
 
189
218
  ```ts fileName="lingui.config.ts"
190
219
  import { defineConfig } from "@lingui/cli";
@@ -215,7 +244,8 @@ export const loadCatalog = async (locale: string) => {
215
244
 
216
245
  Ardından paketleyiciye `@lingui/babel-plugin-lingui-macro` (veya `@lingui/swc-plugin`) ekleyin, kaynak kodu düzenledikten sonra `lingui extract`, derlemeden önce `lingui compile` çalıştırın ve ağacı `<I18nProvider i18n={i18n}>` ile sarın.
217
246
 
218
- **Intlayer**
247
+ </Tab>
248
+ <Tab label="Intlayer" value="intlayer">
219
249
 
220
250
  ```ts fileName="intlayer.config.ts"
221
251
  import { type IntlayerConfig, Locales } from "intlayer";
@@ -232,9 +262,12 @@ export default config;
232
262
 
233
263
  `vite.config.ts` içine `intlayer()` (veya `next.config.ts` içine `withIntlayer()`) ekleyin ve ağacı `<IntlayerProvider>` ile sarın. Ayıklama veya derleme adımı yoktur: sözlükler paketleyici çalıştığında kendiliğinden oluşturulur.
234
264
 
265
+ </Tab>
266
+ </Tabs>
235
267
  ### Bileşen
236
268
 
237
- **Lingui**
269
+ <Tabs defaultTab="intlayer" group="techno">
270
+ <Tab label="Lingui" value="lingui">
238
271
 
239
272
  ```tsx fileName="src/components/Counter.tsx"
240
273
  import { useState } from "react";
@@ -258,7 +291,8 @@ export const Counter = () => {
258
291
 
259
292
  İngilizce metin bileşenin içinde yaşar; Fransızca olanı ise `lingui extract` çalıştırıldıktan sonra `src/locales/fr/messages.po` içinde hash'lenmiş bir kimlik altında saklanır. Bunu çalıştırmayı veya `compile` etmeyi unutmak sessizce İngilizceye geri döner.
260
293
 
261
- **Intlayer**
294
+ </Tab>
295
+ <Tab label="Intlayer" value="intlayer">
262
296
 
263
297
  ```ts fileName="src/components/Counter/index.content.ts"
264
298
  import { t, type Dictionary } from "intlayer";
@@ -297,11 +331,14 @@ export const Counter = () => {
297
331
 
298
332
  Her iki dil de bileşenin yanında tek bir dosyada bulunur. Eksik bir `fr` değeri derleme hatasıdır, yanlış bir anahtar ise doğrudan TypeScript hatasıdır.
299
333
 
334
+ </Tab>
335
+ </Tabs>
300
336
  ### Bileşenlerin dışında
301
337
 
302
338
  Meta veriler, yükleyiciler (loaders), sunucu fonksiyonları: React ağacının bulunmadığı her yer.
303
339
 
304
- **Lingui**
340
+ <Tabs defaultTab="intlayer" group="techno">
341
+ <Tab label="Lingui" value="lingui">
305
342
 
306
343
  ```ts fileName="src/routes/$locale/about.tsx"
307
344
  import { setupI18n } from "@lingui/core";
@@ -324,7 +361,8 @@ export const loader = async ({ params }: { params: { locale: string } }) => {
324
361
 
325
362
  Çağrı başına yeni bir `I18n` örneği, doğru kataloğun manuel olarak yüklenmesi ve `t` yerine `msg` + `i18n._()` kullanımı. [Test notlarında](https://github.com/intlayer-org/benchmark-bloom/blob/main/report/NOTE.md) belirtildiği gibi, `t`, `` t` ` ``, `i18n.t()`, `msg` veya `<Trans>` yapılarının ne zaman kullanılacağını kestirmek her zaman sezgisel değildir.
326
363
 
327
- **Intlayer**
364
+ </Tab>
365
+ <Tab label="Intlayer" value="intlayer">
328
366
 
329
367
  ```ts fileName="src/routes/$locale/about.tsx"
330
368
  import { getIntlayer } from "intlayer";
@@ -336,6 +374,9 @@ export const loader = async ({ params }: { params: { locale: string } }) => {
336
374
  };
337
375
  ```
338
376
 
377
+ </Tab>
378
+ </Tabs>
379
+
339
380
  ## Lingui makrolarını koruyun, Intlayer sözlüklerine geçin
340
381
 
341
382
  `@intlayer/lingui`, `@lingui/core` ve `@lingui/react` için doğrudan kullanılabilir bir uyumluluk adaptörüdür. Makrolar eskisi gibi derlenmeye devam eder; derlendikleri çalışma zamanı `i18n._()` çağrısı Intlayer sözlüklerinden beslenir ve `.po` senkronizasyon eklentileri mevcut kataloglarınızı kaynak olarak korur. ICU çoğul ve seçim ifadeleri birebir aynı şekilde işlenir.
@@ -353,16 +394,82 @@ export default defineConfig({
353
394
 
354
395
  ## Hangisi ne zaman seçilmeli?
355
396
 
356
- - **Lingui'yi seçin**: Tipli makrolarla **ICU MessageFormat** istiyorsanız, çevirmenleriniz mevcut bir TMS süreciyle **`.po`** dosyaları üzerinde çalışıyorsa, JSX içinde satır içi kaynak dizgileri tercih ediyorsanız ve ekibiniz ayıklama / derleme / katalog bölme iş akışını yönetmekten çekinmiyorsa. Tembel yükleme kurulduktan sonra sayfa başına JS boyutu oldukça rekabetçidir.
357
- - **Intlayer'ı seçin**: **Bileşen kapsamlı içerik**, **katı TypeScript desteği**, **derleme zamanı eksik anahtar hataları**, **yapılandırmasız tree-shaking ve tembel yükleme**, hafif bileşenler, hızlı hidrasyon, anında dil değiştirme ve yerleşik yönetim araçları (Görsel Düzenleyici, CMS, yapay zeka çevirisi, MCP sunucusu) istiyorsanız. Özellikle modüler kod tabanları ve tasarım sistemleri için idealdir.
358
- - **`@intlayer/lingui`'yi seçin**: Halihazırda Lingui kullanıyorsanız ve makrolara dokunmadan kademeli olarak Intlayer sözlüklerine geçmek istiyorsanız.
397
+ <AccordionGroup>
398
+ <Accordion header="Lingui'yi Seçin">
399
+
400
+ Tiplendirilmiş makrolarla **ICU MessageFormat** istiyorsanız, çevirmenleriniz mevcut bir TMS işlem hattıyla **`.po`** dosyalarında çalışıyorsa, kaynak metinlerin JSX içinde doğrudan yer almasını tercih ediyorsanız ve ekibiniz ayıklama / derleme / katalog bölme iş akışını yönetmekten memnunsa. Lazi loading ayarlandıktan sonra sayfa başına JS boyutu oldukça rekabetçidir.
401
+
402
+ </Accordion>
403
+ <Accordion header="Intlayer'ı Seçin">
404
+
405
+ **Bileşen kapsamlı içerik**, **katı TypeScript**, **derleme zamanında eksik anahtar hataları**, **sıfır çabayla tree-shaking ve lazy loading**, küçük bileşenler, hızlı hidrasyon, anında dil değiştirme ve yerleşik editöryal araçlar ([Görsel Düzenleyici](https://intlayer.org/tr/doc/concept/editor), [CMS](https://intlayer.org/tr/doc/concept/cms), [Yapay Zeka Çevirisi](https://intlayer.org/tr/doc/concept/auto-fill), [MCP Sunucusu](https://intlayer.org/tr/doc/mcp-server)) istiyorsanız. Özellikle büyük, modüler kod tabanları ve tasarım sistemleri için uygundur.
406
+
407
+ </Accordion>
408
+ <Accordion header="@intlayer/lingui'yi Seçin">
409
+
410
+ Zaten Lingui kullanıyorsanız ve makrolara dokunmadan aşamalı olarak Intlayer sözlüklerine geçmek istiyorsanız. `.po` kataloglarınız [PO senkronizasyon eklentisi](https://intlayer.org/tr/doc/compatibility/lingui) sayesinde tek doğruluk kaynağı olarak kalır. [Lingui vs @intlayer/lingui](https://intlayer.org/tr/blog/lingui-vs-intlayer-lingui) sayfasında yan yana ölçülmüştür.
411
+
412
+ </Accordion>
413
+ </AccordionGroup>
414
+
415
+ ## FAQ
416
+
417
+ <FAQ>
418
+
419
+ <Question title="Lingui de derleme yapıyor. Çıktı neden bu kadar farklı?">
420
+
421
+ Çünkü derleme birimi farklıdır. Lingui **dil başına bir katalog** derler: bunun altındaki her şey (rota başına kataloglar, lazy loading, yedek metnin paketten çıkarılması) yapılandırma gerektirir. Intlayer **bileşen başına bir sözlük** derler, bu nedenle rota kapsamı derlemenin doğal bir sonucu olarak ortaya çıkar. Bu yüzden tek başına derlenen bir Lingui bileşeni 6-8 KB'a karşı 58-153 KB yer kaplar.
422
+
423
+ </Question>
424
+
425
+ <Question title="Lingui ile dil sızıntısı neden hiçbir zaman %0'a ulaşmaz?">
426
+
427
+ Makrolar, kaynak mesajı çalışma zamanında bir geri dönüş (fallback) olarak kullanılabilir halde tutar, böylece İngilizce dize çevirisinin yanında pakete dahil olur. Benchmark, her optimize edilmiş kurulumda **`fr` sayfalarında %3-15 oranında `en` dizeleri** ölçmektedir. Intlayer derleme zamanında geri dönüşleri çözer ve yalnızca aktif dili gönderir.
428
+
429
+ </Question>
430
+
431
+ <Question title="Lingui'nin sayfa başına JavaScript'i gerçekten rekabetçi mi?">
432
+
433
+ Evet, TanStack Start'ta kıl payı öndedir: Intlayer için 118.6 KB'a karşılık `dynamic` modda 115.2 KB. Karmaşık kimliklere sahip derlenmiş kataloglar kompakttır. Maliyet başka yerlerde ortaya çıkar: 11-14 ms'ye karşılık 28-34 ms hidrasyon ve `scoped-dynamic` kurulumunda **42 ms** süren dil değişimi.
434
+
435
+ </Question>
436
+
437
+ <Question title="Geçiş yapmak için makrolardan vazgeçmek zorunda mıyım?">
438
+
439
+ Hayır. `@intlayer/lingui` `` t`...` ``, `<Trans>`, `msg`, `plural`, `select` ve `selectOrdinal` ifadelerinin eskisi gibi derlenmesini sağlar; yalnızca `i18n._()` çağrısının çözümlendiği kaynak değişir. Derlemede `@lingui/babel-plugin-lingui-macro` veya `@lingui/swc-plugin` kullanmaya devam edin. [Lingui uyumluluk belgesine](https://intlayer.org/tr/doc/compatibility/lingui) bakın.
440
+
441
+ </Question>
442
+
443
+ <Question title="Ayıklama ve derleme adımları ne olacak?">
444
+
445
+ Makrolar için kalır, Intlayer'ın kendi içeriği için ortadan kalkar. `.content.ts` sözlükleri, ayrı bir CLI komutu olmadan paketleyici çalıştığında derlenir ve [`intlayer test`](https://intlayer.org/tr/doc/concept/cli) sessizce kaynak dizeye dönmek yerine eksik bir anahtar olduğunda CI sürecini durdurur.
446
+
447
+ </Question>
448
+
449
+ </FAQ>
359
450
 
360
451
  ## İlgili karşılaştırmalar
361
452
 
362
- - [next-intl ve Intlayer Karşılaştırması](https://intlayer.org/tr/blog/next-intl-vs-intlayer) (aynı test)
363
- - [i18next ve Intlayer Karşılaştırması](https://intlayer.org/tr/blog/i18next-vs-intlayer) (aynı test)
364
- - [vue-i18n ve Intlayer Kıyaslaması](https://intlayer.org/tr/blog/vue-i18n-vs-intlayer-benchmark) (aynı test)
365
- - [Derleyici ve Bildirimsel i18n Karşılaştırması](https://intlayer.org/tr/blog/compiler-vs-declarative-i18n)
453
+ Aynı benchmark, diğer kütüphaneler:
454
+
455
+ - [next-intl vs Intlayer](https://intlayer.org/tr/blog/next-intl-vs-intlayer)
456
+ - [i18next vs Intlayer](https://intlayer.org/tr/blog/i18next-vs-intlayer)
457
+ - [vue-i18n vs Intlayer benchmark](https://intlayer.org/tr/blog/vue-i18n-vs-intlayer-benchmark)
458
+ - [next-i18next vs next-intl vs Intlayer](https://intlayer.org/tr/blog/next-i18next-vs-next-intl-vs-intlayer)
459
+ - [react-i18next vs react-intl vs Intlayer](https://intlayer.org/tr/blog/react-i18next-vs-react-intl-vs-intlayer)
460
+
461
+ Daha fazlası:
462
+
463
+ - [Lingui vs @intlayer/lingui](https://intlayer.org/tr/blog/lingui-vs-intlayer-lingui), aynı uygulamada ölçülen bağdaştırıcı
464
+ - [Compiler-driven vs declarative i18n](https://intlayer.org/tr/blog/compiler-vs-declarative-i18n)
465
+ - [Per-component vs centralized i18n](https://intlayer.org/tr/blog/per-component-vs-centralized-i18n)
466
+ - [ICU message format explained](https://intlayer.org/tr/blog/icu-message-format)
467
+
468
+ Referans belgeler:
469
+
470
+ - [Next.js benchmark raporu](https://intlayer.org/tr/doc/benchmark/nextjs) ve [TanStack Start benchmark raporu](https://intlayer.org/tr/doc/benchmark/tanstack)
471
+ - [Compat adapter: Lingui](https://intlayer.org/tr/doc/compatibility/lingui)
472
+ - [Paket optimizasyonu](https://intlayer.org/tr/doc/concept/bundle-optimization) ve [Intlayer derleyicisi](https://intlayer.org/tr/doc/compiler)
366
473
 
367
474
  ## GitHub Yıldızları
368
475
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  createdAt: 2026-09-13
3
- updatedAt: 2026-09-13
3
+ updatedAt: 2026-09-22
4
4
  title: "next-intl vs @intlayer/next-intl: Aynı API, Farklı Bundle"
5
5
  description: next-intl import'larının bir Next.js uygulamasının @intlayer/next-intl compat adapter tarafından sunulduğunda ne değiştiği. Bundle boyutu, sızıntı, bileşen boyutu ve hidrasyon aynı kod üzerinde ölçülmüştür, plus adapter'ın ne tuttuğu, ne göz ardı ettiği ve neyi değiştiremediği.
6
6
  keywords:
@@ -26,6 +26,8 @@ author: aymericzip
26
26
 
27
27
  # next-intl VS @intlayer/next-intl | Aynı API, Farklı Bundle
28
28
 
29
+ ![next-intl VS Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/assets/i18next-next-intl-intlayer.webp?raw=true)
30
+
29
31
  `@intlayer/next-intl`, bir uyumluluk adaptörüdür: `next-intl` API'sini (`useTranslations`, `getTranslations`, `useLocale`, `t.rich()`, ICU plurals, `NextIntlClientProvider`...) kullanıma sunar ve bunu Intlayer tarafından derlenmiş sözlüklerden sunます. Uygulama kodu değişmez. Bundle değişir.
30
32
 
31
33
  Bu makale, aynı Next.js uygulamasında ikisini karşılaştırır: bir kez `next-intl` ile ve bir kez adaptör ile oluşturulmuş. Rakamlar [Benchmark Bloom](https://github.com/intlayer-org/benchmark-bloom)'dan gelir; bu, tarayıcının gerçekte ne indirdiğini kaydeden açık kaynak bir süittir. Eğer `next-intl` vs Intlayer karşılaştırmasını kütüphaneler olarak istiyorsanız, [next-intl vs Intlayer](https://intlayer.org/blog/next-intl-vs-intlayer) okuyun. Bu makale adaptörün, bileşenlerinizi olduğu gibi tutarken neyi değiştirdiğiyle ilgilidir.
@@ -109,6 +111,10 @@ Her build için, suite şunları kaydeder:
109
111
 
110
112
  ### Next.js Sonuçları
111
113
 
114
+ İlgilendiğiniz metrikleri ve kütüphaneleri seçin:
115
+
116
+ <I18nBenchmark framework="nextjs" vertical/>
117
+
112
118
  | Kurulum | Strateji | Kütüphane boyutu (gz) | Sayfa JS ort. (gz) | Yerel sızıntı | Sayfa sızıntı | Bileşen ort. (gz) | E2E tepkisellik | Hidrasyon |
113
119
  | ------------------------- | -------------- | --------------------: | -----------------: | ------------: | ------------: | ----------------: | --------------: | ----------: |
114
120
  | **base** (no i18n) | - | 0.0 KB | 141.0 KB | 0.0% | 0.0% | 0.9 KB | 13.4 ms | 11.8 ms |
@@ -129,6 +135,15 @@ Her build için, suite şunları kaydeder:
129
135
  - **Hidrasyon 2 ms daha hızlı** (12.8 vs 14.7 ms): React hidrate olmadan önce RSC payload'ından deserialize edilecek bir message nesnesi yoktur.
130
136
  - **Adapter native runtime değildir.** `next-intlayer` **141.3 KB** konumundadır, base app üzerinde +0.3 KB, 5.5 KB runtime ile. Adapter, Intlayer'ın çekirdeğinin üstüne `next-intl` API yüzeyini (`useFormatter`, `t.rich`, ICU resolver) taşır, dolayısıyla 8.0 KB ve sayfa başına +6 KB. Bu köprü, hedef değildir.
131
137
 
138
+ <ClickToOpenIframe
139
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-nextjs.md"
140
+ width="100%"
141
+ height="600px"
142
+ style="border:none;"
143
+ />
144
+
145
+ > Tüm kütüphaneler ve stratejiler için tam tablo [Next.js benchmark raporunda](https://intlayer.org/tr/doc/benchmark/nextjs).
146
+
132
147
  ### TanStack Start üzerindeki sonuçlar (`use-intl`)
133
148
 
134
149
  `use-intl`, `next-intl`'nin framework-agnostic çekirdeğidir. Adaptörü olan `@intlayer/use-intl`, Vite plugin'i (`@intlayer/use-intl/plugin`) ile aynı tasarımı takip eder.
@@ -152,11 +167,24 @@ Her build için, suite şunları kaydeder:
152
167
  - **Yerel ayar değişikliği daha hızlıdır.** Optimize edilmiş `use-intl` kurulumları `html[lang]` güncelleme için **13-21 ms** sürer; adapter **4-9 ms** sürer. Daha az bileşen yeniden render edilir ve hiçbir şey bir mesaj ağacından yeniden seçilmez.
153
168
  - **`static` her yerel ayarı tutar.** Adapterin `static` satırı %49,7 yerel ayar sızıntısı gösterir, bu da yerel Intlayer'ın `static` modundakiyle aynıdır: tüm yerel ayarlar paketlenmiş, yalnızca sayfanın sözlükleri paketlenmiştir. Bir satır yapılandırma (`importMode: 'dynamic'`) bunu kaldırır.
154
169
 
170
+ <ClickToOpenIframe
171
+ src="https://intlayer.org/markdown?url=https%3A%2F%2Fraw.githubusercontent.com%2Fintlayer-org%2Fbenchmark-i18n%2Fmain%2Freport%2Fscripts%2Fsummarize-tanstack.md"
172
+ width="100%"
173
+ height="600px"
174
+ style="border:none;"
175
+ />
176
+
177
+ > Tam tablo [TanStack Start benchmark raporunda](https://intlayer.org/tr/doc/benchmark/tanstack).
178
+
155
179
  ## Sayılar neden hareket ediyor
156
180
 
181
+ ![The Intlayer compiler extracts content from components](https://github.com/aymericzip/intlayer/blob/main/docs/assets/compiler.webp?raw=true)
182
+
157
183
  Bileşende hiçbir şey değişmedi, bu nedenle kazançlar tamamen `useTranslations` neyin bağlandığından gelmektedir.
158
184
 
159
- **`next-intl` ile**, bağlama sağlayıcı tarafından yapılır. `NextIntlClientProvider`, locale için tüm `messages` nesnesini alır; her `useTranslations("about")` bundan okur. Bundler, bir bileşenin bir hook'u içe aktardığını ve bir context'i okuduğunu görür ve sadece `about` dalının kullanıldığını bilemez. Aşağıdaki rotalar aynı message nesnesini paylaştığından, sayfa sızıntısı sütunu dosyayı kendiniz bölmediğiniz sürece ~%90 olarak okunur.
185
+ **`next-intl` ile**, bağlama sağlayıcı tarafından yapılır. `NextIntlClientProvider`, locale için tüm `messages` nesnesini alır; her `useTranslations("about")` bundan okur. Bundler, bir bileşenin bir hook'u içe aktardığını ve bir context'i okuduğunu görür ve sadece `about` dalının kullanıldığını bilemez. Aşağıdaki rotalar aynı message nesnesini paylaştığından, sayfa sızıntısı sütunu dosyayı kendiniz bölmediğiniz sürece ~%90 olarak okunur, ve gereksiz yük iki eksende birden büyür: sayfalar ve diller:
186
+
187
+ ![Theoretical content leakage by architecture](https://github.com/aymericzip/intlayer/blob/main/docs/assets/theorical_content_leakage.webp?raw=true)
160
188
 
161
189
  ```bash
162
190
  .
@@ -280,25 +308,106 @@ export default withIntlayer(nextConfig);
280
308
 
281
309
  ## Başlamadan önce bilmeniz gereken sınırlamalar
282
310
 
283
- - **Yönlendirme yapılandırması `intlayer.config.ts` dosyasına taşınır.** `createNavigation(routing)` ve `createMiddleware(routing)` imzalarını korur ancak argümanı yoksayar: yerel diller, varsayılan yerel dil ve önek stratejisi Intlayer'ın `routing` yapılandırmasından gelir. `next-intl`'nin lokalize edilmiş `pathnames` (`/about` → `/a-propos`) kullanıyorsanız, adapter bunları enterpolate etmez; Intlayer'ın `routing.rewrite` bu durumu kapsar ancak bu ayrı bir değişikliktir.
284
- - **Ad alanı olmayan `useTranslations()` bağlı değildir.** Optimize işlemi, hangi sözlüğü içe aktaracağını bilmek için statik bir ad alanına ihtiyaç duyar. Çıplak bir çağrı, her sözlüğe başvuran bir runtime registry aracılığıyla çalışır; bu tam olarak kaldırmaya çalıştığınız sızıntıdır. Ad alanını geçin.
285
- - **Adaptör ücretsiz değildir.** `next-intlayer` için 5.5 KB'a karşılık 8.0 KB runtime ve native build üzerinde sayfa başına +6-7 KB. Bu, `next-intl` API yüzeyinin maliyetidir. Her bileşen `useIntlayer`'a taşındığı noktaya ulaştığınızda, adaptörü bırakın.
286
- - **Sağlayıcı üzerindeki `messages`, `timeZone`, `now` yoksayılır.** Biçimlendiriciler native `Intl` tarafından desteklenir ve yalnızca locale bunların çıktısını etkiler; eğer zorlanmış bir zaman dilimi veya hydration açısından kararlı tarihler için sabit bir `now`'a bağlıysanız, bunu çağrı sitesinde işleyin.
311
+ <AccordionGroup>
312
+ <Accordion header="Yönlendirme yapılandırması intlayer.config.ts dosyasına taşınır">
313
+
314
+ `createNavigation(routing)` ve `createMiddleware(routing)` imzalarını korur ancak argümanı yoksayar: diller, varsayılan dil ve önek stratejisi Intlayer'ın `routing` yapılandırmasından gelir. `next-intl`'in yerelleştirilmiş `pathnames` özelliğini (`/about` -> `/a-propos`) kullanıyorsanız, bağdaştırıcı bunları enterpole etmez; Intlayer'ın `routing.rewrite` seçeneği bu durumu kapsar ancak ayrı bir değişikliktir.
315
+
316
+ </Accordion>
317
+ <Accordion header="Ad alanı belirtilmemiş useTranslations() bağlı değildir">
318
+
319
+ Optimizasyon aşaması, hangi sözlüğün içe aktarılacağını bilmek için statik bir ad alanına ihtiyaç duyar. Ad alanı olmadan yapılan yalın çağrılar, her sözlüğe başvuran bir çalışma zamanı kaydı aracılığıyla çalışmaya devam eder; bu da tam olarak ortadan kaldırmaya çalıştığınız sızıntıdır. Ad alanını iletin.
320
+
321
+ </Accordion>
322
+ <Accordion header="Bağdaştırıcı tamamen ücretsiz değildir">
323
+
324
+ `next-intlayer` için 5.5 KB'a kıyasla 8.0 KB çalışma zamanı ve yerel derlemeye göre sayfa başına +6-7 KB. Bu, `next-intl` API yüzeyinin bedelidir. Her bileşen `useIntlayer`'a taşındığında bağdaştırıcıyı kaldırın.
325
+
326
+ </Accordion>
327
+ <Accordion header="Sağlayıcıdaki messages, timeZone ve now yoksayılır">
328
+
329
+ Biçimlendiriciler yerel `Intl` tarafından desteklenir ve yalnızca yerel ayar çıktılarını etkiler. Hidrasyon açısından kararlı tarihler için zorunlu bir saat dilimine veya sabit bir `now` değerine güveniyorsanız, bunu çağrı noktasında yönetin. [Tarih, saat ve sayı biçimlendirmesine](https://intlayer.org/tr/blog/date-time-number-formatting-locales) bakın.
330
+
331
+ </Accordion>
332
+ </AccordionGroup>
287
333
 
288
334
  ## Hangisini ne zaman kullanmalı?
289
335
 
290
- - **`next-intl` üzerinde kalın** eğer uygulamanız küçükse, bundle'ınız endişe konusu değilse ve ekibiniz ad alanlarına ve sayfa başına `pick()` kullanımına sahip olmakta rahatsa.
291
- - **`@intlayer/next-intl` kullanın** eğer şu anda `next-intl` üzerinde iseniz ve bundle boyutu, veri sızıntısı ve hydration iyileştirmeleri, yazılan anahtarlar ve CLI / CMS araçlaması istiyorsanız ancak yeniden yazma yapmak istemiyorsanız. Bu, mevcut herhangi bir `next-intl` codebase'i için önerilen başlangıç noktasıdır.
292
- - **Native'e gidin (`next-intlayer`)** yeni projeler için veya adapter işini bitirdikten sonra. Üçünün en hafifi (5.5 KB, sayfa başına +0.3 KB) ve senkron server bileşenlerini, bileşen başına `.content.ts` dosyalarını ve tam özellik setini açar.
336
+ <AccordionGroup>
337
+ <Accordion header="next-intl'de kalın">
338
+
339
+ Uygulamanız küçükse, paket boyutu bir sorun teşkil etmiyorsa ve ekibiniz ad alanlarını ve sayfa başına `pick()` yönetimini rahatça yapabiliyorsa.
340
+
341
+ </Accordion>
342
+ <Accordion header="@intlayer/next-intl kullanın">
343
+
344
+ Bugün `next-intl` kullanıyorsanız ve kodları yeniden yazmadan paket boyutu, sızıntı ve hidrasyon kazanımları, tiplendirilmiş anahtarlar ve CLI / CMS araçlarını istiyorsanız. Mevcut herhangi bir `next-intl` kod tabanı için önerilen giriş noktası budur.
345
+
346
+ </Accordion>
347
+ <Accordion header="Doğrudan yerel kullanıma geçin (next-intlayer)">
348
+
349
+ Yeni projeler için veya bağdaştırıcı görevini tamamladıktan sonra. Üçü arasında en hafif olanıdır (5.5 KB, sayfa başına +0.3 KB) ve senkron sunucu bileşenlerini, bileşen başına `.content.ts` dosyalarını ve eksiksiz özellik kümesini açar. [Next.js ile Intlayer](https://intlayer.org/tr/doc/environment/nextjs) ile başlayın.
350
+
351
+ </Accordion>
352
+ </AccordionGroup>
353
+
354
+ ## FAQ
355
+
356
+ <FAQ>
357
+
358
+ <Question title="Uygulama kodum gerçekten hiç değişmeden kalır mı?">
359
+
360
+ Next.js'de bileşenler için evet: benchmark derlemesi yalnızca `next.config.ts` ve `intlayer.config.ts` dosyalarını değiştirdi. `src/i18n.ts` içindeki `getRequestConfig`, sağlayıcıdaki `messages` özelliği ve sayfa başına `pick()` çağrıları daha sonra silebileceğiniz ölü koda dönüşür.
361
+
362
+ </Question>
363
+
364
+ <Question title="ICU mesajlarına ne olur?">
365
+
366
+ Çalışmaya devam ederler. `t("key", { count })`, `t.rich()`, `t.markup()`, `select`, `selectordinal`, `#` ve `{ts, date, long}` Intlayer'ın ICU çözümleyicisi tarafından işlenir. [ICU mesaj formatı](https://intlayer.org/tr/blog/icu-message-format) sayfasına bakın.
367
+
368
+ </Question>
369
+
370
+ <Question title="Bağdaştırıcı neden yerel next-intlayer'dan daha ağırdır?">
371
+
372
+ Intlayer çekirdeğinin üzerinde `next-intl` API yüzeyini taşır: `useFormatter`, `t.rich`, ICU çözümleyici, navigasyon yardımcıları. Bu, 5.5 KB'a karşı 8.0 KB ve sayfa başına +6 KB anlamına gelir. Bir köprüdür, nihai hedef değil.
373
+
374
+ </Question>
375
+
376
+ <Question title="Bileşen bileşen kademeli geçiş yapabilir miyim?">
377
+
378
+ Evet. Herhangi bir bileşen, yanına eklenen bir `.content.ts` ile `useTranslations("about")` kullanımından `useIntlayer("about")` kullanımına geçebilir. JSON ve `.content.ts` sözlükleri bir arada var olur ve birleşir.
379
+
380
+ </Question>
381
+
382
+ <Question title="Yerelleştirilmiş sayfa yolları (pathnames) çalışır mı?">
383
+
384
+ `next-intl`'in `pathnames` özelliği üzerinden çalışmaz: bağdaştırıcı bunu tipleme için kabul eder ancak enterpole etmez. Bunun yerine Intlayer'ın `routing.rewrite` özelliğini kullanın.
385
+
386
+ </Question>
387
+
388
+ </FAQ>
293
389
 
294
390
  ## İlgili karşılaştırmalar
295
391
 
296
- - [next-intl vs Intlayer](https://intlayer.org/blog/next-intl-vs-intlayer) (kütüphaneler, aynı benchmark)
297
- - [i18next vs @intlayer/i18next](https://intlayer.org/blog/i18next-vs-intlayer-i18next) (aynı adapter serisi)
298
- - [Lingui vs @intlayer/lingui](https://intlayer.org/blog/lingui-vs-intlayer-lingui) (aynı adapter serisi)
299
- - [vue-i18n vs @intlayer/vue-i18n](https://intlayer.org/blog/vue-i18n-vs-intlayer-vue-i18n) (aynı adapter serisi)
300
- - [Migration guide: next-intl to Intlayer](https://intlayer.org/doc/migration/next-intl)
301
- - [Compat adapter reference: next-intl](https://intlayer.org/doc/compatibility/next-intl)
392
+ Aynı bağdaştırıcı serisi:
393
+
394
+ - [i18next vs @intlayer/i18next](https://intlayer.org/tr/blog/i18next-vs-intlayer-i18next)
395
+ - [Lingui vs @intlayer/lingui](https://intlayer.org/tr/blog/lingui-vs-intlayer-lingui)
396
+ - [vue-i18n vs @intlayer/vue-i18n](https://intlayer.org/tr/blog/vue-i18n-vs-intlayer-vue-i18n)
397
+
398
+ Doğrudan karşılaştırılan kütüphaneler:
399
+
400
+ - [next-intl vs Intlayer](https://intlayer.org/tr/blog/next-intl-vs-intlayer), aynı benchmark
401
+ - [next-i18next vs next-intl vs Intlayer](https://intlayer.org/tr/blog/next-i18next-vs-next-intl-vs-intlayer)
402
+ - [Is next-intl outdated?](https://intlayer.org/tr/blog/is-next-intl-outdated)
403
+
404
+ Referans belgeler:
405
+
406
+ - [Compat adapter: next-intl](https://intlayer.org/tr/doc/compatibility/next-intl)
407
+ - [Geçiş kılavuzu: next-intl'den Intlayer'a](https://intlayer.org/tr/doc/migration/next-intl)
408
+ - [Next.js benchmark raporu](https://intlayer.org/tr/doc/benchmark/nextjs) ve [TanStack Start benchmark raporu](https://intlayer.org/tr/doc/benchmark/tanstack)
409
+ - [Paket optimizasyonu](https://intlayer.org/tr/doc/concept/bundle-optimization) ve [Intlayer derleyicisi](https://intlayer.org/tr/doc/compiler)
410
+ - [Görsel Düzenleyici](https://intlayer.org/tr/doc/concept/editor), [CMS](https://intlayer.org/tr/doc/concept/cms) ve [Yapay Zeka Çevirisi](https://intlayer.org/tr/doc/concept/auto-fill)
302
411
 
303
412
  ## Sonuç
304
413