@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
|
@@ -27,6 +27,7 @@ export declare const blogEntry: {
|
|
|
27
27
|
readonly './blog/en/intlayer_with_react-intl.md': Record<LocalesValues, Promise<string>>;
|
|
28
28
|
readonly './blog/en/intlayer_with_vue-i18n.md': Record<LocalesValues, Promise<string>>;
|
|
29
29
|
readonly './blog/en/is_i18next_outdated.md': Record<LocalesValues, Promise<string>>;
|
|
30
|
+
readonly './blog/en/is_intlayer_lighter_than_paraglide.md': Record<LocalesValues, Promise<string>>;
|
|
30
31
|
readonly './blog/en/is_next-intl_outdated.md': Record<LocalesValues, Promise<string>>;
|
|
31
32
|
readonly './blog/en/is_vue-i18n_outdated.md': Record<LocalesValues, Promise<string>>;
|
|
32
33
|
readonly './blog/en/l10n_platform_alternative/Lokalise.md': Record<LocalesValues, Promise<string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.entry.d.ts","names":[],"sources":["../../../src/generated/blog.entry.ts"],"mappings":";;qBAsFa;WACX,6CAmBgB,OAAO,eAAe;WACtC,oDAmBgB,OAAO,eAAe;WACtC,+CAmBgB,OAAO,eAAe;WACtC,gCAmBgB,OAAO,eAAe;WACtC,+CAmBgB,OAAO,eAAe;WACtC,+CAmBgB,OAAO,eAAe;WACtC,gDAmBgB,OAAO,eAAe;WACtC,6CAmBgB,OAAO,eAAe;WACtC,gDAmBgB,OAAO,eAAe;WACtC,wCAmBgB,OAAO,eAAe;WACtC,6BAmBgB,OAAO,eAAe;WACtC,wCAmBgB,OAAO,eAAe;WACtC,wCAmBgB,OAAO,eAAe;WACtC,qCAmBgB,OAAO,eAAe;WACtC,4CAmBgB,OAAO,eAAe;WACtC,oCAmBgB,OAAO,eAAe;WACtC,mCAmBgB,OAAO,eAAe;WACtC,sBAmBgB,OAAO,eAAe;WACtC,6CAmBgB,OAAO,eAAe;WACtC,sCAmBgB,OAAO,eAAe;WACtC,2CAmBgB,OAAO,eAAe;WACtC,wCAmBgB,OAAO,eAAe;WACtC,4CAmBgB,OAAO,eAAe;WACtC,yCAmBgB,OAAO,eAAe;WACtC,uCAmBgB,OAAO,eAAe;WACtC,oCAmBgB,OAAO,eAAe;WACtC,sCAmBgB,OAAO,eAAe;WACtC,qCAmBgB,OAAO,eAAe;WACtC,mDAmBgB,OAAO,eAAe;WACtC,kDAmBgB,OAAO,eAAe;WACtC,iDAmBgB,OAAO,eAAe;WACtC,0CAmBgB,OAAO,eAAe;WACtC,mCAmBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,0DAsBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,yDAmBgB,OAAO,eAAe;WACtC,uDAmBgB,OAAO,eAAe;WACtC,+DAsBgB,OAAO,eAAe;WACtC,+DAsBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,yDAmBgB,OAAO,eAAe;WACtC,4DAsBgB,OAAO,eAAe;WACtC,iEAsBgB,OAAO,eAAe;WACtC,sDAmBgB,OAAO,eAAe;WACtC,sDAmBgB,OAAO,eAAe;WACtC,gDAmBgB,OAAO,eAAe;WACtC,sCAmBgB,OAAO,eAAe;WACtC,mDAmBgB,OAAO,eAAe;WACtC,kDAmBgB,OAAO,eAAe;WACtC,oDAmBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,6DAsBgB,OAAO,eAAe;WACtC,iEAsBgB,OAAO,eAAe;WACtC,8CAmBgB,OAAO,eAAe;WACtC,qCAmBgB,OAAO,eAAe;WACtC,+CAmBgB,OAAO,eAAe;WACtC,6CAmBgB,OAAO,eAAe"}
|
|
1
|
+
{"version":3,"file":"blog.entry.d.ts","names":[],"sources":["../../../src/generated/blog.entry.ts"],"mappings":";;qBAsFa;WACX,6CAmBgB,OAAO,eAAe;WACtC,oDAmBgB,OAAO,eAAe;WACtC,+CAmBgB,OAAO,eAAe;WACtC,gCAmBgB,OAAO,eAAe;WACtC,+CAmBgB,OAAO,eAAe;WACtC,+CAmBgB,OAAO,eAAe;WACtC,gDAmBgB,OAAO,eAAe;WACtC,6CAmBgB,OAAO,eAAe;WACtC,gDAmBgB,OAAO,eAAe;WACtC,wCAmBgB,OAAO,eAAe;WACtC,6BAmBgB,OAAO,eAAe;WACtC,wCAmBgB,OAAO,eAAe;WACtC,wCAmBgB,OAAO,eAAe;WACtC,qCAmBgB,OAAO,eAAe;WACtC,4CAmBgB,OAAO,eAAe;WACtC,oCAmBgB,OAAO,eAAe;WACtC,mCAmBgB,OAAO,eAAe;WACtC,sBAmBgB,OAAO,eAAe;WACtC,6CAmBgB,OAAO,eAAe;WACtC,sCAmBgB,OAAO,eAAe;WACtC,2CAmBgB,OAAO,eAAe;WACtC,wCAmBgB,OAAO,eAAe;WACtC,4CAmBgB,OAAO,eAAe;WACtC,yCAmBgB,OAAO,eAAe;WACtC,uCAmBgB,OAAO,eAAe;WACtC,oCAmBgB,OAAO,eAAe;WACtC,mDAmBgB,OAAO,eAAe;WACtC,sCAmBgB,OAAO,eAAe;WACtC,qCAmBgB,OAAO,eAAe;WACtC,mDAmBgB,OAAO,eAAe;WACtC,kDAmBgB,OAAO,eAAe;WACtC,iDAmBgB,OAAO,eAAe;WACtC,0CAmBgB,OAAO,eAAe;WACtC,mCAmBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,0DAsBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,yDAmBgB,OAAO,eAAe;WACtC,uDAmBgB,OAAO,eAAe;WACtC,+DAsBgB,OAAO,eAAe;WACtC,+DAsBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,yDAmBgB,OAAO,eAAe;WACtC,4DAsBgB,OAAO,eAAe;WACtC,iEAsBgB,OAAO,eAAe;WACtC,sDAmBgB,OAAO,eAAe;WACtC,sDAmBgB,OAAO,eAAe;WACtC,gDAmBgB,OAAO,eAAe;WACtC,sCAmBgB,OAAO,eAAe;WACtC,mDAmBgB,OAAO,eAAe;WACtC,kDAmBgB,OAAO,eAAe;WACtC,oDAmBgB,OAAO,eAAe;WACtC,wDAmBgB,OAAO,eAAe;WACtC,6DAsBgB,OAAO,eAAe;WACtC,iEAsBgB,OAAO,eAAe;WACtC,8CAmBgB,OAAO,eAAe;WACtC,qCAmBgB,OAAO,eAAe;WACtC,+CAmBgB,OAAO,eAAe;WACtC,6CAmBgB,OAAO,eAAe"}
|
|
@@ -12,6 +12,7 @@ export declare const docsEntry: {
|
|
|
12
12
|
readonly './docs/en/benchmark/tanstack.md': Record<LocalesValues, Promise<string>>;
|
|
13
13
|
readonly './docs/en/benchmark/vue.md': Record<LocalesValues, Promise<string>>;
|
|
14
14
|
readonly './docs/en/bundle_optimization.md': Record<LocalesValues, Promise<string>>;
|
|
15
|
+
readonly './docs/en/chrome_extension.md': Record<LocalesValues, Promise<string>>;
|
|
15
16
|
readonly './docs/en/cli/build.md': Record<LocalesValues, Promise<string>>;
|
|
16
17
|
readonly './docs/en/cli/configuration.md': Record<LocalesValues, Promise<string>>;
|
|
17
18
|
readonly './docs/en/cli/debug.md': Record<LocalesValues, Promise<string>>;
|
|
@@ -21,6 +22,7 @@ export declare const docsEntry: {
|
|
|
21
22
|
readonly './docs/en/cli/extract.md': Record<LocalesValues, Promise<string>>;
|
|
22
23
|
readonly './docs/en/cli/fill.md': Record<LocalesValues, Promise<string>>;
|
|
23
24
|
readonly './docs/en/cli/index.md': Record<LocalesValues, Promise<string>>;
|
|
25
|
+
readonly './docs/en/cli/infra.md': Record<LocalesValues, Promise<string>>;
|
|
24
26
|
readonly './docs/en/cli/init.md': Record<LocalesValues, Promise<string>>;
|
|
25
27
|
readonly './docs/en/cli/list.md': Record<LocalesValues, Promise<string>>;
|
|
26
28
|
readonly './docs/en/cli/list_projects.md': Record<LocalesValues, Promise<string>>;
|
|
@@ -32,6 +34,7 @@ export declare const docsEntry: {
|
|
|
32
34
|
readonly './docs/en/cli/sdk.md': Record<LocalesValues, Promise<string>>;
|
|
33
35
|
readonly './docs/en/cli/standalone.md': Record<LocalesValues, Promise<string>>;
|
|
34
36
|
readonly './docs/en/cli/test.md': Record<LocalesValues, Promise<string>>;
|
|
37
|
+
readonly './docs/en/cli/upgrade.md': Record<LocalesValues, Promise<string>>;
|
|
35
38
|
readonly './docs/en/cli/version.md': Record<LocalesValues, Promise<string>>;
|
|
36
39
|
readonly './docs/en/cli/watch.md': Record<LocalesValues, Promise<string>>;
|
|
37
40
|
readonly './docs/en/compat/i18n-js.md': Record<LocalesValues, Promise<string>>;
|
|
@@ -86,7 +89,6 @@ export declare const docsEntry: {
|
|
|
86
89
|
readonly './docs/en/intlayer_with_astro_react.md': Record<LocalesValues, Promise<string>>;
|
|
87
90
|
readonly './docs/en/intlayer_with_astro_solid.md': Record<LocalesValues, Promise<string>>;
|
|
88
91
|
readonly './docs/en/intlayer_with_astro_svelte.md': Record<LocalesValues, Promise<string>>;
|
|
89
|
-
readonly './docs/en/intlayer_with_astro_vanilla.md': Record<LocalesValues, Promise<string>>;
|
|
90
92
|
readonly './docs/en/intlayer_with_astro_vue.md': Record<LocalesValues, Promise<string>>;
|
|
91
93
|
readonly './docs/en/intlayer_with_create_react_app.md': Record<LocalesValues, Promise<string>>;
|
|
92
94
|
readonly './docs/en/intlayer_with_elysia.md': Record<LocalesValues, Promise<string>>;
|
|
@@ -228,7 +230,6 @@ export declare const docsEntry: {
|
|
|
228
230
|
readonly './docs/en/releases/v7.md': Record<LocalesValues, Promise<string>>;
|
|
229
231
|
readonly './docs/en/releases/v8.md': Record<LocalesValues, Promise<string>>;
|
|
230
232
|
readonly './docs/en/releases/v9.md': Record<LocalesValues, Promise<string>>;
|
|
231
|
-
readonly './docs/en/roadmap.md': Record<LocalesValues, Promise<string>>;
|
|
232
233
|
readonly './docs/en/self_hosting.md': Record<LocalesValues, Promise<string>>;
|
|
233
234
|
readonly './docs/en/testing.md': Record<LocalesValues, Promise<string>>;
|
|
234
235
|
readonly './docs/en/vs_code_extension.md': Record<LocalesValues, Promise<string>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.entry.d.ts","names":[],"sources":["../../../src/generated/docs.entry.ts"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"docs.entry.d.ts","names":[],"sources":["../../../src/generated/docs.entry.ts"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: أفضل حل i18n لـ Next.js في 2026 - تقرير المقارنة
|
|
5
5
|
description: قارن بين مكتبات تدويل (i18n) Next.js مثل next-intl و next-i18next و Intlayer. تقرير مفصل للأداء حول حجم الحزمة، التسرب، والتفاعلية.
|
|
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: "تحديث نتائج المقارنة"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "تحديث نتائج المقارنة"
|
|
@@ -112,19 +115,19 @@ style="border:none;"
|
|
|
112
115
|
في هذه المقارنة، قمنا بمقارنة المكتبات التالية:
|
|
113
116
|
|
|
114
117
|
- `Base App` (بدون مكتبة i18n)
|
|
115
|
-
- `next-intlayer` (v9.5.
|
|
116
|
-
- [`@intlayer/next-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compat/next-intl.md) (v9.5.
|
|
117
|
-
- [`@intlayer/next-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/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/ar/packages/next-intlayer/exports.md) (v9.5.6)
|
|
119
|
+
- [`@intlayer/next-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compat/next-intl.md) (v9.5.6)
|
|
120
|
+
- [`@intlayer/next-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/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` رقم `16.3.4` مع App Router.
|
|
130
133
|
|
|
@@ -213,7 +216,7 @@ style="border:none;"
|
|
|
213
216
|
|
|
214
217
|
**(Tolgee)** (`@tolgee/react@7.2.0`):
|
|
215
218
|
|
|
216
|
-
يعالج `Tolgee` العديد من المشكلات المذكورة سابقًا. وجدت صعوبة في اعتماده أكثر من الأدوات المماثلة. لا يوفر سلامة الأنواع (type safety) ، مما يجعل اكتشاف المفاتيح المفقودة وقت البناء أكثر صعوبة. اضطررت لتغليف دوال Tolgee بدوالي الخاصة لإضافة ميزة اكتشاف المفاتيح المفقودة.
|
|
219
|
+
يعالج `Tolgee` العديد من المشكلات المذكورة سابقًا. وجدت صعوبة في اعتماده أكثر من الأدوات المماثلة. لا يوفر سلامة الأنواع (type safety) ، مما يجعل اكتشاف المفاتيح المفقودة وقت البناء أكثر صعوبة. اضطررت لتغليف دوال Tolgee بدوالي الخاصة لإضافة ميزة اكتشاف المفاتيح المفقودة. الحزمة أيضاً ثقيلة نسبياً (~14.3 كيلوبايت، أي حوالي 2.8 أضعاف `next-intlayer`).
|
|
217
220
|
|
|
218
221
|
**(Next Intl)** (`next-intl@4.14.2`):
|
|
219
222
|
|
|
@@ -239,7 +242,7 @@ style="border:none;"
|
|
|
239
242
|
|
|
240
243
|
خيار `next-translate` هو توصيتي الرئيسية إذا كنت تحب واجهة برمجية بأسلوب `t()`. إنه أنيق عبر `next-translate-plugin` ، حيث يحمل مساحات الأسماء من خلال `getStaticProps` مع مجمع Webpack / Turbopack. إنه أيضًا من أخف الخيارات هنا (~3.5 كيلوبايت). بالنسبة لمساحات الأسماء، فإن تحديدها لكل صفحة أو مسار في الإعدادات مدروس جيدًا وأسهل في الصيانة من البدائل الرئيسية مثل **next-intl** أو **next-i18next**. في الإصدار `3.1.2` ، لاحظت أن الرندرة الستاتيكية لم تعمل؛ حيث تراجع Next.js إلى الرندرة الديناميكية.
|
|
241
244
|
|
|
242
|
-
**(Intlayer)** (`next-intlayer@9.5.
|
|
245
|
+
**(Intlayer)** (`next-intlayer@9.5.6`):
|
|
243
246
|
|
|
244
247
|
لن أحكم شخصيًا على `next-intlayer` من أجل الموضوعية، لأنه حلي الخاص.
|
|
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: أفضل حل i18n لـ Solid في عام 2026 - تقرير قياسي
|
|
5
|
-
description: قارن بين مكتبات تدويل Solid (i18n) مثل solid-primitives وsolid-i18next وIntlayer. تقرير أداء مفصل حول حجم الحزمة والتسرب والتفاعل.
|
|
5
|
+
description: قارن بين مكتبات تدويل Solid (i18n) مثل solid-primitives وsolid-i18next وTolgee وIntlayer. تقرير أداء مفصل حول حجم الحزمة والتسرب والتفاعل.
|
|
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: "تحديث نتائج المقارنة"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "تحديث نتائج المقارنة"
|
|
@@ -65,9 +68,10 @@ style="border:none;"
|
|
|
65
68
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
|
-
- **Intlayer**: الخيار الموصى به لتطبيقات Solid المهنية التي تحتاج إلى ميزات متقدمة وتحسين (v9.5.
|
|
71
|
+
- **Intlayer**: الخيار الموصى به لتطبيقات Solid المهنية التي تحتاج إلى ميزات متقدمة وتحسين (v9.5.6).
|
|
69
72
|
- **@solid-primitives/i18n**: بديل خفيف الوزن ممتاز للمشاريع البسيطة، على الرغم من افتقاره إلى ميزات متقدمة مثل التحميل الكسول (lazy loading).
|
|
70
73
|
- **solid-i18next**: خيار معياري ولكنه ثقيل (~3.5 أضعاف Intlayer) مع نفس عيوب React i18next.
|
|
74
|
+
- **Tolgee**: منصة ترجمة غنية بالميزات، ولكنها ثقيلة نسبيًا (~12.7 كيلوبايت، حوالي 3.0 أضعاف Intlayer)، وتفتقر إلى بدائيات Solid الأصلية (تعتمد على @tolgee/web)، وتظهر تسريبًا كبيرًا عبر الصفحات في الإعدادات الثابتة (90% تسريب للصفحات).
|
|
71
75
|
- **Paraglide**: نهج مبتكر ولكن DX معقد ومشكلات في التخلص من الكود غير المستخدم (tree-shaking) في بعض الإعدادات.
|
|
72
76
|
|
|
73
77
|
## اختبر تطبيقك
|
|
@@ -100,10 +104,11 @@ style="border:none;"
|
|
|
100
104
|
في هذا التقييم القياسي، قارنا المكتبات التالية:
|
|
101
105
|
|
|
102
106
|
- `Base App` (بدون مكتبة i18n)
|
|
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/ar/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
|
الإطار هو `Solid` مع تطبيق متعدد اللغات يتكون من **10 صفحات** و **10 لغات**.
|
|
109
114
|
|
|
@@ -147,7 +152,7 @@ style="border:none;"
|
|
|
147
152
|
|
|
148
153
|
تعد نجوم GitHub مؤشرًا قويًا على شعبية المشروع وثقة المجتمع وأهميته على المدى الطويل. على الرغم من أنها ليست مقياسًا مباشرًا للجودة التقنية، إلا أنها تعكس عدد المطورين الذين يجدون المشروع مفيدًا ويتابعون تقدمه ومن المحتمل أن يتبنوه. لتقدير قيمة المشروع، تساعد النجوم في مقارنة الجاذبية عبر البدائل وتوفر رؤى حول نمو النظام البيئي.
|
|
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
|
## النتائج بالتفصيل
|
|
153
158
|
|
|
@@ -170,6 +175,18 @@ style="border:none;"
|
|
|
170
175
|
مكون Solid البدائي خفيف الوزن وفعال للغاية. أوصي بهذا الحل للمشاريع الخفيفة، ولكنه قد يفتقر بسرعة إلى الميزات للحلول المهنية بما في ذلك إدارة ملفات تعريف الارتباط، وإعادة توجيه الوكيل، والمنسقات وما إلى ذلك.
|
|
171
176
|
كما يفتقد إلى التحميل الكسول وتقسيم فضاءات الأسماء لتحسين حجم الصفحة.
|
|
172
177
|
|
|
178
|
+
**(Tolgee)** (`@tolgee/web@7.2.0`):
|
|
179
|
+
|
|
180
|
+
توفر `Tolgee` منصة شاملة لإدارة الترجمة مع إمكانات التحرير المباشر في السياق (in-context editing).
|
|
181
|
+
|
|
182
|
+
في بيئة Solid، لا يوجد حاليًا محول أصلي مخصص (مثل `@tolgee/solid`)، مما يتطلب من المطورين الدمج عبر `@tolgee/web` باستخدام إشارات مخصصة (custom signals).
|
|
183
|
+
|
|
184
|
+
الحزمة ثقيلة نسبيًا (~12.7 كيلوبايت، أي حوالي 3.0 أضعاف `solid-intlayer`).
|
|
185
|
+
|
|
186
|
+
بدون آلية تقسيم دقيقة حسب الصفحة في Solid، يتم تحميل جميع الترجمات في الذاكرة مسبقًا في الإعدادات الثابتة. يؤدي هذا إلى تسريب كبير في الحزمة (44.5% تسريب للغات، و 90.0% تسريب للصفحات) ومتوسط حجم حزمة للصفحة يبلغ ~91.8 كيلوبايت (مقارنة بـ ~35.8 كيلوبايت لـ Intlayer).
|
|
187
|
+
|
|
188
|
+
تعد استجابة تبديل اللغة سريعة للغاية (0.6 مللي ثانية)، مما يتوافق مع تفاعلية Solid الدقيقة، على الرغم من أن الحمل الزائد للترطيب (hydration) أعلى قليلاً (~5.6 مللي ثانية مقابل ~3.0 مللي ثانية لـ Intlayer).
|
|
189
|
+
|
|
173
190
|
**(Paraglide)** (`@inlang/paraglide-js@2.25.1`):
|
|
174
191
|
|
|
175
192
|
يقدم `Paraglide` نهجًا مبتكرًا ومدروسًا جيدًا. ومع ذلك، في هذا التقييم القياسي، لم يعمل tree-shaking الذي تعلن عنه شركتهم مع التنفيذ الخاص بي. سير العمل و DX أيضًا أكثر تعقيدًا من الخيارات الأخرى.
|
|
@@ -178,7 +195,7 @@ style="border:none;"
|
|
|
178
195
|
|
|
179
196
|
### 3 - التوصيات
|
|
180
197
|
|
|
181
|
-
**(Intlayer)** (`solid-intlayer@9.5.
|
|
198
|
+
**(Intlayer)** (`solid-intlayer@9.5.6`):
|
|
182
199
|
|
|
183
200
|
لن أحكم شخصيًا على `solid-intlayer` من أجل الموضوعية، لأنه الحل الخاص بي.
|
|
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: أفضل حل i18n لـ Svelte في عام 2026 - تقرير قياسي
|
|
5
|
-
description: قارن بين مكتبات تدويل Svelte (i18n) مثل svelte-i18n وParaglide وIntlayer. تقرير أداء مفصل حول حجم الحزمة والتسرب والتفاعل.
|
|
5
|
+
description: قارن بين مكتبات تدويل Svelte (i18n) مثل svelte-i18n وParaglide وTolgee وIntlayer. تقرير أداء مفصل حول حجم الحزمة والتسرب والتفاعل.
|
|
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: "تحديث نتائج المقارنة"
|
|
@@ -65,8 +68,9 @@ style="border:none;"
|
|
|
65
68
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
|
-
- **Intlayer**: الخيار الأكثر كفاءة في الأداء (v9.5.
|
|
71
|
+
- **Intlayer**: الخيار الأكثر كفاءة في الأداء (v9.5.6) مع أصغر بصمة (footprint).
|
|
69
72
|
- **Paraglide**: منافس قوي للتخلص من الكود غير المستخدم (tree-shaking) ولكنه يمتلك تجربة مطور أكثر تعقيدًا وعبئًا في التفاعل.
|
|
73
|
+
- **Tolgee**: منصة ترجمة غنية بالميزات مع إمكانات التحرير المباشر في السياق، ولكنها ثقيلة نسبيًا (~13.0 كيلوبايت، حوالي 3.6 أضعاف Intlayer)، وتظهر تسريبًا كبيرًا عبر الصفحات في الإعدادات الثابتة (90% تسريب للصفحات).
|
|
70
74
|
- **svelte-i18n**: كامل ومعياري لـ Svelte، ولكنه يحمل وزن حزمة أكبر بكثير (~4.5 أضعاف Intlayer).
|
|
71
75
|
|
|
72
76
|
## اختبر تطبيقك
|
|
@@ -99,9 +103,10 @@ style="border:none;"
|
|
|
99
103
|
في هذا التقييم القياسي، قارنا المكتبات التالية:
|
|
100
104
|
|
|
101
105
|
- `Base App` (بدون مكتبة i18n)
|
|
102
|
-
- `svelte-intlayer` (v9.5.
|
|
103
|
-
- `svelte-i18n` (v4.0.1)
|
|
104
|
-
- `@
|
|
106
|
+
- [`svelte-intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/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
|
الإطار هو `Svelte` مع تطبيق متعدد اللغات يتكون من **10 صفحات** و **10 لغات**.
|
|
107
112
|
|
|
@@ -145,7 +150,7 @@ style="border:none;"
|
|
|
145
150
|
|
|
146
151
|
تعد نجوم GitHub مؤشرًا قويًا على شعبية المشروع وثقة المجتمع وأهميته على المدى الطويل. على الرغم من أنها ليست مقياسًا مباشرًا للجودة التقنية، إلا أنها تعكس عدد المطورين الذين يجدون المشروع مفيدًا ويتابعون تقدمه ومن المحتمل أن يتبنوه. لتقدير قيمة المشروع، تساعد النجوم في مقارنة الجاذبية عبر البدائل وتوفر رؤى حول نمو النظام البيئي.
|
|
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
|
## النتائج بالتفصيل
|
|
151
156
|
|
|
@@ -165,6 +170,16 @@ style="border:none;"
|
|
|
165
170
|
|
|
166
171
|
> ملاحظة حول paraglide: يقوم الحل بحقن الكود في قاعدة الكود الخاصة بك للاستيراد؛ ونتيجة لذلك، فإن مقياس "حجم المكتبة" في تقرير التقييم القياسي هو 0 تقريبًا. يعد إنشاء الكود (Code generation) أمرًا جيدًا، لأن الوظيفة المستخدمة ستتضمن فقط المنطق الضروري (بادئة في كل مكان مقابل لا بادئة، ملف تعريف ارتباط مقابل تخزين، إلخ). بالمقارنة، تقوم Intlayer بإجراء هذا التصفية عبر حقن متغيرات البيئة أثناء البناء لإجبار أداة التجميع على التخلص من الكود غير المستخدم للمحتوى اعتمادًا على المنطق. بفضل هذا، ينتهي الأمر بـ paraglide و intlayer كحلول أخف بـ 6 إلى 10 مرات من i18next أو next-intl.
|
|
167
172
|
|
|
173
|
+
**(Tolgee)** (`@tolgee/svelte@7.2.1`):
|
|
174
|
+
|
|
175
|
+
توفر `Tolgee` منصة شاملة للترجمة وإدارة المحتوى مع إمكانات التحرير في السياق (in-context editing) وتكامل رسمي لـ Svelte عبر `@tolgee/svelte`.
|
|
176
|
+
|
|
177
|
+
الحزمة ثقيلة نسبيًا (~13.0 كيلوبايت، أي حوالي 3.6 أضعاف `svelte-intlayer`).
|
|
178
|
+
|
|
179
|
+
بدون تقسيم دقيق حسب الصفحة في Svelte، يتم تحميل جميع الترجمات مسبقًا في الذاكرة في الإعدادات الثابتة. يؤدي هذا إلى تسريب كبير في الحزمة (50.0% تسريب للغات، و 90.0% تسريب للصفحات) ومتوسط حجم حزمة للصفحة يبلغ ~100.7 كيلوبايت (مقارنة بـ ~59.0 كيلوبايت لـ Intlayer).
|
|
180
|
+
|
|
181
|
+
تعد استجابة تبديل اللغة سريعة للغاية (0.5 مللي ثانية)، مستفيدة من مخازن Svelte التفاعلية (reactive stores)، على الرغم من أن حمل الترطيب (hydration) أعلى قليلاً (~6.2 مللي ثانية مقابل ~5.5 مللي ثانية لـ Intlayer).
|
|
182
|
+
|
|
168
183
|
**(svelte-i18n)** (`svelte-i18n@4.0.1`):
|
|
169
184
|
|
|
170
185
|
يلبي هذا الحل جميع احتياجات i18n في مشروع Svelte. ولكن كما هو الحال مع i18next أو غيرها من حلول i18n الرئيسية، فهي ثقيلة بعض الشيء (~16.6kb، أي حوالي 4.5 أضعاف `svelte-intlayer`).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-04-20
|
|
3
|
-
updatedAt: 2026-09-
|
|
3
|
+
updatedAt: 2026-09-23
|
|
4
4
|
title: أفضل حل i18n لـ TanStack Start في 2026 - تقرير المقارنة
|
|
5
5
|
description: قارن بين مكتبات تدويل TanStack Start مثل react-i18next و use-intl و Intlayer. تقرير مفصل للأداء حول حجم الحزمة، التسرب، والتفاعلية.
|
|
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: "تحديث نتائج المقارنة"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "تحديث نتائج المقارنة"
|
|
@@ -65,7 +68,7 @@ history:
|
|
|
65
68
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
|
-
- **Intlayer**: يوفر أفضل أداء وأصغر حجم للحزمة (v9.5.
|
|
71
|
+
- **Intlayer**: يوفر أفضل أداء وأصغر حجم للحزمة (v9.5.6) لـ TanStack Start.
|
|
69
72
|
- **react-i18next** و **use-intl**: بدائل ناضجة مع أنظمة بيئية كبيرة، ولكنها أثقل بكثير وأكثر تعقيدًا في التحسين.
|
|
70
73
|
- **Paraglide**: فكرة مبتكرة لـ tree-shaking لكنها لا تعمل في الممارسة العملية. تجربة مطور (DX) معقدة وعبء تفاعلي في TanStack Start.
|
|
71
74
|
- **تجنب**: **General Translation (GT)** و **Lingo.dev** بسبب مشكلات الأداء الخطيرة، وقيود حصة الذكاء الاصطناعي، والارتباط بالبائع (vendor lock-in).
|
|
@@ -100,18 +103,19 @@ history:
|
|
|
100
103
|
في هذه المقارنة، قمنا بمقارنة المكتبات التالية:
|
|
101
104
|
|
|
102
105
|
- `Base App` (بدون مكتبة i18n)
|
|
103
|
-
- `react-intlayer` (v9.5.
|
|
104
|
-
- `@intlayer/use-intl` (v9.5.
|
|
105
|
-
- [`@intlayer/lingui`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/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/ar/packages/react-intlayer/exports.md) (v9.5.6)
|
|
107
|
+
- [`@intlayer/use-intl`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compat/next-intl.md) (v9.5.6)
|
|
108
|
+
- [`@intlayer/lingui`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/compat/lingui.md) (v9.5.6)
|
|
109
|
+
- [`@intlayer/react-i18next`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/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
|
إطار العمل هو `TanStack Start` مع تطبيق متعدد اللغات يتكون من **10 صفحات** و **10 لغات**.
|
|
117
121
|
|
|
@@ -199,7 +203,7 @@ history:
|
|
|
199
203
|
|
|
200
204
|
يعالج `Tolgee` العديد من المشكلات المذكورة سابقًا. وجدت صعوبة في البدء معه أكثر من الأدوات الأخرى ذات التوجهات المشابهة. لا يوفر سلامة الأنواع، مما يجعل اكتشاف المفاتيح المفقودة وقت البناء أمراً صعباً للغاية. اضطررت لتغليف واجهات برمجة تطبيقات Tolgee بواجهاتي الخاصة لإضافة ميزة اكتشاف المفاتيح المفقودة.
|
|
201
205
|
|
|
202
|
-
الحزمة ثقيلة نسبياً (~
|
|
206
|
+
الحزمة ثقيلة نسبياً (~13.8 kb، وهي أكثر من 2.9× `react-intlayer`).
|
|
203
207
|
|
|
204
208
|
في TanStack Start، واجهت أيضًا مشكلات في التفاعلية: عند تغيير اللغة، كان علي فرض إعادة رندرة المزود والاشتراك في أحداث تغيير اللغة حتى يعمل التحميل بلغة أخرى بشكل صحيح.
|
|
205
209
|
|
|
@@ -233,7 +237,7 @@ history:
|
|
|
233
237
|
|
|
234
238
|
لا يوجد لهذا الاختبار في TanStack Start مكافئ مباشر لـ `next-translate` (إضافة Next.js + `getStaticProps`). بالنسبة للفرق التي تريد حقاً واجهة برمجة تطبيقات بأسلوب `t()` مع نظام ناضج، يظل `react-i18next` و `use-intl` خيارات "معقولة"، ولكن توقع استثمار الكثير من الوقت في التحسين لتجنب التسرب.
|
|
235
239
|
|
|
236
|
-
**(Intlayer)** (`react-intlayer@9.5.
|
|
240
|
+
**(Intlayer)** (`react-intlayer@9.5.6`):
|
|
237
241
|
|
|
238
242
|
لن أحكم شخصيًا على `react-intlayer` من أجل الموضوعية، لأنه حلي الخاص.
|
|
239
243
|
|
package/docs/ar/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: أفضل حل i18n لـ Vue في عام 2026 - تقرير قياسي
|
|
5
|
-
description: قارن بين مكتبات تدويل Vue (i18n) مثل vue-i18n وfluent-vue وIntlayer. تقرير أداء مفصل حول حجم الحزمة والتسرب والتفاعل.
|
|
5
|
+
description: قارن بين مكتبات تدويل Vue (i18n) مثل vue-i18n وfluent-vue, Tolgee وIntlayer. تقرير أداء مفصل حول حجم الحزمة والتسرب والتفاعل.
|
|
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: "تحديث نتائج المقارنة وإضافة Tolgee"
|
|
20
23
|
- version: 9.5.1
|
|
21
24
|
date: 2026-09-11
|
|
22
25
|
changes: "تحديث نتائج المقارنة"
|
|
@@ -65,7 +68,8 @@ style="border:none;"
|
|
|
65
68
|
|
|
66
69
|
## TL;DR
|
|
67
70
|
|
|
68
|
-
- **Intlayer**: الحل الأخف وزنًا (v9.5.
|
|
71
|
+
- **Intlayer**: الحل الأخف وزنًا (v9.5.6) مع ميزة النطاق (scoping) والتحميل الديناميكي المدمجة.
|
|
72
|
+
- **Tolgee**: تحميل ديناميكي فعال بدون أي تسريب في الوضع الديناميكي، ولكنه أثقل (~3.7× Intlayer) ويفتقر إلى أمان الأنواع المدمج في وقت التحويل البرمجي.
|
|
69
73
|
- **vue-i18n**: المعيار الصناعي مع نظام بيئي غني، ولكنه قد يصبح أثقل بكثير ويصعب تحسينه لتقسيم الكود في التطبيقات الكبيرة.
|
|
70
74
|
- **fluent-vue**: تنظيم مبتكر للرسائل ولكنه يفتقر إلى سلامة النوع (type-safety) ويعد حلاً ثقيلًا للغاية.
|
|
71
75
|
|
|
@@ -99,10 +103,11 @@ style="border:none;"
|
|
|
99
103
|
في هذا التقييم القياسي، قارنا المكتبات التالية:
|
|
100
104
|
|
|
101
105
|
- `Base App` (بدون مكتبة i18n)
|
|
102
|
-
- `vue-intlayer` (v9.5.
|
|
103
|
-
- [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/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/ar/packages/vue-intlayer/exports.md) (v9.5.6)
|
|
107
|
+
- [`@intlayer/vue-i18n`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/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
|
الإطار هو `Vue` مع تطبيق متعدد اللغات يتكون من **10 صفحات** و **10 لغات**.
|
|
108
113
|
|
|
@@ -146,7 +151,7 @@ style="border:none;"
|
|
|
146
151
|
|
|
147
152
|
تعد نجوم GitHub مؤشرًا قويًا على شعبية المشروع وثقة المجتمع وأهميته على المدى الطويل. على الرغم من أنها ليست مقياسًا مباشرًا للجودة التقنية، إلا أنها تعكس عدد المطورين الذين يجدون المشروع مفيدًا ويتابعون تقدمه ومن المحتمل أن يتبنوه. لتقدير قيمة المشروع، تساعد النجوم في مقارنة الجاذبية عبر البدائل وتوفر رؤى حول نمو النظام البيئي.
|
|
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
|
## النتائج بالتفصيل
|
|
152
157
|
|
|
@@ -156,11 +161,15 @@ style="border:none;"
|
|
|
156
161
|
|
|
157
162
|
### 2 - حلول مقبولة
|
|
158
163
|
|
|
164
|
+
**(Tolgee)** (`@tolgee/vue@7.2.0`):
|
|
165
|
+
|
|
166
|
+
يعالج `Tolgee` العديد من المشاكل المذكورة سابقاً، حيث يقدم تحميلاً ديناميكياً يقضي بنجاح على تسريب اللغات والصفحات (مما يقلل حجم JS للصفحة إلى حوالي 58.8 كيلوبايت). ومع ذلك، فإنه لا يوفر أمان الأنواع المدمج في وقت التحويل البرمجي للمفاتيح، مما يزيد من صعوبة اكتشاف المفاتيح المفقودة. بالإضافة إلى ذلك، فإن حجم المكتبة ثقيل نسبياً (~13.8 كيلوبايت، أي حوالي 3.7 أضعاف `vue-intlayer`).
|
|
167
|
+
|
|
159
168
|
**(vue-i18n)** (`vue-i18n@11.4.0`):
|
|
160
169
|
|
|
161
170
|
- **vue-i18n** هي بدون منازع مكتبة i18n الأكثر استخدامًا لـ Vue، فهي تحتوي على الكثير من الميزات ونظام بيئي ضخم. ولكن تحت الغطاء، الحل ثقيل نوعًا ما. حتى لو قامت vue-i18n بدمج التحميل الكسول للرسائل، فإنها تفتقر إلى ميزة النطاق (scoping). في حالة تطبيق Vue SPA كلاسيكي، لا توجد مشكلة، ولكن بالنسبة لتطبيق Nuxt، باستخدام @nuxt/i18n، فإنه يؤدي إلى تضمين الرسائل من جميع الصفحات في صفحة واحدة. بالنسبة لتطبيق Nuxt كبير يضم أكثر من 10 صفحات، يمكن أن يصبح الأمر إشكاليًا حقًا.
|
|
162
171
|
|
|
163
|
-
الحزمة ثقيلة جدًا (~24.
|
|
172
|
+
الحزمة ثقيلة جدًا (~24.1 kb، أي حوالي 6.5 أضعاف `vue-intlayer`).
|
|
164
173
|
|
|
165
174
|
**(fluent-vue)** (`fluent-vue@3.8.2`):
|
|
166
175
|
|
|
@@ -168,6 +177,6 @@ style="border:none;"
|
|
|
168
177
|
|
|
169
178
|
### 3 - التوصيات
|
|
170
179
|
|
|
171
|
-
**(Intlayer)** (`vue-intlayer@9.5.
|
|
180
|
+
**(Intlayer)** (`vue-intlayer@9.5.6`):
|
|
172
181
|
|
|
173
182
|
لن أحكم شخصيًا على `vue-intlayer` من أجل الموضوعية، لأنه الحل الخاص بي.
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-22
|
|
3
|
+
updatedAt: 2026-09-22
|
|
4
|
+
title: إضافة Chrome و Firefox، ماسح i18n و SEO
|
|
5
|
+
description: افحص إعداد i18n لأي موقع ويب باستخدام إضافة Chrome من Intlayer. اكتشف إطار العمل ومكتبة i18n واللغات وعلامات hreflang و SEO، وقم بإجراء تدقيق كامل لـ i18n SEO.
|
|
6
|
+
keywords:
|
|
7
|
+
- إضافة Chrome
|
|
8
|
+
- ماسح i18n
|
|
9
|
+
- فاحص hreflang
|
|
10
|
+
- سيو متعدد اللغات
|
|
11
|
+
- Intlayer
|
|
12
|
+
- التوطين
|
|
13
|
+
- أدوات التطوير
|
|
14
|
+
slugs:
|
|
15
|
+
- doc
|
|
16
|
+
- chrome-extension
|
|
17
|
+
history:
|
|
18
|
+
- version: 9.5.6
|
|
19
|
+
date: 2026-09-22
|
|
20
|
+
changes: "بدء السجل"
|
|
21
|
+
author: aymericzip
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
# إضافة Chrome و Firefox: ماسح i18n و SEO
|
|
25
|
+
|
|
26
|
+
## نظرة عامة
|
|
27
|
+
|
|
28
|
+
[**Intlayer i18n Scanner**](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc) هي إضافة Chrome الرسمية لـ **Intlayer**. افتحها على أي موقع ويب لمعرفة كيفية تعامل الموقع مع التدويل: ما هو إطار العمل ومكتبة i18n المستخدمة، وما هي اللغات المدعومة، وما إذا كانت علامات SEO متعددة اللغات قد تم إعدادها بشكل صحيح.
|
|
29
|
+
|
|
30
|
+
تعمل الإضافة على جميع مواقع الويب، سواء كانت تستخدم Intlayer أم لا.
|
|
31
|
+
|
|
32
|
+

|
|
33
|
+
|
|
34
|
+
[رابط إضافة Chrome](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc)
|
|
35
|
+
|
|
36
|
+
[رابط إضافة Firefox](https://addons.mozilla.org/en-US/firefox/addon/intlayer-i18n-scanner/)
|
|
37
|
+
|
|
38
|
+
## الميزات
|
|
39
|
+
|
|
40
|
+
- **اكتشاف التقنيات**: تحديد إطار العمل (Next.js, Nuxt, Astro, SvelteKit, Angular, Vue.js, Qwik, React, Gatsby, WordPress) ومكتبة i18n (Intlayer, i18next, Vue I18n, @nuxtjs/i18n, Angular @angular/localize, next-intl / next-i18next, Weglot, Localize, WPML, Polylang). تُظهر كل عملية اكتشاف الأدلة التي أدت إليها، مثل متغير عام أو ملف تعريف ارتباط (cookie) أو علامة DOM.
|
|
41
|
+
- **اللغات (Locales)**: عرض قائمة اللغات الموجودة في سمة `lang`، وعلامات hreflang و `og:locale`، والبادئة اللغوية في عنوان URL، وملفات تعريف الارتباط أو مدخلات التخزين الخاصة باللغة.
|
|
42
|
+
- **علامات SEO i18n**: فحص `html lang` و `html dir`، والرابط الأساسي (canonical)، وعلامات hreflang، و `x-default`، و `og:locale`، ونسبة الروابط الداخلية المترجمة.
|
|
43
|
+
- **التنقل بين اللغات**: ينقل الصفحة الحالية بنقرة واحدة إلى أي من نسخها المترجمة، استنادًا إلى وسوم hreflang الخاصة بها.
|
|
44
|
+
- **البحث في خريطة الموقع**: يبحث في جميع الصفحات المدرجة في خريطة الموقع ويفتحها في علامة التبويب الحالية.
|
|
45
|
+
- **تدقيق كامل**: تشغيل نفس التدقيق المتاح في [i18n SEO Scanner](https://intlayer.org/i18n-seo-scanner) وعرض النتيجة بشكل مباشر.
|
|
46
|
+
|
|
47
|
+
## التثبيت
|
|
48
|
+
|
|
49
|
+
<Tabs group="browser">
|
|
50
|
+
<Tab label="Chrome" value="chrome">
|
|
51
|
+
|
|
52
|
+
قم بتثبيت [**Intlayer i18n Scanner**](https://chromewebstore.google.com/detail/intlayer_i18n_scanner/pmlehcgmjmfimmjnembihbakhnheiabc) من سوق Chrome الإلكتروني، ثم قم بتثبيتها في شريط الأدوات الخاص بك.
|
|
53
|
+
|
|
54
|
+
تعمل الإضافة في متصفح Chrome وفي أي متصفح يعتمد على Chromium ويدعم إضافات سوق Chrome الإلكتروني (مثل Edge و Brave و Arc و Opera).
|
|
55
|
+
|
|
56
|
+
</Tab>
|
|
57
|
+
<Tab label="Firefox" value="firefox">
|
|
58
|
+
|
|
59
|
+
قم بتثبيت [**Intlayer i18n Scanner**](https://addons.mozilla.org/en-US/firefox/addon/intlayer-i18n-scanner/) من متجر إضافات Firefox، ثم قم بتثبيتها في شريط الأدوات الخاص بك.
|
|
60
|
+
|
|
61
|
+
</Tab>
|
|
62
|
+
</Tabs>
|
|
63
|
+
|
|
64
|
+
## الاستخدام
|
|
65
|
+
|
|
66
|
+
### فحص صفحة
|
|
67
|
+
|
|
68
|
+
1. افتح موقع الويب الذي ترغب في فحصه.
|
|
69
|
+
2. انقر على أيقونة **Intlayer i18n Scanner** في شريط الأدوات.
|
|
70
|
+
3. تعرض النافذة المنبثقة أقسام **التقنيات المكتشفة** و **اللغات** و **علامات SEO i18n** للصفحة الحالية.
|
|
71
|
+
|
|
72
|
+
يعمل الاكتشاف محلياً في متصفحك، وعلى علامة التبويب الحالية فقط.
|
|
73
|
+
|
|
74
|
+
### التنقل بين اللغات
|
|
75
|
+
|
|
76
|
+

|
|
77
|
+
|
|
78
|
+
يعرض قسم **التنقل** **النسخ المترجمة** من الصفحة الحالية، المقروءة من وسوم hreflang الخاصة بها. انقر على لغة لفتح تلك النسخة في علامة التبويب الحالية.
|
|
79
|
+
|
|
80
|
+
في **صفحات خريطة الموقع**، اكتب للبحث في عناوين URL الموجودة في خريطة الموقع، ثم انقر على نتيجة لفتحها.
|
|
81
|
+
|
|
82
|
+
### تشغيل تدقيق كامل
|
|
83
|
+
|
|
84
|
+

|
|
85
|
+
|
|
86
|
+
قم بالتمرير إلى قسم **تدقيق كامل** وانقر على **تشغيل تدقيق i18n كامل**. تظهر النتائج تباعاً مع اكتمال كل فحص، مقسمة إلى:
|
|
87
|
+
|
|
88
|
+
- **الصفحة**: سمات `html lang` و `dir`، واللغة الحالية، وعلامات hreflang، و `x-default`، والرابط الأساسي، والروابط الداخلية المترجمة، ومحدد اللغة، وأيقونات الأعلام، ومحتوى اللغة غير المستخدم والمضمن في حزمة JavaScript.
|
|
89
|
+
- **Robots.txt**: وجود الملف، وما إذا كانت مسارات اللغات تظل قابلة للزحف بواسطة محركات البحث.
|
|
90
|
+
- **خريطة الموقع (Sitemap)**: وجود الملف، وسرد كل اللغات، والروابط البديلة و `x-default`.
|
|
91
|
+
- **النطاق**: عدد اللغات المكتشفة في الموقع بأكمله.
|
|
92
|
+
|
|
93
|
+
يتم تمييز كل فحص على أنه ناجح أو تحذير أو فاشل، وتلخص النتيجة الحالة العامة لـ i18n SEO للصفحة.
|
|
94
|
+
|
|
95
|
+
## الخصوصية والأذونات
|
|
96
|
+
|
|
97
|
+
تطلب الإضافة الحد الأدنى من الأذونات:
|
|
98
|
+
|
|
99
|
+
- **activeTab** و **scripting**: يعمل الكاشف فقط على علامة التبويب التي تشاهدها، وفقط عند فتح النافذة المنبثقة.
|
|
100
|
+
- **back.intlayer.org**: يُستخدم فقط عند تشغيل تدقيق كامل. يتم إرسال عنوان URL للصفحة الحالية إلى واجهة برمجة تطبيقات Intlayer لفحصه.
|
|
101
|
+
|
|
102
|
+
لا يتم جمع أي سجل تصفح ولا يعمل أي شيء في الخلفية.
|
|
103
|
+
|
|
104
|
+
## الأسئلة الشائعة
|
|
105
|
+
|
|
106
|
+
<FAQ>
|
|
107
|
+
|
|
108
|
+
<Question title="هل يحتاج موقع الويب إلى استخدام Intlayer؟">
|
|
109
|
+
|
|
110
|
+
لا. تفحص الإضافة أي موقع ويب، بغض النظر عن إطار العمل أو مكتبة i18n المستخدمة.
|
|
111
|
+
|
|
112
|
+
</Question>
|
|
113
|
+
<Question title="لماذا لم يتم اكتشاف تقنية معينة؟">
|
|
114
|
+
|
|
115
|
+
يعتمد الاكتشاف على ما تكشفه الصفحة في المتصفح: المتغيرات العامة، وملفات تعريف الارتباط، والعلامات الوصفية، وعلامات DOM. تقوم بعض إصدارات الإنتاج بإزالة هذه العلامات، وبالتالي قد تكون المكتبة قيد الاستخدام دون ترك أثر مرئي.
|
|
116
|
+
|
|
117
|
+
</Question>
|
|
118
|
+
<Question title="كيف يمكنني إصلاح المشكلات التي وجدها التدقيق؟">
|
|
119
|
+
|
|
120
|
+
ترتبط معظم عمليات الفحص بإعدادات التوجيه أو البيانات الوصفية. مع Intlayer، يتم إنشاء علامات hreflang، والرابط الأساسي، و `x-default`، والروابط المترجمة، وخريطة الموقع، و robots.txt تلقائياً من [ملف التكوين](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/configuration.md). راجع دليل التكامل لإطار العمل الخاص بك، مثل [Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_nextjs_16.md) أو [Nuxt](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_nuxt.md) أو [TanStack Start](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/intlayer_with_tanstack.md).
|
|
121
|
+
|
|
122
|
+
</Question>
|
|
123
|
+
|
|
124
|
+
</FAQ>
|
|
125
|
+
|
|
126
|
+
## أدوات ذات صلة
|
|
127
|
+
|
|
128
|
+
- [ملحق VS Code](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/vs_code_extension.md)
|
|
129
|
+
- [خادم MCP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/mcp_server.md)
|
|
130
|
+
- [خادم LSP](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/lsp.md)
|