@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.
- package/blog/ar/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ar/i18next_vs_intlayer.md +130 -16
- package/blog/ar/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ar/lingui_vs_intlayer.md +122 -15
- package/blog/ar/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/ar/next-intl_vs_intlayer.md +136 -20
- package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +119 -17
- package/blog/ar/vue-i18n_vs_intlayer.md +193 -31
- package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/de/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/de/i18next_vs_intlayer.md +128 -14
- package/blog/de/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/de/lingui_vs_intlayer.md +122 -15
- package/blog/de/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/de/next-intl_vs_intlayer.md +125 -15
- package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/de/vue-i18n_vs_intlayer.md +193 -31
- package/blog/en/i18next_vs_intlayer-i18next.md +121 -14
- package/blog/en/i18next_vs_intlayer.md +128 -14
- package/blog/en/is_intlayer_lighter_than_paraglide.md +288 -0
- package/blog/en/lingui_vs_intlayer.md +124 -15
- package/blog/en/next-intl_vs_intlayer-next-intl.md +123 -14
- package/blog/en/next-intl_vs_intlayer.md +125 -13
- package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +115 -15
- package/blog/en/vue-i18n_vs_intlayer.md +188 -27
- package/blog/en-GB/i18next_vs_intlayer-i18next.md +121 -14
- package/blog/en-GB/i18next_vs_intlayer.md +128 -14
- package/blog/en-GB/is_intlayer_lighter_than_paraglide.md +285 -0
- package/blog/en-GB/lingui_vs_intlayer.md +122 -15
- package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/en-GB/next-intl_vs_intlayer.md +125 -15
- package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/en-GB/vue-i18n_vs_intlayer.md +187 -25
- package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +116 -0
- package/blog/es/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/es/i18next_vs_intlayer.md +128 -14
- package/blog/es/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/es/lingui_vs_intlayer.md +122 -15
- package/blog/es/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/es/next-intl_vs_intlayer.md +125 -15
- package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/es/vue-i18n_vs_intlayer.md +193 -31
- package/blog/fr/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/fr/i18next_vs_intlayer.md +128 -14
- package/blog/fr/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/fr/lingui_vs_intlayer.md +122 -15
- package/blog/fr/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/fr/next-intl_vs_intlayer.md +127 -15
- package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +118 -17
- package/blog/fr/vue-i18n_vs_intlayer.md +192 -31
- package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +329 -7
- package/blog/hi/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/hi/i18next_vs_intlayer.md +130 -16
- package/blog/hi/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/hi/lingui_vs_intlayer.md +122 -15
- package/blog/hi/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/hi/next-intl_vs_intlayer.md +135 -19
- package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/hi/vue-i18n_vs_intlayer.md +193 -31
- package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/id/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/id/i18next_vs_intlayer.md +128 -14
- package/blog/id/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/id/lingui_vs_intlayer.md +122 -15
- package/blog/id/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/id/next-intl_vs_intlayer.md +135 -19
- package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +354 -2
- package/blog/id/vue-i18n_vs_intlayer.md +188 -26
- package/blog/id/vue-i18n_vs_intlayer_benchmark.md +327 -7
- package/blog/it/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/it/i18next_vs_intlayer.md +128 -14
- package/blog/it/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/it/lingui_vs_intlayer.md +122 -15
- package/blog/it/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/it/next-intl_vs_intlayer.md +125 -15
- package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/it/vue-i18n_vs_intlayer.md +191 -31
- package/blog/it/vue-i18n_vs_intlayer_benchmark.md +332 -5
- package/blog/ja/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ja/i18next_vs_intlayer.md +129 -17
- package/blog/ja/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ja/lingui_vs_intlayer.md +122 -15
- package/blog/ja/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/ja/next-intl_vs_intlayer.md +124 -14
- package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/ja/vue-i18n_vs_intlayer.md +193 -31
- package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/ko/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ko/i18next_vs_intlayer.md +129 -17
- package/blog/ko/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ko/lingui_vs_intlayer.md +122 -15
- package/blog/ko/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/ko/next-intl_vs_intlayer.md +134 -18
- package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/ko/vue-i18n_vs_intlayer.md +193 -31
- package/blog/pl/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/pl/i18next_vs_intlayer.md +128 -14
- package/blog/pl/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/pl/lingui_vs_intlayer.md +122 -15
- package/blog/pl/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/pl/next-intl_vs_intlayer.md +134 -18
- package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/pl/vue-i18n_vs_intlayer.md +188 -26
- package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/pt/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/pt/i18next_vs_intlayer.md +128 -14
- package/blog/pt/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/pt/lingui_vs_intlayer.md +122 -15
- package/blog/pt/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/pt/next-intl_vs_intlayer.md +131 -15
- package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/pt/vue-i18n_vs_intlayer.md +193 -31
- package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/ru/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/ru/i18next_vs_intlayer.md +130 -16
- package/blog/ru/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/ru/lingui_vs_intlayer.md +122 -15
- package/blog/ru/next-intl_vs_intlayer-next-intl.md +125 -16
- package/blog/ru/next-intl_vs_intlayer.md +123 -13
- package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +127 -27
- package/blog/ru/vue-i18n_vs_intlayer.md +193 -31
- package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +326 -19
- package/blog/tr/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/tr/i18next_vs_intlayer.md +128 -14
- package/blog/tr/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/tr/lingui_vs_intlayer.md +122 -15
- package/blog/tr/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/tr/next-intl_vs_intlayer.md +136 -20
- package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/tr/vue-i18n_vs_intlayer.md +188 -26
- package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/uk/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/uk/i18next_vs_intlayer.md +130 -16
- package/blog/uk/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/uk/lingui_vs_intlayer.md +122 -15
- package/blog/uk/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/uk/next-intl_vs_intlayer.md +135 -19
- package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +135 -17
- package/blog/uk/vue-i18n_vs_intlayer.md +188 -27
- package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/vi/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/vi/i18next_vs_intlayer.md +128 -14
- package/blog/vi/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/vi/lingui_vs_intlayer.md +122 -15
- package/blog/vi/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/vi/next-intl_vs_intlayer.md +135 -19
- package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/vi/vue-i18n_vs_intlayer.md +188 -26
- package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/zh/i18next_vs_intlayer-i18next.md +122 -15
- package/blog/zh/i18next_vs_intlayer.md +128 -14
- package/blog/zh/is_intlayer_lighter_than_paraglide.md +284 -0
- package/blog/zh/lingui_vs_intlayer.md +122 -15
- package/blog/zh/next-intl_vs_intlayer-next-intl.md +124 -15
- package/blog/zh/next-intl_vs_intlayer.md +125 -15
- package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +117 -17
- package/blog/zh/vue-i18n_vs_intlayer.md +192 -31
- package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +340 -9
- package/dist/cjs/generated/blog.entry.cjs +20 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +60 -40
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +20 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +60 -40
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +3 -2
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/benchmark/nextjs.md +19 -16
- package/docs/ar/benchmark/solid.md +26 -9
- package/docs/ar/benchmark/svelte.md +22 -7
- package/docs/ar/benchmark/tanstack.md +20 -16
- package/docs/ar/benchmark/vue.md +19 -10
- package/docs/ar/chrome_extension.md +130 -0
- package/docs/ar/cli/index.md +11 -1
- package/docs/ar/cli/infra.md +162 -0
- package/docs/ar/cli/init.md +24 -1
- package/docs/ar/cli/upgrade.md +125 -0
- package/docs/ar/dictionary/html.md +173 -5
- package/docs/ar/dictionary/markdown.md +263 -1
- package/docs/ar/intlayer_with_analog.md +23 -1
- package/docs/ar/intlayer_with_angular_19.md +24 -1
- package/docs/ar/intlayer_with_angular_21.md +24 -1
- package/docs/ar/intlayer_with_astro.md +24 -1
- package/docs/ar/intlayer_with_astro_lit.md +25 -1
- package/docs/ar/intlayer_with_astro_preact.md +26 -1
- package/docs/ar/intlayer_with_astro_react.md +26 -1
- package/docs/ar/intlayer_with_astro_solid.md +26 -1
- package/docs/ar/intlayer_with_astro_svelte.md +25 -1
- package/docs/ar/intlayer_with_astro_vue.md +25 -1
- package/docs/ar/intlayer_with_remix_3.md +22 -1
- package/docs/ar/self_hosting.md +406 -231
- package/docs/de/benchmark/nextjs.md +19 -16
- package/docs/de/benchmark/solid.md +26 -9
- package/docs/de/benchmark/svelte.md +22 -7
- package/docs/de/benchmark/tanstack.md +20 -16
- package/docs/de/benchmark/vue.md +19 -10
- package/docs/de/chrome_extension.md +130 -0
- package/docs/de/cli/index.md +11 -1
- package/docs/de/cli/infra.md +162 -0
- package/docs/de/cli/init.md +24 -1
- package/docs/de/cli/upgrade.md +125 -0
- package/docs/de/dictionary/html.md +173 -5
- package/docs/de/dictionary/markdown.md +263 -1
- package/docs/de/intlayer_with_analog.md +23 -1
- package/docs/de/intlayer_with_angular_19.md +24 -1
- package/docs/de/intlayer_with_angular_21.md +24 -1
- package/docs/de/intlayer_with_astro.md +24 -1
- package/docs/de/intlayer_with_astro_lit.md +25 -1
- package/docs/de/intlayer_with_astro_preact.md +26 -1
- package/docs/de/intlayer_with_astro_react.md +26 -1
- package/docs/de/intlayer_with_astro_solid.md +26 -1
- package/docs/de/intlayer_with_astro_svelte.md +25 -1
- package/docs/de/intlayer_with_astro_vue.md +25 -1
- package/docs/de/intlayer_with_remix_3.md +22 -1
- package/docs/de/self_hosting.md +404 -227
- package/docs/en/agent_skills.md +29 -1
- package/docs/en/benchmark/nextjs.md +19 -16
- package/docs/en/benchmark/solid.md +26 -9
- package/docs/en/benchmark/svelte.md +22 -7
- package/docs/en/benchmark/tanstack.md +21 -17
- package/docs/en/benchmark/vue.md +20 -11
- package/docs/en/chrome_extension.md +130 -0
- package/docs/en/cli/index.md +11 -1
- package/docs/en/cli/infra.md +175 -0
- package/docs/en/cli/init.md +25 -1
- package/docs/en/cli/upgrade.md +125 -0
- package/docs/en/dictionary/html.md +173 -5
- package/docs/en/dictionary/markdown.md +263 -1
- package/docs/en/intlayer_with_analog.md +23 -1
- package/docs/en/intlayer_with_angular_19.md +24 -1
- package/docs/en/intlayer_with_angular_21.md +24 -1
- package/docs/en/intlayer_with_astro.md +24 -1
- package/docs/en/intlayer_with_astro_lit.md +25 -1
- package/docs/en/intlayer_with_astro_preact.md +26 -1
- package/docs/en/intlayer_with_astro_react.md +26 -1
- package/docs/en/intlayer_with_astro_solid.md +26 -1
- package/docs/en/intlayer_with_astro_svelte.md +25 -1
- package/docs/en/intlayer_with_astro_vue.md +25 -1
- package/docs/en/intlayer_with_remix_3.md +22 -1
- package/docs/en/self_hosting.md +418 -176
- package/docs/en-GB/benchmark/nextjs.md +19 -16
- package/docs/en-GB/benchmark/solid.md +26 -9
- package/docs/en-GB/benchmark/svelte.md +22 -7
- package/docs/en-GB/benchmark/tanstack.md +20 -16
- package/docs/en-GB/benchmark/vue.md +20 -11
- package/docs/en-GB/chrome_extension.md +130 -0
- package/docs/en-GB/cli/index.md +11 -1
- package/docs/en-GB/cli/infra.md +162 -0
- package/docs/en-GB/cli/init.md +24 -1
- package/docs/en-GB/cli/upgrade.md +125 -0
- package/docs/en-GB/dictionary/html.md +173 -5
- package/docs/en-GB/dictionary/markdown.md +263 -1
- package/docs/en-GB/intlayer_with_analog.md +23 -1
- package/docs/en-GB/intlayer_with_angular_19.md +24 -1
- package/docs/en-GB/intlayer_with_angular_21.md +24 -1
- package/docs/en-GB/intlayer_with_astro.md +24 -1
- package/docs/en-GB/intlayer_with_astro_lit.md +25 -1
- package/docs/en-GB/intlayer_with_astro_preact.md +26 -1
- package/docs/en-GB/intlayer_with_astro_react.md +26 -1
- package/docs/en-GB/intlayer_with_astro_solid.md +26 -1
- package/docs/en-GB/intlayer_with_astro_svelte.md +25 -1
- package/docs/en-GB/intlayer_with_astro_vue.md +25 -1
- package/docs/en-GB/intlayer_with_remix_3.md +22 -1
- package/docs/en-GB/self_hosting.md +381 -206
- package/docs/es/benchmark/nextjs.md +19 -16
- package/docs/es/benchmark/solid.md +26 -9
- package/docs/es/benchmark/svelte.md +22 -7
- package/docs/es/benchmark/tanstack.md +20 -16
- package/docs/es/benchmark/vue.md +19 -10
- package/docs/es/chrome_extension.md +130 -0
- package/docs/es/cli/index.md +11 -1
- package/docs/es/cli/infra.md +162 -0
- package/docs/es/cli/init.md +24 -1
- package/docs/es/cli/upgrade.md +125 -0
- package/docs/es/dictionary/html.md +173 -5
- package/docs/es/dictionary/markdown.md +263 -1
- package/docs/es/intlayer_with_analog.md +23 -1
- package/docs/es/intlayer_with_angular_19.md +24 -1
- package/docs/es/intlayer_with_angular_21.md +24 -1
- package/docs/es/intlayer_with_astro.md +24 -1
- package/docs/es/intlayer_with_astro_lit.md +25 -1
- package/docs/es/intlayer_with_astro_preact.md +26 -1
- package/docs/es/intlayer_with_astro_react.md +26 -1
- package/docs/es/intlayer_with_astro_solid.md +26 -1
- package/docs/es/intlayer_with_astro_svelte.md +25 -1
- package/docs/es/intlayer_with_astro_vue.md +25 -1
- package/docs/es/intlayer_with_remix_3.md +22 -1
- package/docs/es/self_hosting.md +400 -223
- package/docs/fr/benchmark/nextjs.md +19 -16
- package/docs/fr/benchmark/solid.md +26 -9
- package/docs/fr/benchmark/svelte.md +22 -7
- package/docs/fr/benchmark/tanstack.md +20 -16
- package/docs/fr/benchmark/vue.md +20 -11
- package/docs/fr/chrome_extension.md +130 -0
- package/docs/fr/cli/index.md +11 -1
- package/docs/fr/cli/infra.md +162 -0
- package/docs/fr/cli/init.md +24 -1
- package/docs/fr/cli/upgrade.md +125 -0
- package/docs/fr/dictionary/html.md +173 -5
- package/docs/fr/dictionary/markdown.md +265 -4
- package/docs/fr/intlayer_with_analog.md +23 -1
- package/docs/fr/intlayer_with_angular_19.md +24 -1
- package/docs/fr/intlayer_with_angular_21.md +24 -1
- package/docs/fr/intlayer_with_astro.md +24 -1
- package/docs/fr/intlayer_with_astro_lit.md +25 -1
- package/docs/fr/intlayer_with_astro_preact.md +26 -1
- package/docs/fr/intlayer_with_astro_react.md +26 -1
- package/docs/fr/intlayer_with_astro_solid.md +26 -1
- package/docs/fr/intlayer_with_astro_svelte.md +25 -1
- package/docs/fr/intlayer_with_astro_vue.md +25 -1
- package/docs/fr/intlayer_with_remix_3.md +22 -1
- package/docs/fr/self_hosting.md +401 -224
- package/docs/hi/benchmark/nextjs.md +19 -16
- package/docs/hi/benchmark/solid.md +26 -9
- package/docs/hi/benchmark/svelte.md +22 -7
- package/docs/hi/benchmark/tanstack.md +20 -16
- package/docs/hi/benchmark/vue.md +20 -11
- package/docs/hi/chrome_extension.md +130 -0
- package/docs/hi/cli/index.md +11 -1
- package/docs/hi/cli/infra.md +162 -0
- package/docs/hi/cli/init.md +24 -1
- package/docs/hi/cli/upgrade.md +125 -0
- package/docs/hi/dictionary/html.md +173 -5
- package/docs/hi/dictionary/markdown.md +263 -1
- package/docs/hi/intlayer_with_analog.md +23 -1
- package/docs/hi/intlayer_with_angular_19.md +24 -1
- package/docs/hi/intlayer_with_angular_21.md +24 -1
- package/docs/hi/intlayer_with_astro.md +24 -1
- package/docs/hi/intlayer_with_astro_lit.md +25 -1
- package/docs/hi/intlayer_with_astro_preact.md +26 -1
- package/docs/hi/intlayer_with_astro_react.md +26 -1
- package/docs/hi/intlayer_with_astro_solid.md +26 -1
- package/docs/hi/intlayer_with_astro_svelte.md +25 -1
- package/docs/hi/intlayer_with_astro_vue.md +25 -1
- package/docs/hi/intlayer_with_remix_3.md +22 -1
- package/docs/hi/self_hosting.md +409 -235
- package/docs/id/benchmark/nextjs.md +19 -16
- package/docs/id/benchmark/solid.md +26 -9
- package/docs/id/benchmark/svelte.md +22 -7
- package/docs/id/benchmark/tanstack.md +20 -16
- package/docs/id/benchmark/vue.md +20 -11
- package/docs/id/chrome_extension.md +130 -0
- package/docs/id/cli/index.md +11 -1
- package/docs/id/cli/infra.md +162 -0
- package/docs/id/cli/init.md +24 -1
- package/docs/id/cli/upgrade.md +125 -0
- package/docs/id/dictionary/html.md +173 -5
- package/docs/id/dictionary/markdown.md +263 -1
- package/docs/id/intlayer_with_analog.md +23 -1
- package/docs/id/intlayer_with_angular_19.md +24 -1
- package/docs/id/intlayer_with_angular_21.md +24 -1
- package/docs/id/intlayer_with_astro.md +24 -1
- package/docs/id/intlayer_with_astro_lit.md +25 -1
- package/docs/id/intlayer_with_astro_preact.md +26 -1
- package/docs/id/intlayer_with_astro_react.md +26 -1
- package/docs/id/intlayer_with_astro_solid.md +26 -1
- package/docs/id/intlayer_with_astro_svelte.md +25 -1
- package/docs/id/intlayer_with_astro_vue.md +25 -1
- package/docs/id/intlayer_with_remix_3.md +22 -1
- package/docs/id/self_hosting.md +416 -243
- package/docs/it/benchmark/nextjs.md +19 -16
- package/docs/it/benchmark/solid.md +26 -9
- package/docs/it/benchmark/svelte.md +22 -7
- package/docs/it/benchmark/tanstack.md +20 -16
- package/docs/it/benchmark/vue.md +19 -10
- package/docs/it/chrome_extension.md +130 -0
- package/docs/it/cli/index.md +11 -1
- package/docs/it/cli/infra.md +162 -0
- package/docs/it/cli/init.md +24 -1
- package/docs/it/cli/upgrade.md +125 -0
- package/docs/it/dictionary/html.md +173 -5
- package/docs/it/dictionary/markdown.md +263 -1
- package/docs/it/intlayer_with_analog.md +23 -1
- package/docs/it/intlayer_with_angular_19.md +24 -1
- package/docs/it/intlayer_with_angular_21.md +24 -1
- package/docs/it/intlayer_with_astro.md +24 -1
- package/docs/it/intlayer_with_astro_lit.md +25 -1
- package/docs/it/intlayer_with_astro_preact.md +26 -1
- package/docs/it/intlayer_with_astro_react.md +26 -1
- package/docs/it/intlayer_with_astro_solid.md +26 -1
- package/docs/it/intlayer_with_astro_svelte.md +25 -1
- package/docs/it/intlayer_with_astro_vue.md +25 -1
- package/docs/it/intlayer_with_remix_3.md +22 -1
- package/docs/it/self_hosting.md +412 -237
- package/docs/ja/benchmark/nextjs.md +19 -16
- package/docs/ja/benchmark/solid.md +26 -9
- package/docs/ja/benchmark/svelte.md +22 -7
- package/docs/ja/benchmark/tanstack.md +18 -14
- package/docs/ja/benchmark/vue.md +19 -10
- package/docs/ja/chrome_extension.md +130 -0
- package/docs/ja/cli/index.md +11 -1
- package/docs/ja/cli/infra.md +162 -0
- package/docs/ja/cli/init.md +24 -1
- package/docs/ja/cli/upgrade.md +125 -0
- package/docs/ja/dictionary/html.md +173 -5
- package/docs/ja/dictionary/markdown.md +263 -1
- package/docs/ja/intlayer_with_analog.md +23 -1
- package/docs/ja/intlayer_with_angular_19.md +24 -1
- package/docs/ja/intlayer_with_angular_21.md +24 -1
- package/docs/ja/intlayer_with_astro.md +24 -1
- package/docs/ja/intlayer_with_astro_lit.md +25 -1
- package/docs/ja/intlayer_with_astro_preact.md +26 -1
- package/docs/ja/intlayer_with_astro_react.md +26 -1
- package/docs/ja/intlayer_with_astro_solid.md +26 -1
- package/docs/ja/intlayer_with_astro_svelte.md +25 -1
- package/docs/ja/intlayer_with_astro_vue.md +25 -1
- package/docs/ja/intlayer_with_remix_3.md +22 -1
- package/docs/ja/self_hosting.md +398 -223
- package/docs/ko/benchmark/nextjs.md +19 -16
- package/docs/ko/benchmark/solid.md +26 -9
- package/docs/ko/benchmark/svelte.md +22 -7
- package/docs/ko/benchmark/tanstack.md +20 -16
- package/docs/ko/benchmark/vue.md +20 -11
- package/docs/ko/chrome_extension.md +130 -0
- package/docs/ko/cli/index.md +11 -1
- package/docs/ko/cli/infra.md +162 -0
- package/docs/ko/cli/init.md +24 -1
- package/docs/ko/cli/upgrade.md +126 -0
- package/docs/ko/dictionary/html.md +173 -5
- package/docs/ko/dictionary/markdown.md +263 -1
- package/docs/ko/intlayer_with_analog.md +23 -1
- package/docs/ko/intlayer_with_angular_19.md +24 -1
- package/docs/ko/intlayer_with_angular_21.md +24 -1
- package/docs/ko/intlayer_with_astro.md +24 -1
- package/docs/ko/intlayer_with_astro_lit.md +25 -1
- package/docs/ko/intlayer_with_astro_preact.md +26 -1
- package/docs/ko/intlayer_with_astro_react.md +26 -1
- package/docs/ko/intlayer_with_astro_solid.md +26 -1
- package/docs/ko/intlayer_with_astro_svelte.md +25 -1
- package/docs/ko/intlayer_with_astro_vue.md +25 -1
- package/docs/ko/intlayer_with_remix_3.md +22 -1
- package/docs/ko/self_hosting.md +411 -238
- package/docs/pl/benchmark/nextjs.md +19 -16
- package/docs/pl/benchmark/solid.md +26 -9
- package/docs/pl/benchmark/svelte.md +22 -7
- package/docs/pl/benchmark/tanstack.md +20 -16
- package/docs/pl/benchmark/vue.md +20 -11
- package/docs/pl/chrome_extension.md +130 -0
- package/docs/pl/cli/index.md +11 -1
- package/docs/pl/cli/infra.md +162 -0
- package/docs/pl/cli/init.md +24 -1
- package/docs/pl/cli/upgrade.md +125 -0
- package/docs/pl/dictionary/html.md +173 -5
- package/docs/pl/dictionary/markdown.md +263 -1
- package/docs/pl/intlayer_with_analog.md +23 -1
- package/docs/pl/intlayer_with_angular_19.md +24 -1
- package/docs/pl/intlayer_with_angular_21.md +24 -1
- package/docs/pl/intlayer_with_astro.md +24 -1
- package/docs/pl/intlayer_with_astro_lit.md +25 -1
- package/docs/pl/intlayer_with_astro_preact.md +26 -1
- package/docs/pl/intlayer_with_astro_react.md +26 -1
- package/docs/pl/intlayer_with_astro_solid.md +26 -1
- package/docs/pl/intlayer_with_astro_svelte.md +25 -1
- package/docs/pl/intlayer_with_astro_vue.md +25 -1
- package/docs/pl/intlayer_with_remix_3.md +22 -1
- package/docs/pl/self_hosting.md +408 -233
- package/docs/pt/benchmark/nextjs.md +19 -16
- package/docs/pt/benchmark/solid.md +26 -9
- package/docs/pt/benchmark/svelte.md +22 -7
- package/docs/pt/benchmark/tanstack.md +20 -16
- package/docs/pt/benchmark/vue.md +19 -10
- package/docs/pt/chrome_extension.md +130 -0
- package/docs/pt/cli/index.md +11 -1
- package/docs/pt/cli/infra.md +162 -0
- package/docs/pt/cli/init.md +24 -1
- package/docs/pt/cli/upgrade.md +125 -0
- package/docs/pt/dictionary/html.md +173 -5
- package/docs/pt/dictionary/markdown.md +263 -1
- package/docs/pt/intlayer_with_analog.md +23 -1
- package/docs/pt/intlayer_with_angular_19.md +24 -1
- package/docs/pt/intlayer_with_angular_21.md +24 -1
- package/docs/pt/intlayer_with_astro.md +24 -1
- package/docs/pt/intlayer_with_astro_lit.md +25 -1
- package/docs/pt/intlayer_with_astro_preact.md +26 -1
- package/docs/pt/intlayer_with_astro_react.md +26 -1
- package/docs/pt/intlayer_with_astro_solid.md +26 -1
- package/docs/pt/intlayer_with_astro_svelte.md +25 -1
- package/docs/pt/intlayer_with_astro_vue.md +25 -1
- package/docs/pt/intlayer_with_remix_3.md +22 -1
- package/docs/pt/self_hosting.md +399 -224
- package/docs/ru/benchmark/nextjs.md +19 -16
- package/docs/ru/benchmark/solid.md +26 -9
- package/docs/ru/benchmark/svelte.md +22 -7
- package/docs/ru/benchmark/tanstack.md +20 -16
- package/docs/ru/benchmark/vue.md +20 -11
- package/docs/ru/chrome_extension.md +130 -0
- package/docs/ru/cli/index.md +11 -1
- package/docs/ru/cli/infra.md +162 -0
- package/docs/ru/cli/init.md +24 -1
- package/docs/ru/cli/upgrade.md +125 -0
- package/docs/ru/dictionary/html.md +173 -5
- package/docs/ru/dictionary/markdown.md +263 -1
- package/docs/ru/intlayer_with_analog.md +23 -1
- package/docs/ru/intlayer_with_angular_19.md +24 -1
- package/docs/ru/intlayer_with_angular_21.md +24 -1
- package/docs/ru/intlayer_with_astro.md +24 -1
- package/docs/ru/intlayer_with_astro_lit.md +25 -1
- package/docs/ru/intlayer_with_astro_preact.md +26 -1
- package/docs/ru/intlayer_with_astro_react.md +26 -1
- package/docs/ru/intlayer_with_astro_solid.md +26 -1
- package/docs/ru/intlayer_with_astro_svelte.md +25 -1
- package/docs/ru/intlayer_with_astro_vue.md +25 -1
- package/docs/ru/intlayer_with_remix_3.md +22 -1
- package/docs/ru/self_hosting.md +403 -228
- package/docs/tr/benchmark/nextjs.md +19 -16
- package/docs/tr/benchmark/solid.md +26 -9
- package/docs/tr/benchmark/svelte.md +22 -7
- package/docs/tr/benchmark/tanstack.md +20 -16
- package/docs/tr/benchmark/vue.md +20 -11
- package/docs/tr/chrome_extension.md +130 -0
- package/docs/tr/cli/index.md +11 -1
- package/docs/tr/cli/infra.md +162 -0
- package/docs/tr/cli/init.md +24 -1
- package/docs/tr/cli/upgrade.md +125 -0
- package/docs/tr/dictionary/html.md +173 -5
- package/docs/tr/dictionary/markdown.md +263 -1
- package/docs/tr/intlayer_with_analog.md +23 -1
- package/docs/tr/intlayer_with_angular_19.md +24 -1
- package/docs/tr/intlayer_with_angular_21.md +24 -1
- package/docs/tr/intlayer_with_astro.md +24 -1
- package/docs/tr/intlayer_with_astro_lit.md +25 -1
- package/docs/tr/intlayer_with_astro_preact.md +26 -1
- package/docs/tr/intlayer_with_astro_react.md +26 -1
- package/docs/tr/intlayer_with_astro_solid.md +26 -1
- package/docs/tr/intlayer_with_astro_svelte.md +25 -1
- package/docs/tr/intlayer_with_astro_vue.md +25 -1
- package/docs/tr/intlayer_with_remix_3.md +22 -1
- package/docs/tr/self_hosting.md +410 -234
- package/docs/uk/benchmark/nextjs.md +19 -16
- package/docs/uk/benchmark/solid.md +26 -9
- package/docs/uk/benchmark/svelte.md +22 -7
- package/docs/uk/benchmark/tanstack.md +20 -16
- package/docs/uk/benchmark/vue.md +20 -11
- package/docs/uk/chrome_extension.md +130 -0
- package/docs/uk/cli/index.md +11 -1
- package/docs/uk/cli/infra.md +162 -0
- package/docs/uk/cli/init.md +24 -1
- package/docs/uk/cli/upgrade.md +125 -0
- package/docs/uk/dictionary/html.md +173 -5
- package/docs/uk/dictionary/markdown.md +263 -1
- package/docs/uk/intlayer_with_analog.md +23 -1
- package/docs/uk/intlayer_with_angular_19.md +24 -1
- package/docs/uk/intlayer_with_angular_21.md +24 -1
- package/docs/uk/intlayer_with_astro.md +24 -1
- package/docs/uk/intlayer_with_astro_lit.md +25 -1
- package/docs/uk/intlayer_with_astro_preact.md +26 -1
- package/docs/uk/intlayer_with_astro_react.md +26 -1
- package/docs/uk/intlayer_with_astro_solid.md +26 -1
- package/docs/uk/intlayer_with_astro_svelte.md +25 -1
- package/docs/uk/intlayer_with_astro_vue.md +25 -1
- package/docs/uk/intlayer_with_remix_3.md +22 -1
- package/docs/uk/self_hosting.md +413 -238
- package/docs/vi/benchmark/nextjs.md +19 -16
- package/docs/vi/benchmark/solid.md +26 -9
- package/docs/vi/benchmark/svelte.md +22 -7
- package/docs/vi/benchmark/tanstack.md +20 -16
- package/docs/vi/benchmark/vue.md +20 -11
- package/docs/vi/chrome_extension.md +130 -0
- package/docs/vi/cli/index.md +11 -1
- package/docs/vi/cli/infra.md +162 -0
- package/docs/vi/cli/init.md +24 -1
- package/docs/vi/cli/upgrade.md +125 -0
- package/docs/vi/dictionary/html.md +173 -5
- package/docs/vi/dictionary/markdown.md +263 -1
- package/docs/vi/intlayer_with_analog.md +23 -1
- package/docs/vi/intlayer_with_angular_19.md +24 -1
- package/docs/vi/intlayer_with_angular_21.md +24 -1
- package/docs/vi/intlayer_with_astro.md +24 -1
- package/docs/vi/intlayer_with_astro_lit.md +25 -1
- package/docs/vi/intlayer_with_astro_preact.md +26 -1
- package/docs/vi/intlayer_with_astro_react.md +26 -1
- package/docs/vi/intlayer_with_astro_solid.md +26 -1
- package/docs/vi/intlayer_with_astro_svelte.md +25 -1
- package/docs/vi/intlayer_with_astro_vue.md +25 -1
- package/docs/vi/intlayer_with_remix_3.md +22 -1
- package/docs/vi/self_hosting.md +408 -234
- package/docs/zh/benchmark/nextjs.md +19 -16
- package/docs/zh/benchmark/solid.md +26 -9
- package/docs/zh/benchmark/svelte.md +22 -7
- package/docs/zh/benchmark/tanstack.md +19 -15
- package/docs/zh/benchmark/vue.md +20 -11
- package/docs/zh/chrome_extension.md +130 -0
- package/docs/zh/cli/index.md +11 -1
- package/docs/zh/cli/infra.md +162 -0
- package/docs/zh/cli/init.md +24 -1
- package/docs/zh/cli/upgrade.md +125 -0
- package/docs/zh/dictionary/html.md +172 -5
- package/docs/zh/dictionary/markdown.md +262 -1
- package/docs/zh/intlayer_with_analog.md +23 -1
- package/docs/zh/intlayer_with_angular_19.md +24 -1
- package/docs/zh/intlayer_with_angular_21.md +24 -1
- package/docs/zh/intlayer_with_astro.md +24 -1
- package/docs/zh/intlayer_with_astro_lit.md +25 -1
- package/docs/zh/intlayer_with_astro_preact.md +26 -1
- package/docs/zh/intlayer_with_astro_react.md +26 -1
- package/docs/zh/intlayer_with_astro_solid.md +26 -1
- package/docs/zh/intlayer_with_astro_svelte.md +25 -1
- package/docs/zh/intlayer_with_astro_vue.md +25 -1
- package/docs/zh/intlayer_with_remix_3.md +22 -1
- package/docs/zh/self_hosting.md +410 -237
- package/legal/ar/privacy_notice.md +9 -3
- package/legal/de/privacy_notice.md +9 -3
- package/legal/en/privacy_notice.md +10 -3
- package/legal/en-GB/privacy_notice.md +9 -3
- package/legal/es/privacy_notice.md +9 -3
- package/legal/fr/privacy_notice.md +9 -3
- package/legal/hi/privacy_notice.md +9 -3
- package/legal/id/privacy_notice.md +9 -3
- package/legal/it/privacy_notice.md +9 -3
- package/legal/ja/privacy_notice.md +9 -3
- package/legal/ko/privacy_notice.md +9 -3
- package/legal/pl/privacy_notice.md +9 -3
- package/legal/pt/privacy_notice.md +9 -3
- package/legal/ru/privacy_notice.md +9 -3
- package/legal/tr/privacy_notice.md +9 -3
- package/legal/uk/privacy_notice.md +9 -3
- package/legal/vi/privacy_notice.md +9 -3
- package/legal/zh/privacy_notice.md +9 -3
- package/package.json +6 -6
- package/src/generated/blog.entry.ts +20 -0
- package/src/generated/docs.entry.ts +60 -40
- package/docs/ar/roadmap.md +0 -321
- package/docs/de/roadmap.md +0 -322
- package/docs/en/intlayer_with_astro_vanilla.md +0 -713
- package/docs/en/roadmap.md +0 -325
- package/docs/en-GB/roadmap.md +0 -322
- package/docs/es/roadmap.md +0 -322
- package/docs/fr/roadmap.md +0 -322
- package/docs/hi/roadmap.md +0 -322
- package/docs/id/roadmap.md +0 -325
- package/docs/it/roadmap.md +0 -322
- package/docs/ja/roadmap.md +0 -322
- package/docs/ko/roadmap.md +0 -322
- package/docs/pl/roadmap.md +0 -325
- package/docs/pt/roadmap.md +0 -322
- package/docs/ru/roadmap.md +0 -322
- package/docs/tr/roadmap.md +0 -325
- package/docs/uk/roadmap.md +0 -325
- package/docs/vi/roadmap.md +0 -325
- package/docs/zh/roadmap.md +0 -322
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: 2026'da Next.js için En İyi i18n Çözümü - Benchmark Raporu
|
|
5
5
|
description: next-intl, next-i18next ve Intlayer gibi Next.js uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Benchmark sonuçları güncellendi"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Benchmark sonuçları güncellendi"
|
|
@@ -112,19 +115,19 @@ Son olarak `Intlayer`, build zamanı (build-time) optimizasyonu uygulayarak `use
|
|
|
112
115
|
Bu benchmark için aşağıdaki kütüphaneleri karşılaştırdık:
|
|
113
116
|
|
|
114
117
|
- `Base App` (i18n kütüphanesi yok)
|
|
115
|
-
- `next-intlayer` (v9.5.
|
|
116
|
-
- [`@intlayer/next-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/next-intl.md) (v9.5.
|
|
117
|
-
- [`@intlayer/next-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/next-i18next.md) (v9.5.
|
|
118
|
-
- `next-i18next` (v16.3.0)
|
|
119
|
-
- `next-intl` (v4.14.2)
|
|
120
|
-
- `@lingui/core` (v6.6.0)
|
|
121
|
-
- `next-translate` (v3.2.0)
|
|
122
|
-
- `next-international` (v1.3.1)
|
|
123
|
-
- `@inlang/paraglide-js` (v2.15.1)
|
|
124
|
-
- `@tolgee/react` (v7.2.0)
|
|
125
|
-
- `@lingo.dev/compiler` (v0.4.12)
|
|
126
|
-
- `wuchale` (v0.26.6)
|
|
127
|
-
- `gt-next` (v11.1.24)
|
|
118
|
+
- [`next-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/next-intlayer/exports.md) (v9.5.6)
|
|
119
|
+
- [`@intlayer/next-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/next-intl.md) (v9.5.6)
|
|
120
|
+
- [`@intlayer/next-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/next-i18next.md) (v9.5.6)
|
|
121
|
+
- [`next-i18next`](https://github.com/i18next/next-i18next) (v16.3.0)
|
|
122
|
+
- [`next-intl`](https://github.com/amannn/next-intl) (v4.14.2)
|
|
123
|
+
- [`@lingui/core`](https://github.com/lingui/js-lingui) (v6.6.0)
|
|
124
|
+
- [`next-translate`](https://github.com/aralroca/next-translate) (v3.2.0)
|
|
125
|
+
- [`next-international`](https://github.com/QuiiBz/next-international) (v1.3.1)
|
|
126
|
+
- [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.15.1)
|
|
127
|
+
- [`@tolgee/react`](https://github.com/tolgee/tolgee-js) (v7.2.0)
|
|
128
|
+
- [`@lingo.dev/compiler`](https://github.com/lingodotdev/lingo.dev) (v0.4.12)
|
|
129
|
+
- [`wuchale`](https://github.com/wuchalejs/wuchale) (v0.26.6)
|
|
130
|
+
- [`gt-next`](https://github.com/generaltranslation/gt) (v11.1.24)
|
|
128
131
|
|
|
129
132
|
Next.js'in `16.3.4` sürümünü App Router ile kullandım.
|
|
130
133
|
|
|
@@ -213,7 +216,7 @@ Son olarak, diğer çözümlerle karşılaştırıldığında Paraglide, içeri
|
|
|
213
216
|
|
|
214
217
|
**(Tolgee)** (`@tolgee/react@7.2.0`):
|
|
215
218
|
|
|
216
|
-
`Tolgee` daha önce bahsedilen sorunların çoğunu ele alıyor. Benzer araçlara göre benimsenmesinin daha zor olduğunu gördüm. Tip güvenliği (type safety) sağlamıyor, bu da eksik anahtarların build zamanında yakalanmasını zorlaştırıyor. Eksik anahtar algılama özelliği eklemek için Tolgee'nin fonksiyonlarını kendi fonksiyonlarımla sarmak zorunda kaldım.
|
|
219
|
+
`Tolgee` daha önce bahsedilen sorunların çoğunu ele alıyor. Benzer araçlara göre benimsenmesinin daha zor olduğunu gördüm. Tip güvenliği (type safety) sağlamıyor, bu da eksik anahtarların build zamanında yakalanmasını zorlaştırıyor. Eksik anahtar algılama özelliği eklemek için Tolgee'nin fonksiyonlarını kendi fonksiyonlarımla sarmak zorunda kaldım. Paket ayrıca nispeten ağırdır (~14.3kb, bu da `next-intlayer` boyutunun yaklaşık 2.8 katıdır).
|
|
217
220
|
|
|
218
221
|
**(Next Intl)** (`next-intl@4.14.2`):
|
|
219
222
|
|
|
@@ -239,7 +242,7 @@ Mesaj formatları da farklıdır: `next-intl` ICU MessageFormat kullanırken, `i
|
|
|
239
242
|
|
|
240
243
|
`t()` stili bir API seviyorsanız `next-translate` ana önerimdir. `next-translate-plugin` aracılığıyla zarif bir şekilde çalışır ve Webpack / Turbopack yükleyicisi ile `getStaticProps` üzerinden ad alanlarını yükler. Ayrıca buradaki en hafif seçeneklerden biridir (~3.5kb). Yapılandırmada sayfa veya rota başına ad alanı tanımlamak iyi düşünülmüştür ve **next-intl** veya **next-i18next** gibi ana alternatiflerden daha kolay bakımı yapılır. `3.1.2` sürümünde statik render'ın çalışmadığını ve Next.js'in dinamik render'a geri döndüğünü fark ettim.
|
|
241
244
|
|
|
242
|
-
**(Intlayer)** (`next-intlayer@9.5.
|
|
245
|
+
**(Intlayer)** (`next-intlayer@9.5.6`):
|
|
243
246
|
|
|
244
247
|
Nesnellik adına kendi çözümüm olan `next-intlayer` hakkında kişisel olarak yorum yapmayacağım.
|
|
245
248
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: 2026'da Solid için En İyi i18n Çözümü - Benchmark Raporu
|
|
5
|
-
description: solid-primitives, solid-i18next ve Intlayer gibi Solid uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
5
|
+
description: solid-primitives, solid-i18next, Tolgee ve Intlayer gibi Solid uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
6
6
|
keywords:
|
|
7
7
|
- benchmark
|
|
8
8
|
- i18n
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-solid-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Benchmark sonuçları güncellendi"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Benchmark sonuçları güncellendi"
|
|
@@ -65,9 +68,10 @@ Diğer etki geliştirici deneyimi (DX) üzerindedir: içeriği nasıl tanımlad
|
|
|
65
68
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
|
-
- **Intlayer**: Gelişmiş özelliklere ve optimizasyona ihtiyaç duyan profesyonel Solid uygulamaları için önerilen seçim (v9.5.
|
|
71
|
+
- **Intlayer**: Gelişmiş özelliklere ve optimizasyona ihtiyaç duyan profesyonel Solid uygulamaları için önerilen seçim (v9.5.6).
|
|
69
72
|
- **@solid-primitives/i18n**: Basit projeler için mükemmel hafif bir alternatif, ancak lazy loading gibi gelişmiş özelliklerden yoksundur.
|
|
70
73
|
- **solid-i18next**: Standart ancak ağır bir seçenek (~3.5x Intlayer), React i18next ile aynı dezavantajlara sahiptir.
|
|
74
|
+
- **Tolgee**: Zengin özellikli çeviri platformu, ancak oldukça ağır (~12.7kb, Intlayer'ın yaklaşık 3.0 katı), yerel Solid primitiflerinden yoksun (@tolgee/web kullanır) ve statik kurulumlarda sayfalar arası belirgin sızıntı gösterir (%90 sayfa sızıntısı).
|
|
71
75
|
- **Paraglide**: Yenilikçi yaklaşım ancak karmaşık DX ve bazı kurulumlarda tree-shaking sorunları.
|
|
72
76
|
|
|
73
77
|
## Uygulamanızı test edin
|
|
@@ -100,10 +104,11 @@ Dinamik yükleme ile bir ödünleşimi kabul edersiniz: daha az başlangıç JS'
|
|
|
100
104
|
Bu benchmark için aşağıdaki kütüphaneleri karşılaştırdık:
|
|
101
105
|
|
|
102
106
|
- `Base App` (i18n kütüphanesi yok)
|
|
103
|
-
- `solid-intlayer` (v9.5.
|
|
104
|
-
- `@solid-primitives/i18n` (v2.2.1)
|
|
105
|
-
- `i18next` (v26.0.8) + `@mbarzda/solid-i18next` (v1.4.1)
|
|
106
|
-
- `@
|
|
107
|
+
- [`solid-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/solid-intlayer/exports.md) (v9.5.6)
|
|
108
|
+
- [`@solid-primitives/i18n`](https://github.com/solidjs-community/solid-primitives/tree/main/packages/i18n) (v2.2.1)
|
|
109
|
+
- [`i18next`](https://github.com/i18next/i18next) (v26.0.8) + [`@mbarzda/solid-i18next`](https://github.com/mbarzda/solid-i18next) (v1.4.1)
|
|
110
|
+
- [`@tolgee/web`](https://github.com/tolgee/tolgee-js) (v7.2.0)
|
|
111
|
+
- [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
|
|
107
112
|
|
|
108
113
|
Framework, **10 sayfa** ve **10 dilden** oluşan çok dilli bir uygulamaya sahip `Solid`'dir.
|
|
109
114
|
|
|
@@ -147,7 +152,7 @@ Aynı çok dilli uygulamayı her stack için gerçek bir tarayıcıda çalışt
|
|
|
147
152
|
|
|
148
153
|
GitHub yıldızları, bir projenin popülerliğinin, topluluk güveninin ve uzun vadeli alakasının güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve benimseme olasılığını yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekişi karşılaştırmaya yardımcı olur ve ekosistem büyümesi hakkında içgörüler sağlar.
|
|
149
154
|
|
|
150
|
-
[](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&aymericzip/intlayer)
|
|
155
|
+
[](https://star-history.com/#solidjs-community/solid-primitives&mbarzda/solid-i18next&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
|
|
151
156
|
|
|
152
157
|
## Detaylı sonuçlar
|
|
153
158
|
|
|
@@ -170,6 +175,18 @@ Yine de, `t('a.b.c')` üzerine kurulu yığınlarla aynı ana dezavantajları pa
|
|
|
170
175
|
Solid primitive son derece hafif ve verimlidir. Bu çözümü hafif projeler için öneriyorum, ancak çerez yönetimi, proxy yönlendirme, formatlayıcılar vb. dahil profesyonel çözümler için özellikleri hızla yetersiz kalabilir.
|
|
171
176
|
Ayrıca sayfa boyutu optimizasyonu için lazy loading ve kapsamlı namespace özellikleri de eksiktir.
|
|
172
177
|
|
|
178
|
+
**(Tolgee)** (`@tolgee/web@7.2.0`):
|
|
179
|
+
|
|
180
|
+
`Tolgee`, bağlam içi (in-context) düzenleme özelliklerine sahip kapsamlı bir çeviri yönetim platformu sunar.
|
|
181
|
+
|
|
182
|
+
Solid üzerinde şu anda resmi bir yerel bağdaştırıcı (`@tolgee/solid` gibi) bulunmamaktadır; bu nedenle geliştiricilerin özel sinyallerle `@tolgee/web` üzerinden entegrasyon yapması gerekir.
|
|
183
|
+
|
|
184
|
+
Paket oldukça ağırdır (~12.7kb, `solid-intlayer`'ın yaklaşık 3.0 katı).
|
|
185
|
+
|
|
186
|
+
Solid'de sayfa başına ayrıntılı bölme mekanizması olmadan, statik kurulumlarda tüm çeviriler başlangıçta belleğe yüklenir. Bu durum yüksek paket sızıntısına (%44.5 dil sızıntısı, %90.0 sayfa sızıntısı) ve ortalama ~91.8kb sayfa paketi boyutuna yol açar (Intlayer için ~35.8kb).
|
|
187
|
+
|
|
188
|
+
Dil değiştirme reaktivitesi son derece hızlıdır (0.6ms), Solid'in hassas reaktivitesine tam uyum sağlar; ancak hidrasyon ek yükü biraz daha yüksektir (Intlayer için ~3.0ms iken ~5.6ms).
|
|
189
|
+
|
|
173
190
|
**(Paraglide)** (`@inlang/paraglide-js@2.25.1`):
|
|
174
191
|
|
|
175
192
|
`Paraglide` yenilikçi ve iyi düşünülmüş bir yaklaşım sunuyor. Buna rağmen, bu benchmark'ta şirketlerinin reklamını yaptığı tree-shaking benim uygulamam için çalışmadı. İş akışı ve DX de diğer seçeneklerden daha karmaşıktır.
|
|
@@ -178,7 +195,7 @@ Son olarak, diğer çözümlerle karşılaştırıldığında Paraglide, içeri
|
|
|
178
195
|
|
|
179
196
|
### 3 - Öneriler
|
|
180
197
|
|
|
181
|
-
**(Intlayer)** (`solid-intlayer@9.5.
|
|
198
|
+
**(Intlayer)** (`solid-intlayer@9.5.6`):
|
|
182
199
|
|
|
183
200
|
Kendi çözümüm olduğu için tarafsızlık adına `solid-intlayer`'ı kişisel olarak yargılamayacağım.
|
|
184
201
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: 2026'da Svelte için En İyi i18n Çözümü - Benchmark Raporu
|
|
5
|
-
description: svelte-i18n, Paraglide ve Intlayer gibi Svelte uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
5
|
+
description: svelte-i18n, Paraglide, Tolgee ve Intlayer gibi Svelte uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
6
6
|
keywords:
|
|
7
7
|
- benchmark
|
|
8
8
|
- i18n
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-svelte-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Update benchmark results"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Benchmark sonuçları güncellendi"
|
|
@@ -65,8 +68,9 @@ Diğer etki geliştirici deneyimi (DX) üzerindedir: içeriği nasıl tanımlad
|
|
|
65
68
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
|
-
- **Intlayer**: En küçük ayak izine sahip en performans odaklı seçim (v9.5.
|
|
71
|
+
- **Intlayer**: En küçük ayak izine sahip en performans odaklı seçim (v9.5.6).
|
|
69
72
|
- **Paraglide**: Tree-shaking için güçlü bir rakip ancak daha karmaşık bir geliştirici deneyimine ve reaktivite yüküne sahip.
|
|
73
|
+
- **Tolgee**: Bağlam içi düzenleme özelliklerine sahip zengin özellikli çeviri platformu, ancak oldukça ağır (~13.0kb, Intlayer'ın yaklaşık 3.6 katı) ve statik kurulumlarda sayfalar arası belirgin sızıntı gösterir (%90 sayfa sızıntısı).
|
|
70
74
|
- **svelte-i18n**: Svelte için kapsamlı ve standart, ancak çok daha büyük paket ağırlığı taşıyor (~4.5x Intlayer).
|
|
71
75
|
|
|
72
76
|
## Uygulamanızı test edin
|
|
@@ -99,9 +103,10 @@ Dinamik yükleme ile bir ödünleşimi kabul edersiniz: daha az başlangıç JS'
|
|
|
99
103
|
Bu benchmark için aşağıdaki kütüphaneleri karşılaştırdık:
|
|
100
104
|
|
|
101
105
|
- `Base App` (i18n kütüphanesi yok)
|
|
102
|
-
- `svelte-intlayer` (v9.5.
|
|
103
|
-
- `svelte-i18n` (v4.0.1)
|
|
104
|
-
- `@
|
|
106
|
+
- [`svelte-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/svelte-intlayer/exports.md) (v9.5.6)
|
|
107
|
+
- [`svelte-i18n`](https://github.com/kaisermann/svelte-i18n) (v4.0.1)
|
|
108
|
+
- [`@tolgee/svelte`](https://github.com/tolgee/tolgee-js) (v7.2.1)
|
|
109
|
+
- [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.25.1)
|
|
105
110
|
|
|
106
111
|
Framework, **10 sayfa** ve **10 dilden** oluşan çok dilli bir uygulamaya sahip `Svelte`'dir.
|
|
107
112
|
|
|
@@ -145,7 +150,7 @@ Aynı çok dilli uygulamayı her stack için gerçek bir tarayıcıda çalışt
|
|
|
145
150
|
|
|
146
151
|
GitHub yıldızları, bir projenin popülerliğinin, topluluk güveninin ve uzun vadeli alakasının güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve benimseme olasılığını yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekişi karşılaştırmaya yardımcı olur ve ekosistem büyümesi hakkında içgörüler sağlar.
|
|
147
152
|
|
|
148
|
-
[](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&aymericzip/intlayer)
|
|
153
|
+
[](https://star-history.com/#kaisermann/svelte-i18n&opral/paraglide-js&tolgee/tolgee-js&aymericzip/intlayer)
|
|
149
154
|
|
|
150
155
|
## Detaylı sonuçlar
|
|
151
156
|
|
|
@@ -165,6 +170,16 @@ Son olarak, diğer çözümlerle karşılaştırıldığında Paraglide, içeri
|
|
|
165
170
|
|
|
166
171
|
> Paraglide üzerine not: çözüm, importlar için kod tabanınıza kod enjekte eder; sonuç olarak, benchmark raporundaki 'lib size' metriği neredeyse 0'dır. Kod üretimi iyi bir şeydir, çünkü kullanılan fonksiyon yalnızca gerekli mantığı (her yerde ön ek vs ön ek yok, çerez vs depolama vb.) içerecektir. Karşılaştırma yapıldığında, Intlayer bu filtrelemeyi mantığa bağlı olarak içeriği tree-shaking yapmaya zorlamak için build sırasında ortam değişkeni enjeksiyonları yoluyla gerçekleştirir. Bu sayede paraglide ve intlayer i18next veya next-intl'den 6 ila 10 kat daha hafif çözümler haline gelir.
|
|
167
172
|
|
|
173
|
+
**(Tolgee)** (`@tolgee/svelte@7.2.1`):
|
|
174
|
+
|
|
175
|
+
`Tolgee`, bağlam içi (in-context) düzenleme ve `@tolgee/svelte` aracılığıyla resmi Svelte entegrasyonu sunan hepsi bir arada bir yerelleştirme platformudur.
|
|
176
|
+
|
|
177
|
+
Paket oldukça ağırdır (~13.0kb, `svelte-intlayer`'ın yaklaşık 3.6 katı).
|
|
178
|
+
|
|
179
|
+
Svelte'te sayfa başına ayrıntılı bölme mekanizması olmadan, statik kurulumlarda tüm çeviriler başlangıçta belleğe yüklenir. Bu durum yüksek paket sızıntısına (%50.0 dil sızıntısı, %90.0 sayfa sızıntısı) ve ortalama ~100.7kb sayfa paketi boyutuna yol açar (Intlayer için ~59.0kb).
|
|
180
|
+
|
|
181
|
+
Dil değiştirme reaktivitesi son derece hızlıdır (0.5ms), Svelte'in reaktif depolarından yararlanır; ancak hidrasyon ek yükü biraz daha yüksektir (Intlayer için ~5.5ms iken ~6.2ms).
|
|
182
|
+
|
|
168
183
|
**(svelte-i18n)** (`svelte-i18n@4.0.1`):
|
|
169
184
|
|
|
170
185
|
Bu çözüm, bir Svelte projesindeki tüm i18n ihtiyaçlarını karşılar. Ancak i18next veya diğer büyük i18n çözümlerinde olduğu gibi, biraz ağırdır (~16.6kb, bu da `svelte-intlayer`'ın yaklaşık 4.5 katıdır).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: 2026'da TanStack Start için En İyi i18n Çözümü - Benchmark Raporu
|
|
5
5
|
description: react-i18next, use-intl ve Intlayer gibi TanStack Start uluslararasılaştırma kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-tanstack-start-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Benchmark sonuçları güncellendi"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Benchmark sonuçları güncellendi"
|
|
@@ -65,7 +68,7 @@ Diğer bir etki ise geliştirici deneyimidir (DX): içeriği nasıl tanımladı
|
|
|
65
68
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
|
-
- **Intlayer**: TanStack Start için en iyi performansı ve en küçük bundle boyutunu (v9.5.
|
|
71
|
+
- **Intlayer**: TanStack Start için en iyi performansı ve en küçük bundle boyutunu (v9.5.6) sağlar.
|
|
69
72
|
- **react-i18next** & **use-intl**: Geniş ekosistemlere sahip olgun alternatiflerdir, ancak optimize edilmeleri önemli ölçüde daha ağır ve karmaşıktır.
|
|
70
73
|
- **Paraglide**: Kağıt üzerinde yenilikçi bir tree-shaking fikridir ancak pratikte çalışmaz. TanStack Start'ta karmaşık DX ve reaktivite ek yükü oluşturur.
|
|
71
74
|
- **Kaçının**: Ciddi performans sorunları, AI kota sınırları ve satıcı kilidi (vendor lock-in) nedeniyle **General Translation (GT)** ve **Lingo.dev**.
|
|
@@ -100,18 +103,19 @@ Dinamik yükleme ile bir ödün vermeyi kabul edersiniz: daha az başlangıç JS
|
|
|
100
103
|
Bu benchmark için aşağıdaki kütüphaneleri karşılaştırdık:
|
|
101
104
|
|
|
102
105
|
- `Base App` (i18n kütüphanesi yok)
|
|
103
|
-
- `react-intlayer` (v9.5.
|
|
104
|
-
- `@intlayer/use-intl` (v9.5.
|
|
105
|
-
- [`@intlayer/lingui`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/lingui.md) (v9.5.
|
|
106
|
-
- `react-i18next
|
|
107
|
-
- `
|
|
108
|
-
-
|
|
109
|
-
- `@
|
|
110
|
-
- `@
|
|
111
|
-
- `
|
|
112
|
-
- `
|
|
113
|
-
- `
|
|
114
|
-
- `
|
|
106
|
+
- [`react-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/react-intlayer/exports.md) (v9.5.6)
|
|
107
|
+
- [`@intlayer/use-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/next-intl.md) (v9.5.6)
|
|
108
|
+
- [`@intlayer/lingui`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/lingui.md) (v9.5.6)
|
|
109
|
+
- [`@intlayer/react-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/react-i18next.md) (v9.5.6)
|
|
110
|
+
- [`react-i18next`](https://github.com/i18next/react-i18next) (v17.0.13)
|
|
111
|
+
- [`use-intl`](https://github.com/amannn/next-intl/tree/main/packages/use-intl) (v4.14.2)
|
|
112
|
+
- [`@lingui/core`](https://github.com/lingui/js-lingui) (v6.6.0)
|
|
113
|
+
- [`@inlang/paraglide-js`](https://github.com/opral/paraglide-js) (v2.15.1)
|
|
114
|
+
- [`@tolgee/react`](https://github.com/tolgee/tolgee-js) (v7.2.0)
|
|
115
|
+
- [`react-intl`](https://github.com/formatjs/formatjs) (v10.1.26)
|
|
116
|
+
- [`wuchale`](https://github.com/wuchalejs/wuchale) (v0.26.6)
|
|
117
|
+
- [`gt-react`](https://github.com/generaltranslation/gt) (v10.18.3)
|
|
118
|
+
- [`lingo.dev`](https://github.com/lingodotdev/lingo.dev) (v0.138.7)
|
|
115
119
|
|
|
116
120
|
Framework, **10 sayfa** ve **10 dilden** oluşan çok dilli bir uygulamaya sahip `TanStack Start`tır.
|
|
117
121
|
|
|
@@ -199,7 +203,7 @@ Karşılaşılan sorunlar:
|
|
|
199
203
|
|
|
200
204
|
`Tolgee` daha önce bahsedilen sorunların çoğunu ele alıyor. Benzer yaklaşımlara sahip diğer araçlara göre başlamasının daha zor olduğunu gördüm. Tip güvenliği sağlamıyor, bu da eksik anahtarların build zamanında yakalanmasını çok zorlaştırıyor. Eksik anahtar algılama özelliği eklemek için Tolgee'nin API'larını kendi API'larımla sarmak zorunda kaldım.
|
|
201
205
|
|
|
202
|
-
Package oldukça ağır (~
|
|
206
|
+
Package oldukça ağır (~13.8 kb, bu `react-intlayer`'ın 2× katından fazladır).
|
|
203
207
|
|
|
204
208
|
TanStack Start üzerinde de reaktivite problemlerim oldu: yerel ayar değiştiğinde, sağlayıcıyı yeniden render etmeye zorlamam ve yerel ayar değişikliği olaylarına abone olmam gerekiyordu, böylece başka bir dildeki yükleme düzgün davrandı.
|
|
205
209
|
|
|
@@ -233,7 +237,7 @@ Paket ayrıca ağırdır (~15.3kb, bu yaklaşık 3× `react-intlayer`).
|
|
|
233
237
|
|
|
234
238
|
Bu TanStack Start benchmark'ının `next-translate` (Next.js eklentisi + `getStaticProps`) için doğrudan bir karşılığı yoktur. Gerçekten olgun bir ekosisteme sahip bir `t()` API'si isteyen ekipler için `react-i18next` ve `use-intl` "makul" seçenekler olmaya devam ediyor, ancak sızıntıyı önlemek için optimizasyon yapmaya çok zaman ayırmaya hazırlıklı olun.
|
|
235
239
|
|
|
236
|
-
**(Intlayer)** (`react-intlayer@9.5.
|
|
240
|
+
**(Intlayer)** (`react-intlayer@9.5.6`):
|
|
237
241
|
|
|
238
242
|
Nesnellik adına kendi çözümüm olan `react-intlayer` hakkında kişisel olarak yorum yapmayacağım.
|
|
239
243
|
|
package/docs/tr/benchmark/vue.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: 2026'da Vue için En İyi i18n Çözümü - Benchmark Raporu
|
|
5
|
-
description: vue-i18n, fluent-vue ve Intlayer gibi Vue uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
5
|
+
description: vue-i18n, fluent-vue, Tolgee ve Intlayer gibi Vue uluslararasılaştırma (i18n) kütüphanelerini karşılaştırın. Bundle boyutu, sızıntı ve reaktivite üzerine ayrıntılı performans raporu.
|
|
6
6
|
keywords:
|
|
7
7
|
- benchmark
|
|
8
8
|
- i18n
|
|
@@ -17,6 +17,9 @@ slugs:
|
|
|
17
17
|
author: aymericzip
|
|
18
18
|
applicationTemplate: https://github.com/intlayer-org/benchmark-i18n-vue-template
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.7
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "Benchmark sonuçları güncellendi ve Tolgee eklendi"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "Benchmark sonuçları güncellendi"
|
|
@@ -65,7 +68,8 @@ Diğer etki geliştirici deneyimi (DX) üzerindedir: içeriği nasıl tanımlad
|
|
|
65
68
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
|
-
- **Intlayer**: Yerel kapsam (scoping) ve dinamik yükleme ile en hafif çözüm (v9.5.
|
|
71
|
+
- **Intlayer**: Yerel kapsam (scoping) ve dinamik yükleme ile en hafif çözüm (v9.5.6).
|
|
72
|
+
- **Tolgee**: Dinamik modda sıfır sızıntı ile etkili dinamik yükleme, ancak daha ağır (~3.7× Intlayer) ve derleme zamanında yerleşik tip güvenliğinden yoksundur.
|
|
69
73
|
- **vue-i18n**: Zengin bir ekosisteme sahip endüstri standardı, ancak büyük uygulamalarda önemli ölçüde ağırlaşabilir ve kod bölme (code-splitting) için optimize edilmesi zor olabilir.
|
|
70
74
|
- **fluent-vue**: Yenilikçi mesaj organizasyonu ancak tip güvenliğinden yoksundur ve son derece ağır bir çözüm olduğu ortaya çıkmıştır.
|
|
71
75
|
|
|
@@ -99,10 +103,11 @@ Dinamik yükleme ile bir ödünleşimi kabul edersiniz: daha az başlangıç JS'
|
|
|
99
103
|
Bu benchmark için aşağıdaki kütüphaneleri karşılaştırdık:
|
|
100
104
|
|
|
101
105
|
- `Base App` (i18n kütüphanesi yok)
|
|
102
|
-
- `vue-intlayer` (v9.5.
|
|
103
|
-
- [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/vue-i18n.md) (v9.5.
|
|
104
|
-
- `vue-i18n` (v11.4.0)
|
|
105
|
-
- `fluent-vue` (v3.8.2)
|
|
106
|
+
- [`vue-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/packages/vue-intlayer/exports.md) (v9.5.6)
|
|
107
|
+
- [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compat/vue-i18n.md) (v9.5.6)
|
|
108
|
+
- [`vue-i18n`](https://github.com/intlify/vue-i18n) (v11.4.0)
|
|
109
|
+
- [`fluent-vue`](https://github.com/fluent-vue/fluent-vue) (v3.8.2)
|
|
110
|
+
- [`@tolgee/vue`](https://github.com/tolgee/tolgee-js) (v7.2.0)
|
|
106
111
|
|
|
107
112
|
Framework, **10 sayfa** ve **10 dilden** oluşan çok dilli bir uygulamaya sahip `Vue`'dur.
|
|
108
113
|
|
|
@@ -146,7 +151,7 @@ Her yığın için gerçek bir tarayıcıda aynı çok dilli uygulamayı çalı
|
|
|
146
151
|
|
|
147
152
|
GitHub yıldızları, bir projenin popülerliğinin, topluluk güveninin ve uzun vadeli alakasının güçlü bir göstergesidir. Teknik kalitenin doğrudan bir ölçüsü olmasa da, kaç geliştiricinin projeyi yararlı bulduğunu, ilerlemesini takip ettiğini ve benimseme olasılığını yansıtır. Bir projenin değerini tahmin etmek için yıldızlar, alternatifler arasındaki çekişi karşılaştırmaya yardımcı olur ve ekosistem büyümesi hakkında içgörüler sağlar.
|
|
148
153
|
|
|
149
|
-
[](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&aymericzip/intlayer)
|
|
154
|
+
[](https://star-history.com/#intlify/vue-i18n&fluent-vue/fluent-vue&tolgee/tolgee-js&aymericzip/intlayer)
|
|
150
155
|
|
|
151
156
|
## Detaylı sonuçlar
|
|
152
157
|
|
|
@@ -156,18 +161,22 @@ GitHub yıldızları, bir projenin popülerliğinin, topluluk güveninin ve uzun
|
|
|
156
161
|
|
|
157
162
|
### 2 - Kabul edilebilir çözümler
|
|
158
163
|
|
|
164
|
+
**(Tolgee)** (`@tolgee/vue@7.2.0`):
|
|
165
|
+
|
|
166
|
+
`Tolgee`, daha önce bahsedilen sorunların çoğunu ele alarak dil ve sayfa sızıntısını başarıyla ortadan kaldıran dinamik yükleme sunar (sayfa JS boyutunu yaklaşık 58.8kb seviyesine düşürür). Ancak, anahtarlar için derleme zamanında yerleşik tip güvenliği sağlamaz, bu da eksik anahtarların yakalanmasını zorlaştırır. Ayrıca kütüphanenin boyutu nispeten ağırdır (~13.8kb, bu da `vue-intlayer` boyutunun yaklaşık 3.7 katıdır).
|
|
167
|
+
|
|
159
168
|
**(vue-i18n)** (`vue-i18n@11.4.0`):
|
|
160
169
|
|
|
161
170
|
- **vue-i18n** tartışmasız Vue için en çok kullanılan i18n kütüphanesidir, birçok özelliği ve devasa bir ekosistemi vardır. Ancak kaputun altında çözüm oldukça ağırdır. vue-i18n mesajlar için lazy loading entegre etse bile, kapsam (scoping) özelliği eksiktir. Klasik bir Vue SPA uygulaması durumunda sorun yoktur, ancak @nuxt/i18n kullanan bir nuxt uygulaması için, tüm sayfalardan gelen mesajların tek bir sayfaya dahil edilmesine yol açar. 10'dan fazla sayfa içeren büyük bir nuxt uygulaması için bu gerçekten sorunlu olabilir.
|
|
162
171
|
|
|
163
|
-
Paket çok ağırdır (~24.
|
|
172
|
+
Paket çok ağırdır (~24.1 kb, bu da `vue-intlayer`'ın yaklaşık 6.5 katıdır).
|
|
164
173
|
|
|
165
174
|
**(fluent-vue)** (`fluent-vue@3.8.2`):
|
|
166
175
|
|
|
167
|
-
- **fluent-vue** .ftl formatı aracılığıyla yenilikçi bir girişim sunar. Mesaj organizasyonu harikadır, başlaması daha kolaydır. Ancak pratikte tip güvenliği eksikliği hata riskini artırır ve hata ayıklaması hızla zaman alıcı hale gelebilir. Dahası, bu çözüm mesajları her sayfada her dildeki tüm içeriğin yüklenmesini zorlayan bir vite eklentisi kullanarak yükler. Ek olarak, bu son derece ağır bir çözümdür (~29.7kb, bu da `vue-intlayer`'ın yaklaşık
|
|
176
|
+
- **fluent-vue** .ftl formatı aracılığıyla yenilikçi bir girişim sunar. Mesaj organizasyonu harikadır, başlaması daha kolaydır. Ancak pratikte tip güvenliği eksikliği hata riskini artırır ve hata ayıklaması hızla zaman alıcı hale gelebilir. Dahası, bu çözüm mesajları her sayfada her dildeki tüm içeriğin yüklenmesini zorlayan bir vite eklentisi kullanarak yükler. Ek olarak, bu son derece ağır bir çözümdür (~29.7kb, bu da `vue-intlayer`'ın yaklaşık 8 katıdır).
|
|
168
177
|
|
|
169
178
|
### 3 - Öneriler
|
|
170
179
|
|
|
171
|
-
**(Intlayer)** (`vue-intlayer@9.5.
|
|
180
|
+
**(Intlayer)** (`vue-intlayer@9.5.6`):
|
|
172
181
|
|
|
173
182
|
Kendi çözümüm olduğu için tarafsızlık adına `vue-intlayer`'ı kişisel olarak yargılamayacağım.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-22
|
|
3
|
+
updatedAt: 2026-09-22
|
|
4
|
+
title: Chrome ve Firefox Uzantısı, i18n & SEO Tarayıcısı
|
|
5
|
+
description: Intlayer Chrome uzantısı ile herhangi bir web sitesinin i18n yapılandırmasını inceleyin. Framework'ü, i18n kütüphanesini, dilleri, hreflang ve SEO etiketlerini tespit edin ve tam bir i18n SEO denetimi gerçekleştirin.
|
|
6
|
+
keywords:
|
|
7
|
+
- Chrome Uzantısı
|
|
8
|
+
- i18n Tarayıcısı
|
|
9
|
+
- hreflang Denetleyicisi
|
|
10
|
+
- Çok Dilli SEO
|
|
11
|
+
- Intlayer
|
|
12
|
+
- Yerelleştirme
|
|
13
|
+
- Geliştirme Araçları
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- chrome-extension
|
|
17
|
+
history:
|
|
18
|
+
- version: 9.5.6
|
|
19
|
+
date: 2026-09-22
|
|
20
|
+
changes: "Başlangıç geçmişi"
|
|
21
|
+
author: aymericzip
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# Chrome ve Firefox Uzantısı: i18n & SEO Tarayıcısı
|
|
25
|
+
|
|
26
|
+
## Genel Bakış
|
|
27
|
+
|
|
28
|
+
[**Intlayer i18n Scanner**](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc), **Intlayer**'ın resmi Chrome uzantısıdır. Bir sitenin uluslararasılaştırmayı nasıl yönettiğini görmek için herhangi bir web sitesinde açabilirsiniz: hangi framework ve i18n kütüphanesini kullandığını, hangi dilleri sunduğunu ve çok dilli SEO etiketlerinin doğru ayarlanıp ayarlanmadığını inceleyin.
|
|
29
|
+
|
|
30
|
+
Intlayer kullansın veya kullanmasın tüm web sitelerinde çalışır.
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
[Chrome uzantısı bağlantısı](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc)
|
|
35
|
+
|
|
36
|
+
[Firefox eklentisi bağlantısı](https://addons.mozilla.org/en-US/firefox/addon/intlayer-i18n-scanner/)
|
|
37
|
+
|
|
38
|
+
## Özellikler
|
|
39
|
+
|
|
40
|
+
- **Teknoloji tespiti**: framework'ü (Next.js, Nuxt, Astro, SvelteKit, Angular, Vue.js, Qwik, React, Gatsby, WordPress) ve i18n kütüphanesini (Intlayer, i18next, Vue I18n, @nuxtjs/i18n, Angular @angular/localize, next-intl / next-i18next, Weglot, Localize, WPML, Polylang) tanımlar. Her tespit, bunu tetikleyen genel değişken, çerez veya DOM işareti gibi kanıtları gösterir.
|
|
41
|
+
- **Diller (Locales)**: `lang` özniteliğinde, hreflang ve `og:locale` etiketlerinde, URL dil önekinde ve dil çerezlerinde veya depolama girdilerinde bulunan dilleri listeler.
|
|
42
|
+
- **SEO i18n etiketleri**: `html lang`, `html dir`, standart (canonical) bağlantı, hreflang etiketleri, `x-default`, `og:locale` ve yerelleştirilmiş dahili bağlantıların oranını kontrol eder.
|
|
43
|
+
- **Locale'ler arasında gezinme**: hreflang etiketlerine göre mevcut sayfayı tek tıkla yerelleştirilmiş sürümlerinden birine geçirir.
|
|
44
|
+
- **Site haritasında arama**: sitenin site haritasında listelenen tüm sayfalarda arama yapar ve bunları mevcut sekmede açar.
|
|
45
|
+
- **Tam denetim**: [i18n SEO Scanner](https://intlayer.org/i18n-seo-scanner) ile aynı denetimi çalıştırır ve canlı bir puan görüntüler.
|
|
46
|
+
|
|
47
|
+
## Kurulum
|
|
48
|
+
|
|
49
|
+
<Tabs group="browser">
|
|
50
|
+
<Tab label="Chrome" value="chrome">
|
|
51
|
+
|
|
52
|
+
Chrome Web Mağazası'ndan [**Intlayer i18n Scanner**](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc) eklentisini yükleyin ve ardından araç çubuğunuza sabitleyin.
|
|
53
|
+
|
|
54
|
+
Bu uzantı Chrome'da ve Chrome Web Mağazası uzantılarını destekleyen tüm Chromium tabanlı tarayıcılarda (Edge, Brave, Arc, Opera) çalışır.
|
|
55
|
+
|
|
56
|
+
</Tab>
|
|
57
|
+
<Tab label="Firefox" value="firefox">
|
|
58
|
+
|
|
59
|
+
Firefox Eklentileri'nden [**Intlayer i18n Scanner**](https://addons.mozilla.org/en-US/firefox/addon/intlayer-i18n-scanner/) eklentisini yükleyin ve ardından araç çubuğunuza sabitleyin.
|
|
60
|
+
|
|
61
|
+
</Tab>
|
|
62
|
+
</Tabs>
|
|
63
|
+
|
|
64
|
+
## Kullanım
|
|
65
|
+
|
|
66
|
+
### Sayfayı inceleme
|
|
67
|
+
|
|
68
|
+
1. İncelemek istediğiniz web sitesini açın.
|
|
69
|
+
2. Araç çubuğundaki **Intlayer i18n Scanner** simgesine tıklayın.
|
|
70
|
+
3. Açılır pencere, geçerli sayfa için **Tespit edilen teknolojiler**, **Diller** ve **SEO i18n etiketleri** bölümlerini gösterir.
|
|
71
|
+
|
|
72
|
+
Tespit işlemi tarayıcınızda yerel olarak ve yalnızca geçerli sekmede çalışır.
|
|
73
|
+
|
|
74
|
+
### Locale'ler arasında gezinme
|
|
75
|
+
|
|
76
|
+

|
|
77
|
+
|
|
78
|
+
**Gezin** bölümü, mevcut sayfanın hreflang etiketlerinden okunan **Yerelleştirilmiş sürümlerini** listeler. Bir locale'e tıklayarak o sürümü mevcut sekmede açın.
|
|
79
|
+
|
|
80
|
+
**Site haritası sayfaları** altında sitenin site haritasındaki URL'lerde arama yapın ve açmak için bir sonuca tıklayın.
|
|
81
|
+
|
|
82
|
+
### Tam denetim çalıştırma
|
|
83
|
+
|
|
84
|
+

|
|
85
|
+
|
|
86
|
+
**Tam denetim** bölümüne kaydırın ve **Tam i18n denetimini çalıştır**'a tıklayın. Sonuçlar her kontrol tamamlandıkça anlık olarak akar ve şu şekilde gruplandırılır:
|
|
87
|
+
|
|
88
|
+
- **Sayfa**: `html lang` ve `dir` öznitelikleri, geçerli dil, hreflang etiketleri, `x-default`, canonical bağlantı, yerelleştirilmiş dahili bağlantılar, dil seçici, bayrak simgeleri ve JavaScript paketinde yer alan kullanılmayan dil içeriği.
|
|
89
|
+
- **Robots.txt**: varlığı ve dil yollarının taranabilir kalıp kalmadığı.
|
|
90
|
+
- **Site Haritası (Sitemap)**: varlığı, listelenen her dil, alternatif bağlantılar ve `x-default`.
|
|
91
|
+
- **Alan Adı**: site genelinde keşfedilen dil sayısı.
|
|
92
|
+
|
|
93
|
+
Her kontrol başarılı, uyarı veya başarısız olarak işaretlenir ve puan, sayfanın genel i18n SEO sağlığını özetler.
|
|
94
|
+
|
|
95
|
+
## Gizlilik ve izinler
|
|
96
|
+
|
|
97
|
+
Uzantı minimum izin talep eder:
|
|
98
|
+
|
|
99
|
+
- **activeTab** ve **scripting**: algılayıcı yalnızca görüntülediğiniz sekmede ve yalnızca açılır pencereyi açtığınızda çalışır.
|
|
100
|
+
- **back.intlayer.org**: yalnızca tam bir denetim çalıştırdığınızda kullanılır. Geçerli sayfanın URL'si taranmak üzere Intlayer API'sine gönderilir.
|
|
101
|
+
|
|
102
|
+
Hiçbir tarama geçmişi toplanmaz ve arka planda hiçbir şey çalışmaz.
|
|
103
|
+
|
|
104
|
+
## SSS
|
|
105
|
+
|
|
106
|
+
<FAQ>
|
|
107
|
+
|
|
108
|
+
<Question title="Web sitesinin Intlayer kullanması gerekir mi?">
|
|
109
|
+
|
|
110
|
+
Hayır. Uzantı, hangi framework veya i18n kütüphanesini kullanırsa kullansın herhangi bir web sitesini inceler.
|
|
111
|
+
|
|
112
|
+
</Question>
|
|
113
|
+
<Question title="Bir teknoloji neden tespit edilemiyor?">
|
|
114
|
+
|
|
115
|
+
Tespit, sayfanın tarayıcıda sunduğu bilgilere dayanır: genel değişkenler, çerezler, meta etiketler ve DOM işaretleri. Bazı üretim derlemeleri bu işaretleri temizler, bu nedenle bir kütüphane görünür bir iz bırakmadan kullanılıyor olabilir.
|
|
116
|
+
|
|
117
|
+
</Question>
|
|
118
|
+
<Question title="Denetim tarafından bulunan sorunları nasıl düzeltebilirim?">
|
|
119
|
+
|
|
120
|
+
Çoğu kontrol, bir yönlendirme veya meta veri ayarıyla eşleşir. Intlayer ile hreflang, canonical, `x-default`, yerelleştirilmiş bağlantılar, site haritası ve robots.txt [yapılandırmanızdan](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md) oluşturulur. Framework'ünüz için entegrasyon kılavuzuna bakın, örneğin [Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_with_nextjs_16.md), [Nuxt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_with_nuxt.md) veya [TanStack Start](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_with_tanstack.md).
|
|
121
|
+
|
|
122
|
+
</Question>
|
|
123
|
+
|
|
124
|
+
</FAQ>
|
|
125
|
+
|
|
126
|
+
## İlgili araçlar
|
|
127
|
+
|
|
128
|
+
- [VS Code Eklentisi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/vs_code_extension.md)
|
|
129
|
+
- [MCP Sunucusu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/mcp_server.md)
|
|
130
|
+
- [LSP Sunucusu](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/lsp.md)
|
package/docs/tr/cli/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-11
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: CLI - Çok dilli web siteniz için tüm Intlayer CLI komutları
|
|
5
5
|
description: Çok dilli web sitenizi yönetmek için Intlayer CLI'yı nasıl kullanacağınızı keşfedin. Projenizi birkaç dakika içinde kurmak için bu çevrimiçi belgelerdeki adımları izleyin.
|
|
6
6
|
keywords:
|
|
@@ -17,6 +17,12 @@ slugs:
|
|
|
17
17
|
- concept
|
|
18
18
|
- cli
|
|
19
19
|
history:
|
|
20
|
+
- version: 9.5.8
|
|
21
|
+
date: 2026-09-23
|
|
22
|
+
changes: "upgrade komutunu ekle"
|
|
23
|
+
- version: 9.5.6
|
|
24
|
+
date: 2026-09-21
|
|
25
|
+
changes: "init infra komutunu ekle"
|
|
20
26
|
- version: 9.5.2
|
|
21
27
|
date: 2026-09-12
|
|
22
28
|
changes: "`ci` komutu `--ci` bayrağıyla değiştirildi"
|
|
@@ -151,6 +157,8 @@ Mevcut dillerin veya diğer parametrelerin nasıl yapılandırılacağını öğ
|
|
|
151
157
|
### Yapılandırma
|
|
152
158
|
|
|
153
159
|
- **[Initialize Intlayer](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/init.md)** - Otomatik yapılandırma ile projenizde Intlayer'ı kurun
|
|
160
|
+
- **[Altyapıyı Kur](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/infra.md)** - Masaüstü uygulamasını yükleyin veya Docker (hepsi bir arada veya Compose) ile CMS'yi kendi sunucunuzda barındırın
|
|
161
|
+
- **[Intlayer Paketlerini Yükseltme](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/upgrade.md)** - Her `package.json` dosyasındaki Intlayer paketlerini listeleyin ve bunları en son sürüme yükseltin
|
|
154
162
|
- **[Manage Configuration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/configuration.md)** - Intlayer yapılandırmanızı alın ve CMS'ye gönderin
|
|
155
163
|
|
|
156
164
|
### Belge Yönetimi
|
|
@@ -177,6 +185,8 @@ Mevcut dillerin veya diğer parametrelerin nasıl yapılandırılacağını öğ
|
|
|
177
185
|
```json fileName="package.json"
|
|
178
186
|
"scripts": {
|
|
179
187
|
"intlayer:init": "npx intlayer init",
|
|
188
|
+
"intlayer:infra": "npx intlayer init infra",
|
|
189
|
+
"intlayer:upgrade": "npx intlayer upgrade",
|
|
180
190
|
"intlayer:login": "npx intlayer login",
|
|
181
191
|
"intlayer:build": "npx intlayer build",
|
|
182
192
|
"intlayer:watch": "npx intlayer build --watch",
|