@intlayer/docs 9.5.1 → 9.5.3
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/README.md +1 -1
- package/blog/ar/history_of_i18n.md +304 -0
- package/blog/ar/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/ar/i18next_vs_intlayer.md +445 -0
- package/blog/ar/is_i18next_outdated.md +1 -1
- package/blog/ar/is_next-intl_outdated.md +1 -1
- package/blog/ar/is_vue-i18n_outdated.md +1 -1
- package/blog/ar/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/ar/lingui_vs_intlayer.md +381 -0
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ar/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/ar/next-intl_vs_intlayer.md +397 -0
- package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/ar/vue-i18n_vs_intlayer-vue-i18n.md +286 -0
- package/blog/ar/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/de/history_of_i18n.md +304 -0
- package/blog/de/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/de/i18next_vs_intlayer.md +445 -0
- package/blog/de/is_i18next_outdated.md +1 -1
- package/blog/de/is_next-intl_outdated.md +1 -1
- package/blog/de/is_vue-i18n_outdated.md +1 -1
- package/blog/de/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/de/lingui_vs_intlayer.md +381 -0
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/de/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/de/next-intl_vs_intlayer.md +415 -0
- package/blog/de/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/de/vue-i18n_vs_intlayer_benchmark.md +355 -0
- package/blog/en/history_of_i18n.md +304 -0
- package/blog/en/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/en/i18next_vs_intlayer.md +445 -0
- package/blog/en/is_i18next_outdated.md +1 -1
- package/blog/en/is_next-intl_outdated.md +1 -1
- package/blog/en/is_vue-i18n_outdated.md +1 -1
- package/blog/en/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/en/lingui_vs_intlayer.md +381 -0
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/en/next-intl_vs_intlayer.md +415 -0
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/en/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/en/vue-i18n_vs_intlayer.md +1 -1
- package/blog/en/vue-i18n_vs_intlayer_benchmark.md +361 -0
- package/blog/en-GB/history_of_i18n.md +304 -0
- package/blog/en-GB/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/en-GB/i18next_vs_intlayer.md +445 -0
- package/blog/en-GB/is_i18next_outdated.md +1 -1
- package/blog/en-GB/is_next-intl_outdated.md +1 -1
- package/blog/en-GB/is_vue-i18n_outdated.md +1 -1
- package/blog/en-GB/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/en-GB/lingui_vs_intlayer.md +381 -0
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/en-GB/next-intl_vs_intlayer.md +415 -0
- package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/en-GB/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/en-GB/vue-i18n_vs_intlayer.md +1 -1
- package/blog/en-GB/vue-i18n_vs_intlayer_benchmark.md +245 -0
- package/blog/es/history_of_i18n.md +304 -0
- package/blog/es/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/es/i18next_vs_intlayer.md +445 -0
- package/blog/es/is_i18next_outdated.md +1 -1
- package/blog/es/is_next-intl_outdated.md +1 -1
- package/blog/es/is_vue-i18n_outdated.md +1 -1
- package/blog/es/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/es/lingui_vs_intlayer.md +381 -0
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/es/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/es/next-intl_vs_intlayer.md +417 -0
- package/blog/es/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/es/vue-i18n_vs_intlayer_benchmark.md +363 -0
- package/blog/fr/history_of_i18n.md +304 -0
- package/blog/fr/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/fr/i18next_vs_intlayer.md +445 -0
- package/blog/fr/is_i18next_outdated.md +1 -1
- package/blog/fr/is_next-intl_outdated.md +1 -1
- package/blog/fr/is_vue-i18n_outdated.md +1 -1
- package/blog/fr/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/fr/lingui_vs_intlayer.md +381 -0
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/fr/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/fr/next-intl_vs_intlayer.md +417 -0
- package/blog/fr/vue-i18n_vs_intlayer-vue-i18n.md +287 -0
- package/blog/fr/vue-i18n_vs_intlayer_benchmark.md +39 -0
- package/blog/hi/history_of_i18n.md +304 -0
- package/blog/hi/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/hi/i18next_vs_intlayer.md +445 -0
- package/blog/hi/is_i18next_outdated.md +1 -1
- package/blog/hi/is_next-intl_outdated.md +1 -1
- package/blog/hi/is_vue-i18n_outdated.md +1 -1
- package/blog/hi/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/hi/lingui_vs_intlayer.md +381 -0
- package/blog/hi/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/hi/next-intl_vs_intlayer.md +397 -0
- package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/hi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/hi/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/id/history_of_i18n.md +304 -0
- package/blog/id/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/id/i18next_vs_intlayer.md +445 -0
- package/blog/id/is_i18next_outdated.md +1 -1
- package/blog/id/is_next-intl_outdated.md +1 -1
- package/blog/id/is_vue-i18n_outdated.md +1 -1
- package/blog/id/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/id/lingui_vs_intlayer.md +381 -0
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/id/next-intl_vs_intlayer-next-intl.md +310 -0
- package/blog/id/next-intl_vs_intlayer.md +397 -0
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/id/vue-i18n_vs_intlayer-vue-i18n.md +36 -0
- package/blog/id/vue-i18n_vs_intlayer.md +1 -1
- package/blog/id/vue-i18n_vs_intlayer_benchmark.md +41 -0
- package/blog/it/history_of_i18n.md +304 -0
- package/blog/it/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/it/i18next_vs_intlayer.md +445 -0
- package/blog/it/is_i18next_outdated.md +1 -1
- package/blog/it/is_next-intl_outdated.md +1 -1
- package/blog/it/is_vue-i18n_outdated.md +1 -1
- package/blog/it/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/it/lingui_vs_intlayer.md +381 -0
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/it/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/it/next-intl_vs_intlayer.md +418 -0
- package/blog/it/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/it/vue-i18n_vs_intlayer_benchmark.md +34 -0
- package/blog/ja/history_of_i18n.md +304 -0
- package/blog/ja/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/ja/i18next_vs_intlayer.md +447 -0
- package/blog/ja/is_i18next_outdated.md +1 -1
- package/blog/ja/is_next-intl_outdated.md +1 -1
- package/blog/ja/is_vue-i18n_outdated.md +1 -1
- package/blog/ja/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/ja/lingui_vs_intlayer.md +381 -0
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ja/next-intl_vs_intlayer-next-intl.md +310 -0
- package/blog/ja/next-intl_vs_intlayer.md +422 -0
- package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/ja/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/ja/vue-i18n_vs_intlayer.md +1 -1
- package/blog/ja/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/ko/history_of_i18n.md +304 -0
- package/blog/ko/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/ko/i18next_vs_intlayer.md +447 -0
- package/blog/ko/is_i18next_outdated.md +1 -1
- package/blog/ko/is_next-intl_outdated.md +1 -1
- package/blog/ko/is_vue-i18n_outdated.md +1 -1
- package/blog/ko/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/ko/lingui_vs_intlayer.md +381 -0
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ko/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/ko/next-intl_vs_intlayer.md +397 -0
- package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/ko/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/ko/vue-i18n_vs_intlayer.md +1 -1
- package/blog/ko/vue-i18n_vs_intlayer_benchmark.md +366 -0
- package/blog/pl/history_of_i18n.md +304 -0
- package/blog/pl/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/pl/i18next_vs_intlayer.md +445 -0
- package/blog/pl/is_i18next_outdated.md +1 -1
- package/blog/pl/is_next-intl_outdated.md +1 -1
- package/blog/pl/is_vue-i18n_outdated.md +1 -1
- package/blog/pl/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/pl/lingui_vs_intlayer.md +381 -0
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pl/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/pl/next-intl_vs_intlayer.md +397 -0
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/pl/vue-i18n_vs_intlayer-vue-i18n.md +289 -0
- package/blog/pl/vue-i18n_vs_intlayer.md +1 -1
- package/blog/pl/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/pt/history_of_i18n.md +304 -0
- package/blog/pt/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/pt/i18next_vs_intlayer.md +445 -0
- package/blog/pt/is_i18next_outdated.md +1 -1
- package/blog/pt/is_next-intl_outdated.md +1 -1
- package/blog/pt/is_vue-i18n_outdated.md +1 -1
- package/blog/pt/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/pt/lingui_vs_intlayer.md +381 -0
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/pt/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/pt/next-intl_vs_intlayer.md +411 -0
- package/blog/pt/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/pt/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/ru/history_of_i18n.md +304 -0
- package/blog/ru/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/ru/i18next_vs_intlayer.md +445 -0
- package/blog/ru/is_i18next_outdated.md +1 -1
- package/blog/ru/is_next-intl_outdated.md +1 -1
- package/blog/ru/is_vue-i18n_outdated.md +1 -1
- package/blog/ru/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/ru/lingui_vs_intlayer.md +381 -0
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/ru/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/ru/next-intl_vs_intlayer.md +417 -0
- package/blog/ru/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/ru/vue-i18n_vs_intlayer_benchmark.md +54 -0
- package/blog/tr/history_of_i18n.md +304 -0
- package/blog/tr/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/tr/i18next_vs_intlayer.md +445 -0
- package/blog/tr/is_i18next_outdated.md +1 -1
- package/blog/tr/is_next-intl_outdated.md +1 -1
- package/blog/tr/is_vue-i18n_outdated.md +1 -1
- package/blog/tr/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/tr/lingui_vs_intlayer.md +381 -0
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/tr/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/tr/next-intl_vs_intlayer.md +397 -0
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/tr/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/tr/vue-i18n_vs_intlayer.md +1 -1
- package/blog/tr/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/uk/history_of_i18n.md +304 -0
- package/blog/uk/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/uk/i18next_vs_intlayer.md +445 -0
- package/blog/uk/is_i18next_outdated.md +1 -1
- package/blog/uk/is_next-intl_outdated.md +1 -1
- package/blog/uk/is_vue-i18n_outdated.md +1 -1
- package/blog/uk/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/uk/lingui_vs_intlayer.md +381 -0
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/uk/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/uk/next-intl_vs_intlayer.md +397 -0
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/uk/vue-i18n_vs_intlayer-vue-i18n.md +270 -0
- package/blog/uk/vue-i18n_vs_intlayer.md +1 -1
- package/blog/uk/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/vi/history_of_i18n.md +304 -0
- package/blog/vi/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/vi/i18next_vs_intlayer.md +445 -0
- package/blog/vi/is_i18next_outdated.md +1 -1
- package/blog/vi/is_next-intl_outdated.md +1 -1
- package/blog/vi/is_vue-i18n_outdated.md +1 -1
- package/blog/vi/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/vi/lingui_vs_intlayer.md +381 -0
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/vi/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/vi/next-intl_vs_intlayer.md +397 -0
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/vi/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/vi/vue-i18n_vs_intlayer.md +1 -1
- package/blog/vi/vue-i18n_vs_intlayer_benchmark.md +0 -0
- package/blog/zh/history_of_i18n.md +304 -0
- package/blog/zh/i18next_vs_intlayer-i18next.md +327 -0
- package/blog/zh/i18next_vs_intlayer.md +445 -0
- package/blog/zh/is_i18next_outdated.md +1 -1
- package/blog/zh/is_next-intl_outdated.md +1 -1
- package/blog/zh/is_vue-i18n_outdated.md +1 -1
- package/blog/zh/lingui_vs_intlayer-lingui.md +304 -0
- package/blog/zh/lingui_vs_intlayer.md +381 -0
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -1
- package/blog/zh/next-intl_vs_intlayer-next-intl.md +309 -0
- package/blog/zh/next-intl_vs_intlayer.md +422 -0
- package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +1 -1
- package/blog/zh/vue-i18n_vs_intlayer-vue-i18n.md +288 -0
- package/blog/zh/vue-i18n_vs_intlayer.md +1 -1
- package/blog/zh/vue-i18n_vs_intlayer_benchmark.md +30 -0
- package/dist/cjs/generated/blog.entry.cjs +180 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +0 -20
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +20 -0
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +180 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +0 -20
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +20 -0
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +9 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +0 -1
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +1 -0
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/docs/ar/benchmark/index.md +4 -1
- package/docs/ar/benchmark/nextjs.md +33 -28
- package/docs/ar/benchmark/solid.md +14 -11
- package/docs/ar/benchmark/svelte.md +13 -10
- package/docs/ar/benchmark/tanstack.md +30 -25
- package/docs/ar/benchmark/vue.md +12 -8
- package/docs/ar/cli/build.md +8 -1
- package/docs/ar/cli/configuration.md +3 -1
- package/docs/ar/cli/doc-review.md +8 -1
- package/docs/ar/cli/doc-translate.md +5 -1
- package/docs/ar/cli/extract.md +2 -1
- package/docs/ar/cli/fill.md +5 -1
- package/docs/ar/cli/index.md +4 -5
- package/docs/ar/cli/live.md +5 -1
- package/docs/ar/cli/login.md +2 -2
- package/docs/ar/cli/pull.md +5 -1
- package/docs/ar/cli/push.md +5 -1
- package/docs/ar/cli/scan.md +5 -1
- package/docs/ar/cli/standalone.md +5 -1
- package/docs/ar/cli/test.md +5 -1
- package/docs/ar/cli/watch.md +5 -1
- package/docs/ar/compat/i18n-js.md +1 -1
- package/docs/ar/compat/i18next.md +1 -1
- package/docs/ar/compat/lingui.md +1 -1
- package/docs/ar/compat/next-i18next.md +1 -1
- package/docs/ar/compat/next-intl.md +1 -1
- package/docs/ar/compat/next-translate.md +1 -1
- package/docs/ar/compat/ngx-translate.md +1 -1
- package/docs/ar/compat/nuxtjs-i18n.md +1 -1
- package/docs/ar/compat/polyglot.md +1 -1
- package/docs/ar/compat/react-i18next.md +1 -1
- package/docs/ar/compat/react-intl.md +1 -1
- package/docs/ar/compat/svelte-i18n.md +1 -1
- package/docs/ar/compat/transloco.md +1 -1
- package/docs/ar/compat/vue-i18n.md +1 -1
- package/docs/ar/interest_of_intlayer.md +1 -1
- package/docs/ar/intlayer_with_remix_3.md +543 -0
- package/docs/bn/cli/index.md +4 -5
- package/docs/bn/cli/scan.md +5 -1
- package/docs/bn/cli/standalone.md +5 -1
- package/docs/bn/interest_of_intlayer.md +1 -1
- package/docs/cs/cli/index.md +4 -5
- package/docs/cs/cli/scan.md +5 -1
- package/docs/cs/cli/standalone.md +5 -1
- package/docs/cs/interest_of_intlayer.md +1 -1
- package/docs/de/benchmark/index.md +4 -1
- package/docs/de/benchmark/nextjs.md +33 -28
- package/docs/de/benchmark/solid.md +14 -11
- package/docs/de/benchmark/svelte.md +13 -10
- package/docs/de/benchmark/tanstack.md +30 -25
- package/docs/de/benchmark/vue.md +12 -8
- package/docs/de/cli/build.md +8 -1
- package/docs/de/cli/configuration.md +3 -1
- package/docs/de/cli/doc-review.md +8 -1
- package/docs/de/cli/doc-translate.md +5 -1
- package/docs/de/cli/extract.md +2 -1
- package/docs/de/cli/fill.md +5 -1
- package/docs/de/cli/index.md +4 -5
- package/docs/de/cli/live.md +5 -1
- package/docs/de/cli/login.md +2 -2
- package/docs/de/cli/pull.md +5 -1
- package/docs/de/cli/push.md +5 -1
- package/docs/de/cli/scan.md +5 -1
- package/docs/de/cli/standalone.md +5 -1
- package/docs/de/cli/test.md +5 -1
- package/docs/de/cli/watch.md +5 -1
- package/docs/de/compat/i18n-js.md +1 -1
- package/docs/de/compat/i18next.md +1 -1
- package/docs/de/compat/lingui.md +1 -1
- package/docs/de/compat/next-i18next.md +1 -1
- package/docs/de/compat/next-intl.md +1 -1
- package/docs/de/compat/next-translate.md +1 -1
- package/docs/de/compat/ngx-translate.md +1 -1
- package/docs/de/compat/nuxtjs-i18n.md +1 -1
- package/docs/de/compat/polyglot.md +1 -1
- package/docs/de/compat/react-i18next.md +1 -1
- package/docs/de/compat/react-intl.md +1 -1
- package/docs/de/compat/svelte-i18n.md +1 -1
- package/docs/de/compat/transloco.md +1 -1
- package/docs/de/compat/vue-i18n.md +1 -1
- package/docs/de/interest_of_intlayer.md +1 -1
- package/docs/de/intlayer_with_remix_3.md +543 -0
- package/docs/en/benchmark/index.md +4 -1
- package/docs/en/benchmark/nextjs.md +33 -28
- package/docs/en/benchmark/solid.md +14 -11
- package/docs/en/benchmark/svelte.md +13 -10
- package/docs/en/benchmark/tanstack.md +31 -26
- package/docs/en/benchmark/vue.md +12 -8
- package/docs/en/cli/build.md +8 -1
- package/docs/en/cli/configuration.md +3 -1
- package/docs/en/cli/doc-review.md +8 -1
- package/docs/en/cli/doc-translate.md +5 -1
- package/docs/en/cli/extract.md +2 -1
- package/docs/en/cli/fill.md +5 -1
- package/docs/en/cli/index.md +4 -5
- package/docs/en/cli/live.md +5 -1
- package/docs/en/cli/login.md +2 -2
- package/docs/en/cli/pull.md +5 -1
- package/docs/en/cli/push.md +5 -1
- package/docs/en/cli/scan.md +5 -1
- package/docs/en/cli/standalone.md +5 -1
- package/docs/en/cli/test.md +5 -1
- package/docs/en/cli/watch.md +5 -1
- package/docs/en/compat/i18n-js.md +1 -1
- package/docs/en/compat/i18next.md +1 -1
- package/docs/en/compat/lingui.md +1 -1
- package/docs/en/compat/next-i18next.md +1 -1
- package/docs/en/compat/next-intl.md +1 -1
- package/docs/en/compat/next-translate.md +1 -1
- package/docs/en/compat/ngx-translate.md +1 -1
- package/docs/en/compat/nuxtjs-i18n.md +1 -1
- package/docs/en/compat/polyglot.md +1 -1
- package/docs/en/compat/react-i18next.md +1 -1
- package/docs/en/compat/react-intl.md +1 -1
- package/docs/en/compat/svelte-i18n.md +1 -1
- package/docs/en/compat/transloco.md +1 -1
- package/docs/en/compat/vue-i18n.md +1 -1
- package/docs/en/interest_of_intlayer.md +1 -1
- package/docs/en/intlayer_with_remix_3.md +103 -71
- package/docs/en-GB/benchmark/index.md +4 -1
- package/docs/en-GB/benchmark/nextjs.md +33 -28
- package/docs/en-GB/benchmark/solid.md +14 -11
- package/docs/en-GB/benchmark/svelte.md +13 -10
- package/docs/en-GB/benchmark/tanstack.md +30 -25
- package/docs/en-GB/benchmark/vue.md +12 -8
- package/docs/en-GB/cli/build.md +8 -1
- package/docs/en-GB/cli/configuration.md +3 -1
- package/docs/en-GB/cli/doc-review.md +8 -1
- package/docs/en-GB/cli/doc-translate.md +5 -1
- package/docs/en-GB/cli/extract.md +2 -1
- package/docs/en-GB/cli/fill.md +5 -1
- package/docs/en-GB/cli/index.md +4 -5
- package/docs/en-GB/cli/live.md +5 -1
- package/docs/en-GB/cli/login.md +2 -2
- package/docs/en-GB/cli/pull.md +5 -1
- package/docs/en-GB/cli/push.md +5 -1
- package/docs/en-GB/cli/scan.md +5 -1
- package/docs/en-GB/cli/standalone.md +5 -1
- package/docs/en-GB/cli/test.md +5 -1
- package/docs/en-GB/cli/watch.md +5 -1
- package/docs/en-GB/compat/i18n-js.md +1 -1
- package/docs/en-GB/compat/i18next.md +1 -1
- package/docs/en-GB/compat/lingui.md +1 -1
- package/docs/en-GB/compat/next-i18next.md +1 -1
- package/docs/en-GB/compat/next-intl.md +1 -1
- package/docs/en-GB/compat/next-translate.md +1 -1
- package/docs/en-GB/compat/ngx-translate.md +1 -1
- package/docs/en-GB/compat/nuxtjs-i18n.md +1 -1
- package/docs/en-GB/compat/polyglot.md +1 -1
- package/docs/en-GB/compat/react-i18next.md +1 -1
- package/docs/en-GB/compat/react-intl.md +1 -1
- package/docs/en-GB/compat/svelte-i18n.md +1 -1
- package/docs/en-GB/compat/transloco.md +1 -1
- package/docs/en-GB/compat/vue-i18n.md +1 -1
- package/docs/en-GB/interest_of_intlayer.md +1 -1
- package/docs/en-GB/intlayer_with_remix_3.md +558 -0
- package/docs/es/benchmark/index.md +4 -1
- package/docs/es/benchmark/nextjs.md +33 -28
- package/docs/es/benchmark/solid.md +14 -11
- package/docs/es/benchmark/svelte.md +13 -10
- package/docs/es/benchmark/tanstack.md +30 -25
- package/docs/es/benchmark/vue.md +12 -8
- package/docs/es/cli/build.md +8 -1
- package/docs/es/cli/configuration.md +3 -1
- package/docs/es/cli/doc-review.md +8 -1
- package/docs/es/cli/doc-translate.md +5 -1
- package/docs/es/cli/extract.md +2 -1
- package/docs/es/cli/fill.md +5 -1
- package/docs/es/cli/index.md +4 -5
- package/docs/es/cli/live.md +5 -1
- package/docs/es/cli/login.md +2 -2
- package/docs/es/cli/pull.md +5 -1
- package/docs/es/cli/push.md +5 -1
- package/docs/es/cli/scan.md +5 -1
- package/docs/es/cli/standalone.md +5 -1
- package/docs/es/cli/test.md +5 -1
- package/docs/es/cli/watch.md +5 -1
- package/docs/es/compat/i18n-js.md +1 -1
- package/docs/es/compat/i18next.md +1 -1
- package/docs/es/compat/lingui.md +1 -1
- package/docs/es/compat/next-i18next.md +1 -1
- package/docs/es/compat/next-intl.md +1 -1
- package/docs/es/compat/next-translate.md +1 -1
- package/docs/es/compat/ngx-translate.md +1 -1
- package/docs/es/compat/nuxtjs-i18n.md +1 -1
- package/docs/es/compat/polyglot.md +1 -1
- package/docs/es/compat/react-i18next.md +1 -1
- package/docs/es/compat/react-intl.md +1 -1
- package/docs/es/compat/svelte-i18n.md +1 -1
- package/docs/es/compat/transloco.md +1 -1
- package/docs/es/compat/vue-i18n.md +1 -1
- package/docs/es/interest_of_intlayer.md +1 -1
- package/docs/es/intlayer_with_remix_3.md +540 -0
- package/docs/fr/benchmark/index.md +4 -1
- package/docs/fr/benchmark/nextjs.md +33 -28
- package/docs/fr/benchmark/solid.md +14 -11
- package/docs/fr/benchmark/svelte.md +13 -10
- package/docs/fr/benchmark/tanstack.md +30 -25
- package/docs/fr/benchmark/vue.md +12 -8
- package/docs/fr/cli/build.md +8 -1
- package/docs/fr/cli/configuration.md +3 -1
- package/docs/fr/cli/doc-review.md +8 -1
- package/docs/fr/cli/doc-translate.md +5 -1
- package/docs/fr/cli/extract.md +2 -1
- package/docs/fr/cli/fill.md +5 -1
- package/docs/fr/cli/index.md +4 -5
- package/docs/fr/cli/live.md +5 -1
- package/docs/fr/cli/login.md +2 -2
- package/docs/fr/cli/pull.md +5 -1
- package/docs/fr/cli/push.md +5 -1
- package/docs/fr/cli/scan.md +5 -1
- package/docs/fr/cli/standalone.md +5 -1
- package/docs/fr/cli/test.md +5 -1
- package/docs/fr/cli/watch.md +5 -1
- package/docs/fr/compat/i18n-js.md +1 -1
- package/docs/fr/compat/i18next.md +1 -1
- package/docs/fr/compat/lingui.md +1 -1
- package/docs/fr/compat/next-i18next.md +1 -1
- package/docs/fr/compat/next-intl.md +1 -1
- package/docs/fr/compat/next-translate.md +1 -1
- package/docs/fr/compat/ngx-translate.md +1 -1
- package/docs/fr/compat/nuxtjs-i18n.md +1 -1
- package/docs/fr/compat/polyglot.md +1 -1
- package/docs/fr/compat/react-i18next.md +1 -1
- package/docs/fr/compat/react-intl.md +1 -1
- package/docs/fr/compat/svelte-i18n.md +1 -1
- package/docs/fr/compat/transloco.md +1 -1
- package/docs/fr/compat/vue-i18n.md +1 -1
- package/docs/fr/interest_of_intlayer.md +1 -1
- package/docs/fr/intlayer_with_remix_3.md +540 -0
- package/docs/hi/benchmark/index.md +4 -1
- package/docs/hi/benchmark/nextjs.md +33 -28
- package/docs/hi/benchmark/solid.md +14 -11
- package/docs/hi/benchmark/svelte.md +13 -10
- package/docs/hi/benchmark/tanstack.md +30 -25
- package/docs/hi/benchmark/vue.md +12 -8
- package/docs/hi/cli/build.md +8 -1
- package/docs/hi/cli/configuration.md +3 -1
- package/docs/hi/cli/doc-review.md +8 -1
- package/docs/hi/cli/doc-translate.md +5 -1
- package/docs/hi/cli/extract.md +2 -1
- package/docs/hi/cli/fill.md +5 -1
- package/docs/hi/cli/index.md +4 -5
- package/docs/hi/cli/live.md +5 -1
- package/docs/hi/cli/login.md +2 -2
- package/docs/hi/cli/pull.md +5 -1
- package/docs/hi/cli/push.md +5 -1
- package/docs/hi/cli/scan.md +5 -1
- package/docs/hi/cli/standalone.md +5 -1
- package/docs/hi/cli/test.md +5 -1
- package/docs/hi/cli/watch.md +5 -1
- package/docs/hi/compat/i18n-js.md +1 -1
- package/docs/hi/compat/i18next.md +1 -1
- package/docs/hi/compat/lingui.md +1 -1
- package/docs/hi/compat/next-i18next.md +1 -1
- package/docs/hi/compat/next-intl.md +1 -1
- package/docs/hi/compat/next-translate.md +1 -1
- package/docs/hi/compat/ngx-translate.md +1 -1
- package/docs/hi/compat/nuxtjs-i18n.md +1 -1
- package/docs/hi/compat/polyglot.md +1 -1
- package/docs/hi/compat/react-i18next.md +1 -1
- package/docs/hi/compat/react-intl.md +1 -1
- package/docs/hi/compat/svelte-i18n.md +1 -1
- package/docs/hi/compat/transloco.md +1 -1
- package/docs/hi/compat/vue-i18n.md +1 -1
- package/docs/hi/interest_of_intlayer.md +1 -1
- package/docs/hi/intlayer_with_remix_3.md +543 -0
- package/docs/id/benchmark/index.md +4 -1
- package/docs/id/benchmark/nextjs.md +33 -28
- package/docs/id/benchmark/solid.md +14 -11
- package/docs/id/benchmark/svelte.md +13 -10
- package/docs/id/benchmark/tanstack.md +30 -25
- package/docs/id/benchmark/vue.md +12 -8
- package/docs/id/cli/build.md +8 -1
- package/docs/id/cli/configuration.md +3 -1
- package/docs/id/cli/doc-review.md +8 -1
- package/docs/id/cli/doc-translate.md +5 -1
- package/docs/id/cli/extract.md +2 -1
- package/docs/id/cli/fill.md +5 -1
- package/docs/id/cli/index.md +4 -5
- package/docs/id/cli/live.md +5 -1
- package/docs/id/cli/login.md +2 -2
- package/docs/id/cli/pull.md +5 -1
- package/docs/id/cli/push.md +5 -1
- package/docs/id/cli/scan.md +5 -1
- package/docs/id/cli/standalone.md +5 -1
- package/docs/id/cli/test.md +5 -1
- package/docs/id/cli/watch.md +5 -1
- package/docs/id/compat/i18n-js.md +1 -1
- package/docs/id/compat/i18next.md +1 -1
- package/docs/id/compat/lingui.md +1 -1
- package/docs/id/compat/next-i18next.md +1 -1
- package/docs/id/compat/next-intl.md +1 -1
- package/docs/id/compat/next-translate.md +1 -1
- package/docs/id/compat/ngx-translate.md +1 -1
- package/docs/id/compat/nuxtjs-i18n.md +1 -1
- package/docs/id/compat/polyglot.md +1 -1
- package/docs/id/compat/react-i18next.md +1 -1
- package/docs/id/compat/react-intl.md +1 -1
- package/docs/id/compat/svelte-i18n.md +1 -1
- package/docs/id/compat/transloco.md +1 -1
- package/docs/id/compat/vue-i18n.md +1 -1
- package/docs/id/interest_of_intlayer.md +1 -1
- package/docs/id/intlayer_with_remix_3.md +566 -0
- package/docs/it/benchmark/index.md +4 -1
- package/docs/it/benchmark/nextjs.md +33 -28
- package/docs/it/benchmark/solid.md +14 -11
- package/docs/it/benchmark/svelte.md +13 -10
- package/docs/it/benchmark/tanstack.md +30 -25
- package/docs/it/benchmark/vue.md +12 -8
- package/docs/it/cli/build.md +8 -1
- package/docs/it/cli/configuration.md +3 -1
- package/docs/it/cli/doc-review.md +8 -1
- package/docs/it/cli/doc-translate.md +5 -1
- package/docs/it/cli/extract.md +2 -1
- package/docs/it/cli/fill.md +5 -1
- package/docs/it/cli/index.md +4 -5
- package/docs/it/cli/live.md +5 -1
- package/docs/it/cli/login.md +2 -2
- package/docs/it/cli/pull.md +5 -1
- package/docs/it/cli/push.md +5 -1
- package/docs/it/cli/scan.md +5 -1
- package/docs/it/cli/standalone.md +5 -1
- package/docs/it/cli/test.md +5 -1
- package/docs/it/cli/watch.md +5 -1
- package/docs/it/compat/i18n-js.md +1 -1
- package/docs/it/compat/i18next.md +1 -1
- package/docs/it/compat/lingui.md +1 -1
- package/docs/it/compat/next-i18next.md +1 -1
- package/docs/it/compat/next-intl.md +1 -1
- package/docs/it/compat/next-translate.md +1 -1
- package/docs/it/compat/ngx-translate.md +1 -1
- package/docs/it/compat/nuxtjs-i18n.md +1 -1
- package/docs/it/compat/polyglot.md +1 -1
- package/docs/it/compat/react-i18next.md +1 -1
- package/docs/it/compat/react-intl.md +1 -1
- package/docs/it/compat/svelte-i18n.md +1 -1
- package/docs/it/compat/transloco.md +1 -1
- package/docs/it/compat/vue-i18n.md +1 -1
- package/docs/it/interest_of_intlayer.md +1 -1
- package/docs/it/intlayer_with_remix_3.md +558 -0
- package/docs/ja/benchmark/index.md +4 -1
- package/docs/ja/benchmark/nextjs.md +33 -28
- package/docs/ja/benchmark/solid.md +14 -11
- package/docs/ja/benchmark/svelte.md +13 -10
- package/docs/ja/benchmark/tanstack.md +30 -25
- package/docs/ja/benchmark/vue.md +12 -8
- package/docs/ja/cli/build.md +8 -1
- package/docs/ja/cli/configuration.md +3 -1
- package/docs/ja/cli/doc-review.md +8 -1
- package/docs/ja/cli/doc-translate.md +5 -1
- package/docs/ja/cli/extract.md +2 -1
- package/docs/ja/cli/fill.md +5 -1
- package/docs/ja/cli/index.md +4 -5
- package/docs/ja/cli/live.md +5 -1
- package/docs/ja/cli/login.md +2 -2
- package/docs/ja/cli/pull.md +5 -1
- package/docs/ja/cli/push.md +5 -1
- package/docs/ja/cli/scan.md +5 -1
- package/docs/ja/cli/standalone.md +5 -1
- package/docs/ja/cli/test.md +5 -1
- package/docs/ja/cli/watch.md +5 -1
- package/docs/ja/compat/i18n-js.md +1 -1
- package/docs/ja/compat/i18next.md +1 -1
- package/docs/ja/compat/lingui.md +1 -1
- package/docs/ja/compat/next-i18next.md +1 -1
- package/docs/ja/compat/next-intl.md +1 -1
- package/docs/ja/compat/next-translate.md +1 -1
- package/docs/ja/compat/ngx-translate.md +1 -1
- package/docs/ja/compat/nuxtjs-i18n.md +1 -1
- package/docs/ja/compat/polyglot.md +1 -1
- package/docs/ja/compat/react-i18next.md +1 -1
- package/docs/ja/compat/react-intl.md +1 -1
- package/docs/ja/compat/svelte-i18n.md +1 -1
- package/docs/ja/compat/transloco.md +1 -1
- package/docs/ja/compat/vue-i18n.md +1 -1
- package/docs/ja/interest_of_intlayer.md +1 -1
- package/docs/ja/intlayer_with_remix_3.md +558 -0
- package/docs/ko/benchmark/index.md +4 -1
- package/docs/ko/benchmark/nextjs.md +33 -28
- package/docs/ko/benchmark/solid.md +14 -11
- package/docs/ko/benchmark/svelte.md +13 -10
- package/docs/ko/benchmark/tanstack.md +30 -25
- package/docs/ko/benchmark/vue.md +12 -8
- package/docs/ko/cli/build.md +8 -1
- package/docs/ko/cli/configuration.md +3 -1
- package/docs/ko/cli/doc-review.md +8 -1
- package/docs/ko/cli/doc-translate.md +5 -1
- package/docs/ko/cli/extract.md +2 -1
- package/docs/ko/cli/fill.md +5 -1
- package/docs/ko/cli/index.md +4 -5
- package/docs/ko/cli/live.md +5 -1
- package/docs/ko/cli/login.md +2 -2
- package/docs/ko/cli/pull.md +5 -1
- package/docs/ko/cli/push.md +5 -1
- package/docs/ko/cli/scan.md +5 -1
- package/docs/ko/cli/standalone.md +5 -1
- package/docs/ko/cli/test.md +5 -1
- package/docs/ko/cli/watch.md +5 -1
- package/docs/ko/compat/i18n-js.md +1 -1
- package/docs/ko/compat/i18next.md +1 -1
- package/docs/ko/compat/lingui.md +1 -1
- package/docs/ko/compat/next-i18next.md +1 -1
- package/docs/ko/compat/next-intl.md +1 -1
- package/docs/ko/compat/next-translate.md +1 -1
- package/docs/ko/compat/ngx-translate.md +1 -1
- package/docs/ko/compat/nuxtjs-i18n.md +1 -1
- package/docs/ko/compat/polyglot.md +1 -1
- package/docs/ko/compat/react-i18next.md +1 -1
- package/docs/ko/compat/react-intl.md +1 -1
- package/docs/ko/compat/svelte-i18n.md +1 -1
- package/docs/ko/compat/transloco.md +1 -1
- package/docs/ko/compat/vue-i18n.md +1 -1
- package/docs/ko/interest_of_intlayer.md +1 -1
- package/docs/ko/intlayer_with_remix_3.md +543 -0
- package/docs/nl/cli/index.md +4 -5
- package/docs/nl/cli/scan.md +5 -1
- package/docs/nl/cli/standalone.md +5 -1
- package/docs/nl/interest_of_intlayer.md +1 -1
- package/docs/pl/benchmark/index.md +4 -1
- package/docs/pl/benchmark/nextjs.md +33 -28
- package/docs/pl/benchmark/solid.md +14 -11
- package/docs/pl/benchmark/svelte.md +13 -10
- package/docs/pl/benchmark/tanstack.md +30 -25
- package/docs/pl/benchmark/vue.md +12 -8
- package/docs/pl/cli/build.md +8 -1
- package/docs/pl/cli/configuration.md +3 -1
- package/docs/pl/cli/doc-review.md +8 -1
- package/docs/pl/cli/doc-translate.md +5 -1
- package/docs/pl/cli/extract.md +2 -1
- package/docs/pl/cli/fill.md +5 -1
- package/docs/pl/cli/index.md +4 -5
- package/docs/pl/cli/live.md +5 -1
- package/docs/pl/cli/login.md +2 -2
- package/docs/pl/cli/pull.md +5 -1
- package/docs/pl/cli/push.md +5 -1
- package/docs/pl/cli/scan.md +5 -1
- package/docs/pl/cli/standalone.md +5 -1
- package/docs/pl/cli/test.md +5 -1
- package/docs/pl/cli/watch.md +5 -1
- package/docs/pl/compat/i18n-js.md +1 -1
- package/docs/pl/compat/i18next.md +1 -1
- package/docs/pl/compat/lingui.md +1 -1
- package/docs/pl/compat/next-i18next.md +1 -1
- package/docs/pl/compat/next-intl.md +1 -1
- package/docs/pl/compat/next-translate.md +1 -1
- package/docs/pl/compat/ngx-translate.md +1 -1
- package/docs/pl/compat/nuxtjs-i18n.md +1 -1
- package/docs/pl/compat/polyglot.md +1 -1
- package/docs/pl/compat/react-i18next.md +1 -1
- package/docs/pl/compat/react-intl.md +1 -1
- package/docs/pl/compat/svelte-i18n.md +1 -1
- package/docs/pl/compat/transloco.md +1 -1
- package/docs/pl/compat/vue-i18n.md +1 -1
- package/docs/pl/interest_of_intlayer.md +1 -1
- package/docs/pl/intlayer_with_remix_3.md +551 -0
- package/docs/pt/benchmark/index.md +4 -1
- package/docs/pt/benchmark/nextjs.md +33 -28
- package/docs/pt/benchmark/solid.md +14 -11
- package/docs/pt/benchmark/svelte.md +13 -10
- package/docs/pt/benchmark/tanstack.md +30 -25
- package/docs/pt/benchmark/vue.md +12 -8
- package/docs/pt/cli/build.md +8 -1
- package/docs/pt/cli/configuration.md +3 -1
- package/docs/pt/cli/doc-review.md +8 -1
- package/docs/pt/cli/doc-translate.md +5 -1
- package/docs/pt/cli/extract.md +2 -1
- package/docs/pt/cli/fill.md +5 -1
- package/docs/pt/cli/index.md +4 -5
- package/docs/pt/cli/live.md +5 -1
- package/docs/pt/cli/login.md +2 -2
- package/docs/pt/cli/pull.md +5 -1
- package/docs/pt/cli/push.md +5 -1
- package/docs/pt/cli/scan.md +5 -1
- package/docs/pt/cli/standalone.md +5 -1
- package/docs/pt/cli/test.md +5 -1
- package/docs/pt/cli/watch.md +5 -1
- package/docs/pt/compat/i18n-js.md +1 -1
- package/docs/pt/compat/i18next.md +1 -1
- package/docs/pt/compat/lingui.md +1 -1
- package/docs/pt/compat/next-i18next.md +1 -1
- package/docs/pt/compat/next-intl.md +1 -1
- package/docs/pt/compat/next-translate.md +1 -1
- package/docs/pt/compat/ngx-translate.md +1 -1
- package/docs/pt/compat/nuxtjs-i18n.md +1 -1
- package/docs/pt/compat/polyglot.md +1 -1
- package/docs/pt/compat/react-i18next.md +1 -1
- package/docs/pt/compat/react-intl.md +1 -1
- package/docs/pt/compat/svelte-i18n.md +1 -1
- package/docs/pt/compat/transloco.md +1 -1
- package/docs/pt/compat/vue-i18n.md +1 -1
- package/docs/pt/interest_of_intlayer.md +1 -1
- package/docs/pt/intlayer_with_remix_3.md +558 -0
- package/docs/ru/benchmark/index.md +4 -1
- package/docs/ru/benchmark/nextjs.md +33 -28
- package/docs/ru/benchmark/solid.md +14 -11
- package/docs/ru/benchmark/svelte.md +13 -10
- package/docs/ru/benchmark/tanstack.md +30 -25
- package/docs/ru/benchmark/vue.md +12 -8
- package/docs/ru/cli/build.md +8 -1
- package/docs/ru/cli/configuration.md +3 -1
- package/docs/ru/cli/doc-review.md +8 -1
- package/docs/ru/cli/doc-translate.md +5 -1
- package/docs/ru/cli/extract.md +2 -1
- package/docs/ru/cli/fill.md +5 -1
- package/docs/ru/cli/index.md +4 -5
- package/docs/ru/cli/live.md +5 -1
- package/docs/ru/cli/login.md +2 -2
- package/docs/ru/cli/pull.md +5 -1
- package/docs/ru/cli/push.md +5 -1
- package/docs/ru/cli/scan.md +5 -1
- package/docs/ru/cli/standalone.md +5 -1
- package/docs/ru/cli/test.md +5 -1
- package/docs/ru/cli/watch.md +5 -1
- package/docs/ru/compat/i18n-js.md +1 -1
- package/docs/ru/compat/i18next.md +1 -1
- package/docs/ru/compat/lingui.md +1 -1
- package/docs/ru/compat/next-i18next.md +1 -1
- package/docs/ru/compat/next-intl.md +1 -1
- package/docs/ru/compat/next-translate.md +1 -1
- package/docs/ru/compat/ngx-translate.md +1 -1
- package/docs/ru/compat/nuxtjs-i18n.md +1 -1
- package/docs/ru/compat/polyglot.md +1 -1
- package/docs/ru/compat/react-i18next.md +1 -1
- package/docs/ru/compat/react-intl.md +1 -1
- package/docs/ru/compat/svelte-i18n.md +1 -1
- package/docs/ru/compat/transloco.md +1 -1
- package/docs/ru/compat/vue-i18n.md +1 -1
- package/docs/ru/interest_of_intlayer.md +1 -1
- package/docs/ru/intlayer_with_remix_3.md +558 -0
- package/docs/tr/benchmark/index.md +4 -1
- package/docs/tr/benchmark/nextjs.md +33 -28
- package/docs/tr/benchmark/solid.md +14 -11
- package/docs/tr/benchmark/svelte.md +13 -10
- package/docs/tr/benchmark/tanstack.md +30 -25
- package/docs/tr/benchmark/vue.md +12 -8
- package/docs/tr/cli/build.md +8 -1
- package/docs/tr/cli/configuration.md +3 -1
- package/docs/tr/cli/doc-review.md +8 -1
- package/docs/tr/cli/doc-translate.md +5 -1
- package/docs/tr/cli/extract.md +2 -1
- package/docs/tr/cli/fill.md +5 -1
- package/docs/tr/cli/index.md +4 -5
- package/docs/tr/cli/live.md +5 -1
- package/docs/tr/cli/login.md +2 -2
- package/docs/tr/cli/pull.md +5 -1
- package/docs/tr/cli/push.md +5 -1
- package/docs/tr/cli/scan.md +5 -1
- package/docs/tr/cli/standalone.md +5 -1
- package/docs/tr/cli/test.md +5 -1
- package/docs/tr/cli/watch.md +5 -1
- package/docs/tr/compat/i18n-js.md +1 -1
- package/docs/tr/compat/i18next.md +1 -1
- package/docs/tr/compat/lingui.md +1 -1
- package/docs/tr/compat/next-i18next.md +1 -1
- package/docs/tr/compat/next-intl.md +1 -1
- package/docs/tr/compat/next-translate.md +1 -1
- package/docs/tr/compat/ngx-translate.md +1 -1
- package/docs/tr/compat/nuxtjs-i18n.md +1 -1
- package/docs/tr/compat/polyglot.md +1 -1
- package/docs/tr/compat/react-i18next.md +1 -1
- package/docs/tr/compat/react-intl.md +1 -1
- package/docs/tr/compat/svelte-i18n.md +1 -1
- package/docs/tr/compat/transloco.md +1 -1
- package/docs/tr/compat/vue-i18n.md +1 -1
- package/docs/tr/interest_of_intlayer.md +1 -1
- package/docs/tr/intlayer_with_remix_3.md +566 -0
- package/docs/uk/benchmark/index.md +4 -1
- package/docs/uk/benchmark/nextjs.md +33 -28
- package/docs/uk/benchmark/solid.md +14 -11
- package/docs/uk/benchmark/svelte.md +13 -10
- package/docs/uk/benchmark/tanstack.md +30 -25
- package/docs/uk/benchmark/vue.md +12 -8
- package/docs/uk/cli/build.md +8 -1
- package/docs/uk/cli/configuration.md +3 -1
- package/docs/uk/cli/doc-review.md +8 -1
- package/docs/uk/cli/doc-translate.md +5 -1
- package/docs/uk/cli/extract.md +2 -1
- package/docs/uk/cli/fill.md +5 -1
- package/docs/uk/cli/index.md +4 -5
- package/docs/uk/cli/live.md +5 -1
- package/docs/uk/cli/login.md +2 -2
- package/docs/uk/cli/pull.md +5 -1
- package/docs/uk/cli/push.md +5 -1
- package/docs/uk/cli/scan.md +5 -1
- package/docs/uk/cli/standalone.md +5 -1
- package/docs/uk/cli/test.md +5 -1
- package/docs/uk/cli/watch.md +5 -1
- package/docs/uk/compat/i18n-js.md +1 -1
- package/docs/uk/compat/i18next.md +1 -1
- package/docs/uk/compat/lingui.md +1 -1
- package/docs/uk/compat/next-i18next.md +1 -1
- package/docs/uk/compat/next-intl.md +1 -1
- package/docs/uk/compat/next-translate.md +1 -1
- package/docs/uk/compat/ngx-translate.md +1 -1
- package/docs/uk/compat/nuxtjs-i18n.md +1 -1
- package/docs/uk/compat/polyglot.md +1 -1
- package/docs/uk/compat/react-i18next.md +1 -1
- package/docs/uk/compat/react-intl.md +1 -1
- package/docs/uk/compat/svelte-i18n.md +1 -1
- package/docs/uk/compat/transloco.md +1 -1
- package/docs/uk/compat/vue-i18n.md +1 -1
- package/docs/uk/interest_of_intlayer.md +1 -1
- package/docs/uk/intlayer_with_remix_3.md +566 -0
- package/docs/ur/cli/index.md +4 -5
- package/docs/ur/cli/scan.md +5 -1
- package/docs/ur/cli/standalone.md +5 -1
- package/docs/ur/interest_of_intlayer.md +1 -1
- package/docs/vi/benchmark/index.md +4 -1
- package/docs/vi/benchmark/nextjs.md +33 -28
- package/docs/vi/benchmark/solid.md +14 -11
- package/docs/vi/benchmark/svelte.md +13 -10
- package/docs/vi/benchmark/tanstack.md +30 -25
- package/docs/vi/benchmark/vue.md +12 -8
- package/docs/vi/cli/build.md +8 -1
- package/docs/vi/cli/configuration.md +3 -1
- package/docs/vi/cli/doc-review.md +8 -1
- package/docs/vi/cli/doc-translate.md +5 -1
- package/docs/vi/cli/extract.md +2 -1
- package/docs/vi/cli/fill.md +5 -1
- package/docs/vi/cli/index.md +4 -5
- package/docs/vi/cli/live.md +5 -1
- package/docs/vi/cli/login.md +2 -2
- package/docs/vi/cli/pull.md +5 -1
- package/docs/vi/cli/push.md +5 -1
- package/docs/vi/cli/scan.md +5 -1
- package/docs/vi/cli/standalone.md +5 -1
- package/docs/vi/cli/test.md +5 -1
- package/docs/vi/cli/watch.md +5 -1
- package/docs/vi/compat/i18n-js.md +1 -1
- package/docs/vi/compat/i18next.md +1 -1
- package/docs/vi/compat/lingui.md +1 -1
- package/docs/vi/compat/next-i18next.md +1 -1
- package/docs/vi/compat/next-intl.md +1 -1
- package/docs/vi/compat/next-translate.md +1 -1
- package/docs/vi/compat/ngx-translate.md +1 -1
- package/docs/vi/compat/nuxtjs-i18n.md +1 -1
- package/docs/vi/compat/polyglot.md +1 -1
- package/docs/vi/compat/react-i18next.md +1 -1
- package/docs/vi/compat/react-intl.md +1 -1
- package/docs/vi/compat/svelte-i18n.md +1 -1
- package/docs/vi/compat/transloco.md +1 -1
- package/docs/vi/compat/vue-i18n.md +1 -1
- package/docs/vi/interest_of_intlayer.md +1 -1
- package/docs/vi/intlayer_with_remix_3.md +566 -0
- package/docs/zh/benchmark/index.md +4 -1
- package/docs/zh/benchmark/nextjs.md +33 -28
- package/docs/zh/benchmark/solid.md +14 -11
- package/docs/zh/benchmark/svelte.md +13 -10
- package/docs/zh/benchmark/tanstack.md +30 -25
- package/docs/zh/benchmark/vue.md +12 -8
- package/docs/zh/cli/build.md +8 -1
- package/docs/zh/cli/configuration.md +3 -1
- package/docs/zh/cli/doc-review.md +8 -1
- package/docs/zh/cli/doc-translate.md +5 -1
- package/docs/zh/cli/extract.md +2 -1
- package/docs/zh/cli/fill.md +5 -1
- package/docs/zh/cli/index.md +4 -5
- package/docs/zh/cli/live.md +5 -1
- package/docs/zh/cli/login.md +2 -2
- package/docs/zh/cli/pull.md +5 -1
- package/docs/zh/cli/push.md +5 -1
- package/docs/zh/cli/scan.md +5 -1
- package/docs/zh/cli/standalone.md +5 -1
- package/docs/zh/cli/test.md +5 -1
- package/docs/zh/cli/watch.md +5 -1
- package/docs/zh/compat/i18n-js.md +1 -1
- package/docs/zh/compat/i18next.md +1 -1
- package/docs/zh/compat/lingui.md +1 -1
- package/docs/zh/compat/next-i18next.md +1 -1
- package/docs/zh/compat/next-intl.md +1 -1
- package/docs/zh/compat/next-translate.md +1 -1
- package/docs/zh/compat/ngx-translate.md +1 -1
- package/docs/zh/compat/nuxtjs-i18n.md +1 -1
- package/docs/zh/compat/polyglot.md +1 -1
- package/docs/zh/compat/react-i18next.md +1 -1
- package/docs/zh/compat/react-intl.md +1 -1
- package/docs/zh/compat/svelte-i18n.md +1 -1
- package/docs/zh/compat/transloco.md +1 -1
- package/docs/zh/compat/vue-i18n.md +1 -1
- package/docs/zh/interest_of_intlayer.md +1 -1
- package/docs/zh/intlayer_with_remix_3.md +558 -0
- package/docs/zh-TW/interest_of_intlayer.md +1 -1
- package/frequent_questions/ar/claude_code_token_consumption.md +152 -0
- package/frequent_questions/de/claude_code_token_consumption.md +152 -0
- package/frequent_questions/en/claude_code_token_consumption.md +152 -0
- package/frequent_questions/en-GB/claude_code_token_consumption.md +152 -0
- package/frequent_questions/es/claude_code_token_consumption.md +152 -0
- package/frequent_questions/fr/claude_code_token_consumption.md +152 -0
- package/frequent_questions/hi/claude_code_token_consumption.md +152 -0
- package/frequent_questions/id/claude_code_token_consumption.md +152 -0
- package/frequent_questions/it/claude_code_token_consumption.md +152 -0
- package/frequent_questions/ja/claude_code_token_consumption.md +152 -0
- package/frequent_questions/ko/claude_code_token_consumption.md +152 -0
- package/frequent_questions/pl/claude_code_token_consumption.md +152 -0
- package/frequent_questions/pt/claude_code_token_consumption.md +152 -0
- package/frequent_questions/ru/claude_code_token_consumption.md +152 -0
- package/frequent_questions/tr/claude_code_token_consumption.md +152 -0
- package/frequent_questions/uk/claude_code_token_consumption.md +152 -0
- package/frequent_questions/vi/claude_code_token_consumption.md +152 -0
- package/frequent_questions/zh/claude_code_token_consumption.md +152 -0
- package/package.json +7 -7
- package/src/generated/blog.entry.ts +180 -0
- package/src/generated/docs.entry.ts +0 -20
- package/src/generated/frequentQuestions.entry.ts +20 -0
- package/docs/ar/cli/ci.md +0 -186
- package/docs/de/cli/ci.md +0 -186
- package/docs/en/cli/ci.md +0 -216
- package/docs/en-GB/cli/ci.md +0 -186
- package/docs/es/cli/ci.md +0 -186
- package/docs/fr/cli/ci.md +0 -186
- package/docs/hi/cli/ci.md +0 -186
- package/docs/id/cli/ci.md +0 -186
- package/docs/it/cli/ci.md +0 -186
- package/docs/ja/cli/ci.md +0 -186
- package/docs/ko/cli/ci.md +0 -186
- package/docs/pl/cli/ci.md +0 -186
- package/docs/pt/cli/ci.md +0 -186
- package/docs/ru/cli/ci.md +0 -186
- package/docs/tr/cli/ci.md +0 -186
- package/docs/uk/cli/ci.md +0 -186
- package/docs/vi/cli/ci.md +0 -186
- package/docs/zh/cli/ci.md +0 -186
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-09
|
|
3
|
+
updatedAt: 2026-09-10
|
|
4
|
+
title: "जावास्क्रिप्ट i18n का इतिहास: 2011 से 2026 तक"
|
|
5
|
+
description: 2011 से 2026 तक फ्रंटएंड अंतर्राष्ट्रीयकरण के विकास का अन्वेषण करें। React, Vue, Next.js, Angular, Svelte और Solid में रिलीज़ की तारीखें, वास्तुशिल्प समस्याएं और प्रमुख नवाचार देखें।
|
|
6
|
+
keywords:
|
|
7
|
+
- i18n इतिहास
|
|
8
|
+
- जावास्क्रिप्ट अंतर्राष्ट्रीयकरण
|
|
9
|
+
- React i18n
|
|
10
|
+
- Next.js i18n
|
|
11
|
+
- Vue i18n
|
|
12
|
+
- Angular i18n
|
|
13
|
+
- Svelte i18n
|
|
14
|
+
- Solid i18n
|
|
15
|
+
- i18next
|
|
16
|
+
- intlayer
|
|
17
|
+
slugs:
|
|
18
|
+
- blog
|
|
19
|
+
- history-of-js-internationalization
|
|
20
|
+
author: aymericzip
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# जावास्क्रिप्ट अंतर्राष्ट्रीयकरण (i18n) का इतिहास
|
|
24
|
+
|
|
25
|
+
अंतर्राष्ट्रीयकरण कोई नई अवधारणा नहीं है। जावास्क्रिप्ट और आधुनिक वेब के आने से बहुत पहले ही सॉफ़्टवेयर को कई भाषाओं, मुद्राओं, दिनांक स्वरूपों और क्षेत्रीय मानकों को संभालना पड़ता था। 1980 के दशक में शुरुआती ग्राफिकल ऑपरेटिंग सिस्टम जैसे GEM और Mac OS पहले से ही इनमें से कई समस्याओं का समाधान कर रहे थे।
|
|
26
|
+
|
|
27
|
+
यही विचार अंततः बैकएंड फ्रेमवर्क में भी पहुंचे। Ruby on Rails, Django, Java फ्रेमवर्क और PHP अनुप्रयोगों ने अंतर्राष्ट्रीयकरण के लिए अपने-अपने दृष्टिकोण विकसित किए। बुनियादी प्रश्न काफी हद तक स्पष्ट थे:
|
|
28
|
+
|
|
29
|
+
- अनुवाद कहां संग्रहीत होने चाहिए?
|
|
30
|
+
- हम दिनांक, संख्याएं और मुद्राएं कैसे स्वरूपित करें?
|
|
31
|
+
- हम बहुवचन और व्याकरणिक अंतरों को कैसे संभालें?
|
|
32
|
+
- हम यह कैसे तय करें कि उपयोगकर्ता को कौन सी भाषा दिखनी चाहिए?
|
|
33
|
+
|
|
34
|
+
जब सर्वर पृष्ठ को रेंडर करता था, तो प्रक्रिया अपेक्षाकृत सीधी थी। एप्लिकेशन उपयुक्त अनुवाद लोड कर सकता था, HTML रेंडर कर सकता था और परिणाम ब्राउज़र को भेज सकता था।
|
|
35
|
+
|
|
36
|
+
> ध्यान दें कि PHP और GNU gettext उस `t()` हेल्पर पैटर्न के अग्रदूत थे जो बाद में जावास्क्रिप्ट और JSX में सर्वव्यापी हो गया।
|
|
37
|
+
|
|
38
|
+
इसके बाद जावास्क्रिप्ट ने ब्राउज़र पर नियंत्रण करना शुरू किया।
|
|
39
|
+
|
|
40
|
+
जैसे-जैसे एप्लिकेशन सर्वर-रेंडर किए गए पेजों से जटिल क्लाइंट-साइड एप्लिकेशन में बदले, अंतर्राष्ट्रीयकरण फ्रंटएंड की समस्या भी बन गया। अचानक, ब्राउज़र को पेज को रीलोड किए बिना अनुवाद लोड करने, भाषा बदलने, मान स्वरूपित करने, बहुवचन संभालने और UI अपडेट करने की आवश्यकता पड़ी।
|
|
41
|
+
|
|
42
|
+
और इसने एक नया प्रश्न खड़ा किया:
|
|
43
|
+
|
|
44
|
+
**आप हर उपयोगकर्ता को भारी मात्रा में अनुवाद डेटा और रनटाइम कोड भेजे बिना किसी एप्लिकेशन को बहुभाषी कैसे बनाते हैं?**
|
|
45
|
+
|
|
46
|
+
इस प्रश्न ने एक दशक से अधिक समय तक जावास्क्रिप्ट i18n के विकास को आकार दिया है।
|
|
47
|
+
|
|
48
|
+
समाधानों में काफी बदलाव आया है। हम वैश्विक जावास्क्रिप्ट ऑब्जेक्ट्स और `t('some.key')` कॉल्स से फ्रेमवर्क-विशिष्ट लाइब्रेरीज़, कंपाइल-टाइम एक्सट्रैक्शन, टाइपस्क्रिप्ट-जेनरेटेड टाइप्स, सर्वर कंपोनेंट्स, ट्री-शेकिंग और अंततः कंपाइलर-आधारित दृष्टिकोणों तक पहुंचे हैं जहां अनुवाद बिल्ड के दौरान जावास्क्रिप्ट कोड में बदल जाते हैं।
|
|
49
|
+
|
|
50
|
+
यह लेख 2011 से 2026 तक के इस विकास पर नज़र डालता है: प्रत्येक पीढ़ी के उपकरणों ने क्या हल करने का प्रयास किया, क्या सफल रहा, क्या नहीं, और फ्रंटएंड आर्किटेक्चर ने आज i18n के हमारे तरीके को कैसे प्रभावित किया।
|
|
51
|
+
|
|
52
|
+

|
|
53
|
+
|
|
54
|
+
## विषय सूची
|
|
55
|
+
|
|
56
|
+
<TOC/>
|
|
57
|
+
|
|
58
|
+
## शुरुआती वेब: 2016 से पहले जावास्क्रिप्ट अंतर्राष्ट्रीयकरण
|
|
59
|
+
|
|
60
|
+
आधुनिक i18n टूल्स की स्थिति को समझने के लिए, हमें यह देखना होगा कि 2011 और 2015 के बीच वेब विकास कैसा था।
|
|
61
|
+
|
|
62
|
+
### क्लाइंट का बढ़ता दायरा
|
|
63
|
+
|
|
64
|
+
2010 के दशक की शुरुआत में, अंतर्राष्ट्रीयकरण मुख्य रूप से सर्वर-साइड ज़िम्मेदारी थी। जावास्क्रिप्ट काफी हद तक jQuery के माध्यम से एनिमेशन, फॉर्म सत्यापन और छोटे विजेट्स के लिए एक अतिरिक्त परत मात्र थी।
|
|
65
|
+
|
|
66
|
+
जैसे-जैसे सिंगल-पेज एप्लिकेशन (SPAs) Backbone.js, Knockout.js और शुरुआती AngularJS के साथ लोकप्रिय हुए, रेंडरिंग लॉजिक सीधे ब्राउज़र में स्थानांतरित हो गया। क्लाइंट-साइड कोड को अचानक पूर्ण पेज रीफ्रेश के बिना स्थानीय दिनांक प्रदर्शित करने, मुद्राओं को स्वरूपित करने, बहुवचन संभालने और गतिशील रूप से टेक्स्ट बदलने की आवश्यकता पड़ी।
|
|
67
|
+
|
|
68
|
+
फिर भी 2011 का ब्राउज़र वातावरण इस चुनौती के लिए तैयार नहीं था:
|
|
69
|
+
|
|
70
|
+
<AccordionGroup>
|
|
71
|
+
<Accordion header="कोई मूल अंतर्राष्ट्रीयकरण API नहीं था">
|
|
72
|
+
|
|
73
|
+
ECMAScript अंतर्राष्ट्रीयकरण API विनिर्देश (ECMA-402) को केवल दिसंबर 2012 में अंतिम रूप दिया गया था, जिसने वैश्विक `Intl` ऑब्जेक्ट पेश किया। ब्राउज़र विक्रेताओं द्वारा `Intl` अपनाने से पहले, बुनियादी दिनांक और संख्या स्वरूपण के लिए भी कस्टम फ़ंक्शन या भारी पॉलीफिल की आवश्यकता होती थी।
|
|
74
|
+
|
|
75
|
+
</Accordion>
|
|
76
|
+
<Accordion header="कोई आधुनिक मॉड्यूल बंडलर्स नहीं थे">
|
|
77
|
+
|
|
78
|
+
Webpack जैसे उपकरण अपनी प्रारंभिक अवस्था में थे, और ब्राउज़र में ESM मौजूद नहीं था। डेवलपर्स `<script>` टैग के माध्यम से स्क्रिप्ट लोड करते थे, अक्सर `window.translations = { ... }` जैसे वैश्विक ऑब्जेक्ट्स में अनुवाद इंजेक्ट करते थे।
|
|
79
|
+
|
|
80
|
+
</Accordion>
|
|
81
|
+
<Accordion header="विशाल केंद्रीकृत JSON फ़ाइलें">
|
|
82
|
+
|
|
83
|
+
अनुवाद विशाल, केंद्रीकृत JSON फ़ाइलों में लिखे जाते थे। टोक्यो में लैंडिंग पेज लोड करने वाला उपयोगकर्ता भी अकाउंट सेटिंग्स, बिलिंग पैनल और एडमिन डैशबोर्ड के लिए स्ट्रिंग्स डाउनलोड करता था।
|
|
84
|
+
|
|
85
|
+
</Accordion>
|
|
86
|
+
</AccordionGroup>
|
|
87
|
+
|
|
88
|
+
### क्लाइंट-साइड लाइब्रेरीज़ की पहली लहर
|
|
89
|
+
|
|
90
|
+
2012 और 2015 के बीच, आधुनिक जावास्क्रिप्ट i18n की प्रारंभिक नींव रखी गई:
|
|
91
|
+
|
|
92
|
+
<AccordionGroup>
|
|
93
|
+
<Accordion header="i18next (जनवरी 2012)">
|
|
94
|
+
|
|
95
|
+
Jan Mühlemann द्वारा निर्मित, `i18next` ने जावास्क्रिप्ट में रनटाइम की-वैल्यू डिक्शनरी का खाका तैयार किया। इसने की-ट्रेवर्सल, वेरिएबल इंटरपोलेशन, प्लूरलाइज़ेशन रूल्स और लैंग्वेज डिटेक्टरों व बैकएंड्स के लिए प्लगेबल आर्किटेक्चर पेश किया। यह वैनिला जेएस और शुरुआती Node.js बैकएंड में मानक बन गया।
|
|
96
|
+
|
|
97
|
+
</Accordion>
|
|
98
|
+
<Accordion header="vue-i18n (मई 2014)">
|
|
99
|
+
|
|
100
|
+
Kazupon (Kazuya Kawaguchi) द्वारा निर्मित, `vue-i18n` ने Vue.js रिएक्टिव डेटा-बाइंडिंग मॉडल में अंतर्राष्ट्रीयकरण को अनुकूलित किया, जिसमें टेम्पलेट निर्देश (`v-t`) और `$t()` हेल्पर पेश किए गए।
|
|
101
|
+
|
|
102
|
+
</Accordion>
|
|
103
|
+
<Accordion header="react-intl (जून 2014)">
|
|
104
|
+
|
|
105
|
+
FormatJS प्रोजेक्ट के हिस्से के रूप में Yahoo! द्वारा निर्मित, `react-intl` ने `<FormattedMessage>` और `<FormattedDate>` जैसे घटकों के माध्यम से रिएक्ट में मानकीकृत ICU MessageFormat और ब्राउज़र `Intl` API पेश किए।
|
|
106
|
+
|
|
107
|
+
</Accordion>
|
|
108
|
+
<Accordion header="react-i18next (दिसंबर 2015)">
|
|
109
|
+
|
|
110
|
+
Jan Mühlemann ने तेजी से बढ़ते रिएक्ट समुदाय में `i18next` की शुरुआत की, जिसमें भाषा परिवर्तन पर घटकों को फिर से रेंडर करने के लिए हायर-ऑर्डर कंपोनेंट्स (`withTranslation`) और रिएक्ट कॉन्टेक्स्ट का उपयोग किया गया।
|
|
111
|
+
|
|
112
|
+
</Accordion>
|
|
113
|
+
</AccordionGroup>
|
|
114
|
+
|
|
115
|
+
### 2016 से पहले के युग की सीमाएं
|
|
116
|
+
|
|
117
|
+
यद्यपि इन उपकरणों ने बहुभाषी क्लाइंट अनुप्रयोगों को सक्षम किया, उस युग की वास्तुशिल्प सीमाओं ने कई समस्याएं पैदा कीं:
|
|
118
|
+
|
|
119
|
+
<AccordionGroup>
|
|
120
|
+
<Accordion header="नाजुक स्ट्रिंग कुंजियाँ">
|
|
121
|
+
|
|
122
|
+
`t('marketing.landing.hero.cta')` जैसे लुकअप्स ने कोई स्थैतिक सत्यापन प्रदान नहीं किया। कुंजियों में टाइपिंग त्रुटियां प्रोडक्शन में बिना किसी त्रुटि संदेश के विफल हो गईं, जिससे अंतिम उपयोगकर्ताओं को खाली लेबल या कच्चे की-नाम दिखाई दिए।
|
|
123
|
+
|
|
124
|
+
</Accordion>
|
|
125
|
+
<Accordion header="रनटाइम पार्सिंग ओवरहेड">
|
|
126
|
+
|
|
127
|
+
ICU संदेश सिंटैक्स को पार्स करना और रनटाइम पर रेगेक्स-आधारित इंटरपोलेशन का मूल्यांकन करना मोबाइल उपकरणों पर CPU संसाधनों की खपत करता था।
|
|
128
|
+
|
|
129
|
+
</Accordion>
|
|
130
|
+
<Accordion header="बंडल का भारी आकार">
|
|
131
|
+
|
|
132
|
+
रूट-आधारित या घटक-स्तरीय कोड विभाजन के बिना, सभी स्थानीयकृत स्ट्रिंग्स एक साथ लोड होती थीं, जिससे प्रारंभिक पेज लोड समय पर बुरा प्रभाव पड़ता था।
|
|
133
|
+
|
|
134
|
+
</Accordion>
|
|
135
|
+
<Accordion header="डेवलपर और अनुवादक के बीच दूरी">
|
|
136
|
+
|
|
137
|
+
केंद्रीकृत JSON फ़ाइलों में अनुवाद घटकों से बहुत दूर संग्रहीत होते थे, जिससे अनुपयोगी कुंजियाँ और गायब अनुवाद आम समस्याएं बन गईं।
|
|
138
|
+
|
|
139
|
+
</Accordion>
|
|
140
|
+
</AccordionGroup>
|
|
141
|
+
|
|
142
|
+
## फ्रेमवर्क युग: विभिन्न इकोसिस्टम्स में विकास
|
|
143
|
+
|
|
144
|
+
2016 और 2026 के बीच, फ्रंटएंड आर्किटेक्चर पूरी तरह बदल गया। टाइपस्क्रिप्ट मानक बन गया, घटक-आधारित आर्किटेक्चर परिपक्व हुआ, Webpack, Vite और Turbopack जैसे बंडलर्स ने कोड स्प्लिटिंग की शुरुआत की, रिएक्ट सर्वर कंपोनेंट्स ने रेंडरिंग को वापस सर्वर पर स्थानांतरित किया, और कंपाइलर्स ने एप्लिकेशन कोड का विश्लेषण करना शुरू किया।
|
|
145
|
+
|
|
146
|
+
निम्नलिखित टैब दिखाते हैं कि प्रत्येक फ्रेमवर्क और इकोसिस्टम ने रिलीज़ की तारीखों, मूल उद्देश्यों और नवाचारों के साथ इन चुनौतियों का समाधान कैसे किया। इन इकोसिस्टम्स में, `react-intlayer` और इसके समकक्ष फ्रेमवर्क कार्यान्वयन (`next-intlayer`, `vue-intlayer`, `angular-intlayer`, `svelte-intlayer`, और `solid-intlayer`) अपने-अपने रनटाइम वातावरण के लिए विशेष रूप से तैयार किए गए उच्च प्रदर्शन समाधान हैं।
|
|
147
|
+
|
|
148
|
+
<Tabs>
|
|
149
|
+
|
|
150
|
+
<Tab label="Core JavaScript" value="javascript">
|
|
151
|
+
|
|
152
|
+
| प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
|
|
153
|
+
| ------------ | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
154
|
+
| जनवरी 2012 | `i18next` | फ्रेमवर्क लॉक-इन के बिना ब्राउज़र और Node.js के लिए रनटाइम डिक्शनरी लुकअप को मानकीकृत करना। | प्लगेबल रनटाइम आर्किटेक्चर जो कोर अनुवाद को लोडर्स, डिटेक्टरों और कैशिंग से अलग करता है। |
|
|
155
|
+
| फरवरी 2021 | `typesafe-i18n` | अनटाइप्ड स्ट्रिंग कुंजियों के कारण होने वाली मूक रनटाइम त्रुटियों को रोकना। | बिना किसी रनटाइम निर्भरता के अनुवाद ऑब्जेक्ट्स से सीधे उत्पन्न पूरी तरह से टाइप-सुरक्षित अनुवाद फ़ंक्शन। |
|
|
156
|
+
| अक्टूबर 2023 | `paraglide` (`@inlang/paraglide-js`) | रनटाइम डिक्शनरी लुकअप, भारी पार्सर्स और बंडल ब्लोट को समाप्त करना। | संदेशों को ट्री-शेकेबल ECMAScript मॉड्यूल और प्लेन JS फ़ंक्शंस में संकलित करना। |
|
|
157
|
+
| अप्रैल 2024 | `intlayer` | अनियंत्रित नेमस्पेस को बदलना, पेज-टू-पेज कंटेंट लीकेज से बचना, और टाइपस्क्रिप्ट युग में टाइप सुरक्षा प्रदान करना। | फ़ंक्शन कॉल के साथ सीधे `.content` फ़ाइलों को रखना, ऑटो-जेनरेटेड टाइपस्क्रिप्ट प्रकार, और इन-बिल्ट विज़ुअल CMS व AI ट्रांसलेशन टूल्स। |
|
|
158
|
+
| जून 2025 | `wuchale` | विकास के दौरान मैन्युअल रूप से टेक्स्ट निकालने और कुंजियाँ बनाने की समस्या को हटाना। | AST-स्तरीय प्रीप्रोसेसिंग जो इनलाइन टेक्स्ट का पता लगाती है और बिल्ड टाइम पर स्थानीयकृत फ़ंक्शन बनाती है। |
|
|
159
|
+
|
|
160
|
+
</Tab>
|
|
161
|
+
|
|
162
|
+
<Tab label="React" value="react">
|
|
163
|
+
|
|
164
|
+
| प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
|
|
165
|
+
| ------------ | ---------------- | ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
166
|
+
| जून 2014 | `react-intl` | रिएक्ट में संख्याओं, तिथियों, मुद्राओं और जटिल बहुवचनों के लिए स्वरूपण का मानकीकरण। | ICU MessageFormat और ECMA-402 मानकों को लागू करने वाले घोषणात्मक घटक (`<FormattedMessage>`, `<FormattedDate>`)। |
|
|
167
|
+
| दिसंबर 2015 | `react-i18next` | रिएक्टिव री-रेंडरिंग के साथ रिएक्ट के लिए `i18next` बाइंडिंग प्रदान करना। | हायर-ऑर्डर घटकों से `<Trans>` JSX इंटरपोलेशन और `useTranslation` हुक तक विकास। |
|
|
168
|
+
| जनवरी 2018 | `@lingui/react` | रनटाइम ICU पार्सर्स के कारण जावास्क्रिप्ट बंडल आकार दंड को कम करना। | बिल्ड टाइम पर `<Trans>` और `t` को कॉम्पैक्ट अनुक्रमित सरणियों में संकलित करने वाले Babel/SWC मैक्रोज़। |
|
|
169
|
+
| दिसंबर 2020 | `use-intl` | लीगेसी रिएक्ट i18n लाइब्रेरीज़ के लिए एक हल्का, हुक-आधारित, टाइप-सुरक्षित विकल्प देना। | गहरे टाइपस्क्रिप्ट एकीकरण के साथ सुविधाजनक `useTranslations` और `useFormatter` हुक। |
|
|
170
|
+
| फरवरी 2021 | `@tolgee/react` | डेवलपर्स, अनुवादकों और डिज़ाइनरों के बीच धीमी प्रतिक्रिया लूप को समाप्त करना। | इन-कॉन्टेक्स्ट ब्राउज़र संपादन जो उपयोगकर्ताओं को Alt-क्लिक करने, अनुवाद संपादित करने और स्क्रीनशॉट लेने की अनुमति देता है। |
|
|
171
|
+
| अप्रैल 2024 | `react-intlayer` | रिएक्ट घटक जीवनचक्र के लिए अनुकूलित उच्च-प्रदर्शन Intlayer समाधान प्रदान करना, जिससे केंद्रीकृत JSON समाप्त हो सके। | रिएक्ट रेंडरिंग के लिए तैयार `useIntlayer` हुक, ऑटो-जेनरेटेड टाइपस्क्रिप्ट प्रकार, घटक-स्तरीय ट्री-शेकिंग और विज़ुअल CMS। |
|
|
172
|
+
| जुलाई 2024 | `gt-react` | मैन्युअल फ़ाइल निर्यात और अनुवाद रखरखाव को स्वचालित करना। | मशीन अनुवाद पाइपलाइनों के साथ रिएक्ट घटकों के भीतर सीधे क्लाउड-नेटिव स्वचालित AI स्थानीयकरण। |
|
|
173
|
+
| अगस्त 2025 | `@wuchale/jsx` | JSX में मैन्युअल की-नामकरण और बॉयलरप्लेट अनुवाद हुक को हटाना। | AST परिवर्तन जो स्वचालित रूप से कच्चे JSX टेक्स्ट नोड्स को स्थानीयकृत समकक्षों में बदलता है। |
|
|
174
|
+
|
|
175
|
+
</Tab>
|
|
176
|
+
|
|
177
|
+
<Tab label="Next.js" value="nextjs">
|
|
178
|
+
|
|
179
|
+
| प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
|
|
180
|
+
| ------------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
181
|
+
| नवंबर 2018 | `next-i18next` | क्लाइंट वॉटरफॉल के बिना Next.js Pages Router में `i18next` के साथ SSR और SSG का समर्थन। | पेज प्रॉप्स में स्थानीयकृत नेमस्पेस पास करने वाले `serverSideTranslations` और `appWithTranslation`। |
|
|
182
|
+
| दिसंबर 2019 | `next-translate` | Next.js Pages Router ऐप्स में कॉन्फ़िगरेशन को सरल बनाना और बंडल का वजन कम करना। | Webpack लोडर प्लगइन जो प्रति पेज केवल आवश्यक अनुवाद नेमस्पेस इंजेक्ट करता है। |
|
|
183
|
+
| नवंबर 2020 | `next-intl` | App Router, रिएक्ट सर्वर कंपोनेंट्स (RSC) और स्ट्रीमिंग SSR के लिए Next.js i18n को फिर से डिजाइन करना। | बिना किसी क्लाइंट JS के Next.js App Router मिडलवेयर, सर्वर एक्शन्स और एसिंक्रोनस सर्वर कंपोनेंट्स के साथ मूल एकीकरण। |
|
|
184
|
+
| जुलाई 2022 | `next-international` | न्यूनतम क्लाइंट बंडल ओवरहेड के साथ टाइपस्क्रिप्ट टाइप सुरक्षा को अधिकतम करना। | हल्के App Router और Pages Router एडेप्टर के साथ स्कोप्ड कुंजियों के लिए सख्त प्रकार का निर्माण। |
|
|
185
|
+
| अप्रैल 2024 | `paraglide-next` (`@inlang/paraglide-next`) | Next.js App Router और Pages Router में जीरो-रनटाइम संकलित संदेश लाना। | ट्री-शेकेबल संदेश फ़ंक्शंस के साथ मिडलवेयर रूटिंग जो RSC में रनटाइम JSON पार्सिंग से बचाती है। |
|
|
186
|
+
| अप्रैल 2024 | `next-intlayer` | Next.js App Router के लिए उच्च-प्रदर्शन सर्वर कंपोनेंट एडेप्टर देना, जिससे प्रॉप्स के रूप में `t()` पास करने की आवश्यकता न रहे। | मूल सर्वर कंपोनेंट एडेप्टर जो प्रॉप-ड्रिलिंग के बिना सीधे समकालिक सर्वर घटकों (जैसे Navbar) में `useIntlayer` कॉल करने की अनुमति देता है, साथ ही लाइव CMS सिंक। |
|
|
187
|
+
| सितंबर 2024 | `gt-next` | AI अनुवाद का उपयोग करके Next.js में बहुभाषी सामग्री निर्माण और स्थानीयकृत रूटिंग को स्वचालित करना। | क्लाउड मशीन अनुवाद को Next.js एज मिडलवेयर और कैशिंग परतों के साथ जोड़ने वाला एकीकरण। |
|
|
188
|
+
|
|
189
|
+
</Tab>
|
|
190
|
+
|
|
191
|
+
<Tab label="Vue & Nuxt" value="vue">
|
|
192
|
+
|
|
193
|
+
| प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
|
|
194
|
+
| ------------ | -------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
+
| मई 2014 | `vue-i18n` | Vue अनुप्रयोगों के लिए मुहावरेदार, प्रतिक्रियाशील अंतर्राष्ट्रीयकरण प्रदान करना। | गहरी प्रतिक्रियाशीलता एकीकरण, टेम्पलेट निर्देश (`v-t`), `$t` हेल्पर, और एकल-फ़ाइल घटक `<i18n>` कस्टम ब्लॉक। |
|
|
196
|
+
| नवंबर 2017 | `@nuxt/i18n` | Nuxt में स्थानीयकृत URL रूटिंग, SEO hreflang टैग और SSR हाइड्रेशन को संभालना। | पूर्ण-स्टैक रूटिंग मॉड्यूल जो स्थानीयकृत रूट, SEO मेटा हेडर और लेज़ी चंक लोडिंग उत्पन्न करता है। |
|
|
197
|
+
| अगस्त 2019 | `fluent-vue` | Vue में जटिल व्याकरणिक लिंग, कारक और विषम भाषा संरचनाओं को संभालना। | भाषाई विविधताओं के लिए जटिल सशर्त कोड से बचने के लिए मोज़िला प्रोजेक्ट फ्लूएंट का एकीकरण। |
|
|
198
|
+
| अप्रैल 2025 | `vue-intlayer` | Vue 3 Composition API और Nuxt के लिए विशेष रूप से डिज़ाइन किया गया उच्च प्रदर्शन वाला Intlayer समाधान। | Vue 3 प्रतिक्रियाशील ट्रैकिंग के लिए तैयार `useIntlayer` कंपोजेबल, प्रत्यक्ष घटक स्कोपिंग, पूर्ण टाइपस्क्रिप्ट ऑटोकम्प्लीशन, और दृश्य संपादक। |
|
|
199
|
+
|
|
200
|
+
</Tab>
|
|
201
|
+
|
|
202
|
+
<Tab label="Angular" value="angular">
|
|
203
|
+
|
|
204
|
+
| प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
|
|
205
|
+
| ------------ | ------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
206
|
+
| फरवरी 2017 | `ngx-translate` | प्रत्येक लोकेल के लिए अलग बंडल तैनात किए बिना Angular में गतिशील रनटाइम अनुवाद प्रदान करना। | `TranslateService` और `translate` पाइप गतिशील अनुवाद लोडिंग और भाषा टॉगलिंग को सक्षम करते हैं। |
|
|
207
|
+
| जुलाई 2019 | `@ngneat/transloco` | पुरानी Angular लाइब्रेरीज़ में प्रदर्शन बाधाओं और स्कोपिंग की कमी को हल करना। | संरचनात्मक निर्देश (`*transloco`), लेज़ी-लोडेड मॉड्यूल के लिए स्कोप्ड अनुवाद, SSR समर्थन, और एक्सट्रैक्शन CLI। |
|
|
208
|
+
| सितंबर 2019 | `@angular/localize` | प्रत्येक भाषा के लिए टाइपस्क्रिप्ट को फिर से संकलित करने से बचने के लिए Angular के अंतर्निहित i18n का आधुनिकीकरण। | Ivy कंपाइलर इंजन में एक तेज़ पोस्ट-बिल्ड चरण के रूप में इंजेक्ट किए गए `$localize` के साथ टैग किए गए टेम्पलेट लिटरल्स। |
|
|
209
|
+
| फरवरी 2021 | `@tolgee/ngx` | Angular वर्कफ़्लो में सहयोगी इन-कॉन्टेक्स्ट अनुवाद और स्क्रीनशॉट कैप्चरिंग को एकीकृत करना। | लाइव इन-ब्राउज़र स्थानीयकरण के लिए सीधे Tolgee से जुड़े Angular पाइप और निर्देश। |
|
|
210
|
+
| अप्रैल 2025 | `angular-intlayer` | आधुनिक Angular (Signals, स्टैंडअलोन घटक और SSR) के लिए तैयार किया गया उच्च प्रदर्शन समाधान। | आधुनिक Angular परिवर्तन पहचान, स्टैंडअलोन निर्भरता इंजेक्शन, और लाइव CMS के लिए डिज़ाइन किया गया सिग्नल-आधारित सामग्री एकीकरण। |
|
|
211
|
+
|
|
212
|
+
</Tab>
|
|
213
|
+
|
|
214
|
+
<Tab label="Svelte & SvelteKit" value="svelte">
|
|
215
|
+
|
|
216
|
+
| प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
|
|
217
|
+
| ------------ | ----------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
218
|
+
| जुलाई 2018 | `svelte-i18n` | Svelte रिएक्टिव स्टोर्स के अनुरूप एक प्रतिक्रियाशील अंतर्राष्ट्रीयकरण लाइब्रेरी प्रदान करना। | स्टोर-समर्थित `$t` लुकअप जो लोकेल बदलने पर सटीक DOM अपडेट सुनिश्चित करता है। |
|
|
219
|
+
| दिसंबर 2021 | `sveltekit-i18n` | SvelteKit अनुप्रयोगों में SSR और रूट-आधारित अनुवाद लोडिंग को स्पष्ट रूप से संभालना। | सक्रिय SvelteKit रूट के लिए आवश्यक अनुवाद और फ़ॉर्मेटर्स लाने वाला मॉड्यूलर लोडर आर्किटेक्चर। |
|
|
220
|
+
| नवंबर 2021 | `@tolgee/svelte` | Svelte अनुप्रयोगों में इन-कॉन्टेक्स्ट स्थानीयकरण को सक्षम करना। | Tolgee ओवरले और स्वचालित स्क्रीनशॉट निर्माण के साथ एकीकृत Svelte स्टोर बाइंडिंग। |
|
|
221
|
+
| अप्रैल 2025 | `svelte-intlayer` | Svelte 5 और SvelteKit के लिए विशेष रूप से डिज़ाइन किया गया Intlayer समाधान। | Svelte 5 Runes (`$state`) के लिए प्रतिक्रियाशील सामग्री बाइंडिंग, घटक-स्तरीय `.content` घोषणाएं, और विज़ुअल CMS संपादन। |
|
|
222
|
+
| जुलाई 2025 | `@wuchale/svelte` | Svelte घटकों में डिक्शनरी घोषित करने और `$t` फ़ंक्शन आयात करने के बॉयलरप्लेट को हटाना। | Svelte प्रीप्रोसेसर जो बिल्ड टाइम पर टेम्प्लेट को पार्स करता है और टेक्स्ट नोड्स को शून्य-रैपर स्थानीयकृत आउटपुट में संकलित करता है। |
|
|
223
|
+
|
|
224
|
+
</Tab>
|
|
225
|
+
|
|
226
|
+
<Tab label="SolidJS" value="solid">
|
|
227
|
+
|
|
228
|
+
| प्रथम रिलीज़ | लाइब्रेरी | हल करने का उद्देश्य | प्रमुख नवाचार |
|
|
229
|
+
| ------------ | ------------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
230
|
+
| सितंबर 2021 | `@solid-primitives/i18n` | SolidJS सूक्ष्म प्रतिक्रियाशीलता से मेल खाने वाला एक मुहावरेदार i18n प्रिमिटिव प्रदान करना। | वर्चुअल DOM या अनावश्यक री-रेंडर के बिना DOM नोड्स को अपडेट करने वाला सिग्नल-आधारित अनुवाद समाधान। |
|
|
231
|
+
| अप्रैल 2025 | `solid-intlayer` | SolidJS और SolidStart के लिए विशेष रूप से विकसित उच्च-प्रदर्शन Intlayer समाधान। | वर्चुअल DOM ओवरहेड के बिना सॉलिड की सूक्ष्म प्रतिक्रियाशीलता के लिए अनुकूलित सामग्री बाइंडिंग और विज़ुअल एडिटर एकीकरण। |
|
|
232
|
+
| जून 2026 | `@lingui/solid` | SolidJS में कंपाइल-टाइम मैक्रो एक्सट्रैक्शन और ICU MessageFormat समर्थन का विस्तार करना। | सॉलिड की प्रतिक्रियाशीलता के अनुकूल मैक्रो परिवर्तन, जो संदेशों को कॉम्पैक्ट रनटाइम संरचनाओं में संकलित करते हैं। |
|
|
233
|
+
|
|
234
|
+
</Tab>
|
|
235
|
+
|
|
236
|
+
</Tabs>
|
|
237
|
+
|
|
238
|
+
## जावास्क्रिप्ट i18n के चार वास्तुशिल्प युग
|
|
239
|
+
|
|
240
|
+

|
|
241
|
+
|
|
242
|
+
पंद्रह वर्षों के विकास को देखते हुए, हम जावास्क्रिप्ट अंतर्राष्ट्रीयकरण के इतिहास को चार अलग-अलग वास्तुशिल्प युगों में वर्गीकृत कर सकते हैं:
|
|
243
|
+
|
|
244
|
+
<AccordionGroup>
|
|
245
|
+
<Accordion header="1. रनटाइम डिक्शनरी युग (2011 से 2017)">
|
|
246
|
+
|
|
247
|
+
`i18next`, `react-intl`, और `vue-i18n` इसकी पहचान थे। एप्लिकेशन मेमोरी में स्थिर JSON कैटलॉग लोड करते थे, और रनटाइम फ़ंक्शंस नेस्टेड ऑब्जेक्ट्स के खिलाफ स्ट्रिंग कुंजियों का मिलान करते थे। बहुवचन और इंटरपोलेशन ब्राउज़र में रेगेक्स मिलान और रनटाइम ICU पार्सर्स के माध्यम से नियंत्रित किए जाते थे।
|
|
248
|
+
|
|
249
|
+
</Accordion>
|
|
250
|
+
<Accordion header="2. कंपाइल-टाइम मैक्रो और टाइप सेफ्टी युग (2018 से 2021)">
|
|
251
|
+
|
|
252
|
+
`lingui`, `next-translate`, `transloco`, और `typesafe-i18n` द्वारा चिह्नित। डेवलपर्स ने रनटाइम पार्सिंग के प्रदर्शन नुकसान और अनटाइप्ड कुंजियों की कमजोरी को पहचाना। बेबेल मैक्रोज़ ने बिल्ड टाइम पर संदेश निकाले, बंडलर प्लगइन्स ने प्रति पेज शब्दकोशों को विभाजित किया, और टाइपस्क्रिप्ट कंपाइलर्स ने अनुवाद तर्कों को सत्यापित करना शुरू किया।
|
|
253
|
+
|
|
254
|
+
</Accordion>
|
|
255
|
+
<Accordion header="3. सर्वर कंपोनेंट और स्ट्रीमिंग युग (2022 से 2024)">
|
|
256
|
+
|
|
257
|
+
`next-intl`, `next-international`, और शुरुआती RSC एडेप्टर इसकी मुख्य विशेषताएं थे। रिएक्ट सर्वर कंपोनेंट्स और Next.js App Router के आगमन के साथ, लक्ष्य ब्राउज़र पर अनुवाद शब्दकोशों या क्लाइंट-साइड i18n रनटाइम को भेजे बिना सर्वर पर स्थानीयकृत सामग्री रेंडर करना बन गया।
|
|
258
|
+
|
|
259
|
+
</Accordion>
|
|
260
|
+
<Accordion header="4. आधुनिक कंपाइलर और एकीकृत सामग्री युग (2024 से 2026)">
|
|
261
|
+
|
|
262
|
+
`paraglide`, `intlayer`, और `wuchale` द्वारा चिह्नित। आधुनिक उपकरण अंतर्राष्ट्रीयकरण को केवल स्ट्रिंग प्रतिस्थापन के रूप में नहीं, बल्कि एक एकीकृत सामग्री वास्तुकला के रूप में मानते हैं। कंपाइलर्स संदेशों को सीधे ट्री-शेकेबल कोड फ़ंक्शंस में बदलते हैं, सामग्री घोषणाएं घटकों के साथ रखी जाती हैं, और विज़ुअल संपादक, MCP टूल्स और स्वचालित AI अनुवाद पाइपलाइन सीधे डेवलपर वर्कफ़्लो में एकीकृत होते हैं। इस मॉडल में, Intlayer रनटाइम डिलीवरी से सामग्री घोषणा और स्वचालित प्रकार निर्माण को अलग करता है, जो प्रत्येक फ्रेमवर्क की प्रतिक्रियाशीलता के लिए विशेष रूप से इंजीनियर किए गए समर्पित समाधान (`react-intlayer`, `next-intlayer`, `vue-intlayer`, `angular-intlayer`, `svelte-intlayer`, और `solid-intlayer`) प्रदान करता है।
|
|
263
|
+
|
|
264
|
+
</Accordion>
|
|
265
|
+
</AccordionGroup>
|
|
266
|
+
|
|
267
|
+
## निष्कर्ष: DX, प्रदर्शन और AI व्यवधान का संतुलन
|
|
268
|
+
|
|
269
|
+
पंद्रह वर्षों और चार अलग-अलग वास्तुशिल्प तरंगों में, जावास्क्रिप्ट अंतर्राष्ट्रीयकरण की अंतिम चुनौती वही रही है: डेवलपर अनुभव (DX) और दीर्घकालिक कोडबेस रखरखाव के साथ क्लाइंट साइड पर इष्टतम प्रदर्शन प्रदान करना।
|
|
270
|
+
|
|
271
|
+
वैश्विक चर और बोझिल केंद्रीकृत JSON फ़ाइलों के रूप में शुरू हुआ सफर उत्तरोत्तर घटक-सहस्थित सामग्री, स्वचालित टाइपस्क्रिप्ट सुरक्षा, शून्य-वॉटरफॉल सर्वर रेंडरिंग और कंपाइल-टाइम ट्री शेकिंग में परिपक्व हुआ है।
|
|
272
|
+
|
|
273
|
+
### AI व्यवधान और लीगेसी SaaS मॉडल
|
|
274
|
+
|
|
275
|
+
हाल के वर्षों में एक निर्णायक उत्प्रेरक स्वचालित AI अनुवाद निर्माण रहा है, जो पारंपरिक स्थानीयकरण प्लेटफार्मों (TMS) के व्यावसायिक मॉडल को बुनियादी रूप से चुनौती देता है।
|
|
276
|
+
|
|
277
|
+
ऐतिहासिक रूप से, सामग्री को केंद्रीकृत JSON फ़ाइलों में समेकित करना बाहरी अनुवाद प्रबंधन प्रणालियों (TMS) के एकीकरण को आसान बनाने के लिए किया गया एक समझौता था। इसने गैर-तकनीकी अनुवादकों और तृतीय-पक्ष प्लेटफार्मों को एक सरल आयात-निर्यात लक्ष्य दिया। हालांकि, बाहरी सेवाओं के लिए इस सुविधा ने डेवलपर्स के लिए भारी वास्तुशिल्प लागत पैदा की: फीचर शाखाओं में लगातार गिट मर्ज विरोध, अप्रयुक्त कुंजियाँ, घटक-स्तरीय संदर्भ की कमी, और बोझिल वैश्विक नेमस्पेस।
|
|
278
|
+
|
|
279
|
+
जनरेटिव AI और आधुनिक कंपाइलेशन टूल्स के आने के साथ, डेवलपर अनुभव (DX) ने निर्णायक बढ़त बना ली है। बिल्ड टूल्स और CLI अब घटक-सहस्थित सामग्री फ़ाइलों को स्वचालित रूप से खोज, मान्य और अनुवाद कर सकते हैं, जिससे अनुवाद पाइपलाइनों के लिए स्वच्छ वास्तुकला का त्याग करने की आवश्यकता समाप्त हो गई है।
|
|
280
|
+
|
|
281
|
+
एक दशक से अधिक समय तक, वाणिज्यिक अनुवाद प्लेटफार्मों ने उस मैन्युअल TMS घर्षण के इर्द-गिर्द आवर्ती राजस्व बनाया:
|
|
282
|
+
|
|
283
|
+
- **Locize** (`i18next` के पीछे वाणिज्यिक SaaS प्लेटफॉर्म) और **Crowdin** (`vue-i18n`, `next-intl`, `use-intl`, और `lingui` का प्राथमिक प्रायोजक और साझेदार) जैसे समाधानों ने अपने व्यापार मॉडल को होस्ट किए गए अनुवाद भंडारण, योजना सीमाओं और शब्द-गणना शुल्क पर केंद्रित किया।
|
|
284
|
+
- चूंकि ये लीगेसी प्लेटफॉर्म वॉल्यूम और मैन्युअल वर्कफ़्लो का मुद्रीकरण करते हैं, इसलिए उनके पास डेवलपर टूलचेन में सीधे मुफ्त में एंड-टू-एंड अनुवाद स्वचालित करने का बहुत कम आर्थिक प्रोत्साहन है।
|
|
285
|
+
|
|
286
|
+
### नई AI लहर बनाम प्रत्यक्ष प्रदाता लागत
|
|
287
|
+
|
|
288
|
+
जैसे-जैसे आधुनिक बड़े भाषा मॉडलों (LLMs) ने भाषाई सटीकता बढ़ाते हुए अनुवाद लागत को नगण्य कर दिया, इस बाजार पर कब्जा करने के लिए वाणिज्यिक उपकरणों की एक नई पीढ़ी सामने आई:
|
|
289
|
+
|
|
290
|
+
- Paraglide (**linguo.dev**) या **General Translation** (`gt-react`, `gt-next`) जैसे प्लेटफार्मों ने नए स्वामित्व वाले सब्सक्रिप्शन और मध्यवर्ती क्लाउड पाइपलाइनों को पेश करके AI लहर पर चलने का प्रयास किया है।
|
|
291
|
+
- इसके विपरीत, **Intlayer** अपने CLI के माध्यम से सीधे स्वचालित AI अनुवाद प्रदान करता है, जिससे टीमें अपनी स्वयं की API कुंजियों (जैसे OpenAI, Anthropic, Mistral, या Google Gemini) को कनेक्ट कर सकती हैं। कोई अतिरिक्त मार्कअप या वेंडर लॉक-इन नहीं है, यह सीधे आपके चुने हुए AI प्रदाता की लागत पर चलता है।
|
|
292
|
+
|
|
293
|
+
### केवल i18n से अधिक: एक संपूर्ण बहुभाषी सामग्री प्रणाली
|
|
294
|
+
|
|
295
|
+
अंत में, आधुनिक वेब विकास साधारण स्ट्रिंग प्रतिस्थापन से कहीं आगे बढ़ गया है। आज के अनुप्रयोगों को केवल `"Submit"` या `"Log In"` जैसे एकल शब्दों का अनुवाद करने की आवश्यकता नहीं है, बल्कि जटिल उपयोगकर्ता यात्राओं में समृद्ध, गतिशील और संरचित सामग्री की आवश्यकता होती है।
|
|
296
|
+
|
|
297
|
+
Intlayer इस समस्या को एक संकीर्ण स्ट्रिंग-की लुकअप टूल के रूप में नहीं, बल्कि एक व्यापक बहुभाषी सामग्री प्रणाली के रूप में देखता है। Markdown दस्तावेज़ों, HTML संरचनाओं, नेस्टेड डेटा स्कीमा और विज़ुअल CMS संपादन के प्रथम श्रेणी समर्थन के साथ, यह कोड-स्तरीय इंजीनियरिंग, स्वचालित AI वर्कफ़्लो और सामग्री प्रबंधन के बीच की दूरी को पाटता है।
|
|
298
|
+
|
|
299
|
+
गहन वास्तुशिल्प तुलना और व्यावहारिक प्रवास गाइड के लिए, निम्नलिखित संसाधनों का अन्वेषण करें:
|
|
300
|
+
|
|
301
|
+
- [कंपाइलर बनाम घोषणात्मक अंतर्राष्ट्रीयकरण](https://github.com/aymericzip/intlayer/blob/main/docs/blog/hi/compiler_vs_declarative_i18n.md)
|
|
302
|
+
- [प्रति-घटक बनाम केंद्रीकृत i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/hi/per-component_vs_centralized_i18n.md)
|
|
303
|
+
- [प्रदर्शन और बेंचमार्क](https://intlayer.org/doc/benchmark)
|
|
304
|
+
- [Intlayer अनुकूलता एडेप्टर](https://intlayer.org/doc/concept/compatibility)
|