@intlayer/docs 9.4.1 → 9.4.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/date_time_number_formatting_locales.md +216 -0
- package/blog/ar/detecting_missing_translations.md +202 -0
- package/blog/ar/hreflang_guide_multilingual_seo.md +317 -0
- package/blog/ar/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/ar/i18n_meaning.md +0 -2
- package/blog/ar/i18n_testing_strategies.md +179 -0
- package/blog/ar/intlayer_with_i18next.md +3 -5
- package/blog/ar/intlayer_with_next-i18next.md +3 -7
- package/blog/ar/intlayer_with_next-intl.md +3 -3
- package/blog/ar/intlayer_with_react-i18next.md +3 -3
- package/blog/ar/intlayer_with_react-intl.md +3 -3
- package/blog/ar/intlayer_with_vue-i18n.md +3 -7
- package/blog/ar/is_i18next_outdated.md +315 -0
- package/blog/ar/is_next-intl_outdated.md +363 -0
- package/blog/ar/is_vue-i18n_outdated.md +338 -0
- package/blog/ar/list_i18n_technologies/build-tools/vite.md +177 -0
- package/blog/ar/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/ar/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/ar/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/ar/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/ar/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/ar/what_is_internationalization.md +0 -2
- package/blog/de/date_time_number_formatting_locales.md +216 -0
- package/blog/de/detecting_missing_translations.md +202 -0
- package/blog/de/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/de/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/de/i18n_meaning.md +0 -2
- package/blog/de/i18n_testing_strategies.md +179 -0
- package/blog/de/intlayer_with_i18next.md +3 -3
- package/blog/de/intlayer_with_next-i18next.md +3 -3
- package/blog/de/intlayer_with_next-intl.md +3 -3
- package/blog/de/intlayer_with_react-i18next.md +3 -3
- package/blog/de/intlayer_with_react-intl.md +3 -3
- package/blog/de/intlayer_with_vue-i18n.md +3 -7
- package/blog/de/is_i18next_outdated.md +315 -0
- package/blog/de/is_next-intl_outdated.md +363 -0
- package/blog/de/is_vue-i18n_outdated.md +338 -0
- package/blog/de/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/de/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/de/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/de/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/de/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/de/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/de/what_is_internationalization.md +0 -2
- package/blog/en/date_time_number_formatting_locales.md +216 -0
- package/blog/en/detecting_missing_translations.md +202 -0
- package/blog/en/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/en/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/en/i18n_meaning.md +0 -2
- package/blog/en/i18n_testing_strategies.md +179 -0
- package/blog/en/icu_message_format.md +288 -0
- package/blog/en/intlayer_with_i18next.md +3 -5
- package/blog/en/intlayer_with_next-i18next.md +3 -5
- package/blog/en/intlayer_with_next-intl.md +3 -5
- package/blog/en/intlayer_with_react-i18next.md +3 -3
- package/blog/en/intlayer_with_react-intl.md +3 -5
- package/blog/en/intlayer_with_vue-i18n.md +3 -5
- package/blog/en/is_i18next_outdated.md +315 -0
- package/blog/en/is_next-intl_outdated.md +363 -0
- package/blog/en/is_vue-i18n_outdated.md +338 -0
- package/blog/en/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/en/list_i18n_technologies/frameworks/angular.md +184 -108
- package/blog/en/list_i18n_technologies/frameworks/astro.md +268 -0
- package/blog/en/list_i18n_technologies/frameworks/nextjs.md +196 -0
- package/blog/en/list_i18n_technologies/frameworks/nuxt.md +255 -0
- package/blog/en/list_i18n_technologies/frameworks/react-native.md +133 -154
- package/blog/en/list_i18n_technologies/frameworks/react-router.md +331 -0
- package/blog/en/list_i18n_technologies/frameworks/react.md +176 -96
- package/blog/en/list_i18n_technologies/frameworks/solid.md +268 -0
- package/blog/en/list_i18n_technologies/frameworks/svelte.md +156 -88
- package/blog/en/list_i18n_technologies/frameworks/sveltekit.md +235 -0
- package/blog/en/list_i18n_technologies/frameworks/tanstack-start.md +280 -0
- package/blog/en/list_i18n_technologies/frameworks/vue.md +167 -95
- package/blog/en/what_is_internationalization.md +0 -2
- package/blog/en-GB/date_time_number_formatting_locales.md +216 -0
- package/blog/en-GB/detecting_missing_translations.md +202 -0
- package/blog/en-GB/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/en-GB/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/en-GB/i18n_meaning.md +0 -2
- package/blog/en-GB/i18n_testing_strategies.md +179 -0
- package/blog/en-GB/intlayer_with_i18next.md +3 -3
- package/blog/en-GB/intlayer_with_next-i18next.md +3 -3
- package/blog/en-GB/intlayer_with_next-intl.md +3 -3
- package/blog/en-GB/intlayer_with_react-i18next.md +3 -3
- package/blog/en-GB/intlayer_with_react-intl.md +3 -3
- package/blog/en-GB/intlayer_with_vue-i18n.md +3 -3
- package/blog/en-GB/is_i18next_outdated.md +315 -0
- package/blog/en-GB/is_next-intl_outdated.md +363 -0
- package/blog/en-GB/is_vue-i18n_outdated.md +338 -0
- package/blog/en-GB/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/en-GB/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/en-GB/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/en-GB/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/en-GB/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/en-GB/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/en-GB/what_is_internationalization.md +0 -2
- package/blog/es/date_time_number_formatting_locales.md +216 -0
- package/blog/es/detecting_missing_translations.md +202 -0
- package/blog/es/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/es/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/es/i18n_meaning.md +0 -2
- package/blog/es/i18n_testing_strategies.md +179 -0
- package/blog/es/intlayer_with_i18next.md +3 -3
- package/blog/es/intlayer_with_next-i18next.md +3 -3
- package/blog/es/intlayer_with_next-intl.md +3 -3
- package/blog/es/intlayer_with_react-i18next.md +3 -3
- package/blog/es/intlayer_with_react-intl.md +3 -3
- package/blog/es/intlayer_with_vue-i18n.md +3 -3
- package/blog/es/is_i18next_outdated.md +315 -0
- package/blog/es/is_next-intl_outdated.md +363 -0
- package/blog/es/is_vue-i18n_outdated.md +338 -0
- package/blog/es/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/es/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/es/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/es/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/es/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/es/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/es/what_is_internationalization.md +0 -2
- package/blog/fr/date_time_number_formatting_locales.md +216 -0
- package/blog/fr/detecting_missing_translations.md +202 -0
- package/blog/fr/hreflang_guide_multilingual_seo.md +315 -0
- package/blog/fr/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/fr/i18n_meaning.md +0 -2
- package/blog/fr/i18n_testing_strategies.md +179 -0
- package/blog/fr/intlayer_with_i18next.md +3 -3
- package/blog/fr/intlayer_with_next-i18next.md +3 -3
- package/blog/fr/intlayer_with_next-intl.md +3 -3
- package/blog/fr/intlayer_with_react-i18next.md +3 -3
- package/blog/fr/intlayer_with_react-intl.md +3 -3
- package/blog/fr/intlayer_with_vue-i18n.md +3 -3
- package/blog/fr/is_i18next_outdated.md +315 -0
- package/blog/fr/is_next-intl_outdated.md +363 -0
- package/blog/fr/is_vue-i18n_outdated.md +338 -0
- package/blog/fr/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/fr/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/fr/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/fr/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/fr/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/fr/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/fr/what_is_internationalization.md +0 -2
- package/blog/hi/date_time_number_formatting_locales.md +216 -0
- package/blog/hi/detecting_missing_translations.md +202 -0
- package/blog/hi/hreflang_guide_multilingual_seo.md +323 -0
- package/blog/hi/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/hi/i18n_meaning.md +0 -2
- package/blog/hi/i18n_testing_strategies.md +179 -0
- package/blog/hi/intlayer_with_i18next.md +3 -5
- package/blog/hi/intlayer_with_next-i18next.md +3 -7
- package/blog/hi/intlayer_with_next-intl.md +3 -3
- package/blog/hi/intlayer_with_react-i18next.md +3 -3
- package/blog/hi/intlayer_with_react-intl.md +3 -3
- package/blog/hi/intlayer_with_vue-i18n.md +3 -7
- package/blog/hi/is_i18next_outdated.md +317 -0
- package/blog/hi/is_next-intl_outdated.md +363 -0
- package/blog/hi/is_vue-i18n_outdated.md +338 -0
- package/blog/hi/list_i18n_technologies/build-tools/vite.md +177 -0
- package/blog/hi/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/hi/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/hi/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/hi/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/hi/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/hi/what_is_internationalization.md +0 -2
- package/blog/id/date_time_number_formatting_locales.md +216 -0
- package/blog/id/detecting_missing_translations.md +202 -0
- package/blog/id/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/id/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/id/i18n_meaning.md +0 -2
- package/blog/id/i18n_testing_strategies.md +179 -0
- package/blog/id/intlayer_with_i18next.md +3 -5
- package/blog/id/intlayer_with_next-i18next.md +3 -7
- package/blog/id/intlayer_with_next-intl.md +3 -3
- package/blog/id/intlayer_with_react-i18next.md +3 -3
- package/blog/id/intlayer_with_react-intl.md +3 -3
- package/blog/id/intlayer_with_vue-i18n.md +3 -7
- package/blog/id/is_i18next_outdated.md +317 -0
- package/blog/id/is_next-intl_outdated.md +363 -0
- package/blog/id/is_vue-i18n_outdated.md +338 -0
- package/blog/id/list_i18n_technologies/build-tools/vite.md +177 -0
- package/blog/id/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/id/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/id/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/id/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/id/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/id/what_is_internationalization.md +0 -2
- package/blog/it/date_time_number_formatting_locales.md +216 -0
- package/blog/it/detecting_missing_translations.md +202 -0
- package/blog/it/hreflang_guide_multilingual_seo.md +315 -0
- package/blog/it/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/it/i18n_meaning.md +0 -2
- package/blog/it/i18n_testing_strategies.md +179 -0
- package/blog/it/intlayer_with_i18next.md +3 -5
- package/blog/it/intlayer_with_next-i18next.md +3 -7
- package/blog/it/intlayer_with_next-intl.md +3 -3
- package/blog/it/intlayer_with_react-i18next.md +3 -3
- package/blog/it/intlayer_with_react-intl.md +3 -3
- package/blog/it/intlayer_with_vue-i18n.md +3 -7
- package/blog/it/is_i18next_outdated.md +315 -0
- package/blog/it/is_next-intl_outdated.md +363 -0
- package/blog/it/is_vue-i18n_outdated.md +338 -0
- package/blog/it/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/it/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/it/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/it/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/it/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/it/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/it/what_is_internationalization.md +0 -2
- package/blog/ja/date_time_number_formatting_locales.md +216 -0
- package/blog/ja/detecting_missing_translations.md +202 -0
- package/blog/ja/hreflang_guide_multilingual_seo.md +320 -0
- package/blog/ja/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/ja/i18n_meaning.md +0 -2
- package/blog/ja/i18n_testing_strategies.md +179 -0
- package/blog/ja/intlayer_with_i18next.md +3 -3
- package/blog/ja/intlayer_with_next-i18next.md +3 -3
- package/blog/ja/intlayer_with_next-intl.md +3 -3
- package/blog/ja/intlayer_with_react-i18next.md +3 -3
- package/blog/ja/intlayer_with_react-intl.md +3 -3
- package/blog/ja/intlayer_with_vue-i18n.md +3 -3
- package/blog/ja/is_i18next_outdated.md +315 -0
- package/blog/ja/is_next-intl_outdated.md +363 -0
- package/blog/ja/is_vue-i18n_outdated.md +338 -0
- package/blog/ja/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/ja/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/ja/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/ja/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/ja/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/ja/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/ja/what_is_internationalization.md +0 -2
- package/blog/ko/date_time_number_formatting_locales.md +216 -0
- package/blog/ko/detecting_missing_translations.md +202 -0
- package/blog/ko/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/ko/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/ko/i18n_meaning.md +0 -2
- package/blog/ko/i18n_testing_strategies.md +179 -0
- package/blog/ko/intlayer_with_i18next.md +3 -5
- package/blog/ko/intlayer_with_next-i18next.md +3 -7
- package/blog/ko/intlayer_with_next-intl.md +3 -3
- package/blog/ko/intlayer_with_react-i18next.md +3 -3
- package/blog/ko/intlayer_with_react-intl.md +3 -3
- package/blog/ko/intlayer_with_vue-i18n.md +3 -7
- package/blog/ko/is_i18next_outdated.md +317 -0
- package/blog/ko/is_next-intl_outdated.md +363 -0
- package/blog/ko/is_vue-i18n_outdated.md +338 -0
- package/blog/ko/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/ko/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/ko/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/ko/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/ko/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/ko/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/ko/what_is_internationalization.md +0 -2
- package/blog/pl/date_time_number_formatting_locales.md +216 -0
- package/blog/pl/detecting_missing_translations.md +202 -0
- package/blog/pl/hreflang_guide_multilingual_seo.md +316 -0
- package/blog/pl/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/pl/i18n_meaning.md +0 -2
- package/blog/pl/i18n_testing_strategies.md +179 -0
- package/blog/pl/intlayer_with_i18next.md +3 -3
- package/blog/pl/intlayer_with_next-i18next.md +3 -3
- package/blog/pl/intlayer_with_next-intl.md +3 -3
- package/blog/pl/intlayer_with_react-i18next.md +3 -3
- package/blog/pl/intlayer_with_react-intl.md +3 -3
- package/blog/pl/intlayer_with_vue-i18n.md +3 -3
- package/blog/pl/is_i18next_outdated.md +315 -0
- package/blog/pl/is_next-intl_outdated.md +363 -0
- package/blog/pl/is_vue-i18n_outdated.md +338 -0
- package/blog/pl/list_i18n_technologies/build-tools/vite.md +177 -0
- package/blog/pl/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/pl/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/pl/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/pl/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/pl/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/pl/what_is_internationalization.md +0 -2
- package/blog/pt/date_time_number_formatting_locales.md +216 -0
- package/blog/pt/detecting_missing_translations.md +202 -0
- package/blog/pt/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/pt/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/pt/i18n_meaning.md +0 -2
- package/blog/pt/i18n_testing_strategies.md +179 -0
- package/blog/pt/intlayer_with_i18next.md +3 -5
- package/blog/pt/intlayer_with_next-i18next.md +3 -7
- package/blog/pt/intlayer_with_next-intl.md +3 -3
- package/blog/pt/intlayer_with_react-i18next.md +3 -3
- package/blog/pt/intlayer_with_react-intl.md +3 -3
- package/blog/pt/intlayer_with_vue-i18n.md +3 -7
- package/blog/pt/is_i18next_outdated.md +315 -0
- package/blog/pt/is_next-intl_outdated.md +363 -0
- package/blog/pt/is_vue-i18n_outdated.md +338 -0
- package/blog/pt/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/pt/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/pt/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/pt/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/pt/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/pt/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/pt/what_is_internationalization.md +0 -2
- package/blog/ru/date_time_number_formatting_locales.md +216 -0
- package/blog/ru/detecting_missing_translations.md +202 -0
- package/blog/ru/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/ru/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/ru/i18n_meaning.md +0 -2
- package/blog/ru/i18n_testing_strategies.md +179 -0
- package/blog/ru/intlayer_with_i18next.md +3 -3
- package/blog/ru/intlayer_with_next-i18next.md +3 -3
- package/blog/ru/intlayer_with_next-intl.md +3 -3
- package/blog/ru/intlayer_with_react-i18next.md +3 -3
- package/blog/ru/intlayer_with_react-intl.md +3 -3
- package/blog/ru/intlayer_with_vue-i18n.md +3 -3
- package/blog/ru/is_i18next_outdated.md +315 -0
- package/blog/ru/is_next-intl_outdated.md +363 -0
- package/blog/ru/is_vue-i18n_outdated.md +338 -0
- package/blog/ru/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/ru/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/ru/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/ru/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/ru/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/ru/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/ru/what_is_internationalization.md +0 -2
- package/blog/tr/date_time_number_formatting_locales.md +216 -0
- package/blog/tr/detecting_missing_translations.md +202 -0
- package/blog/tr/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/tr/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/tr/i18n_meaning.md +0 -2
- package/blog/tr/i18n_testing_strategies.md +179 -0
- package/blog/tr/intlayer_with_i18next.md +3 -5
- package/blog/tr/intlayer_with_next-i18next.md +3 -7
- package/blog/tr/intlayer_with_next-intl.md +3 -3
- package/blog/tr/intlayer_with_react-i18next.md +3 -3
- package/blog/tr/intlayer_with_react-intl.md +3 -3
- package/blog/tr/intlayer_with_vue-i18n.md +3 -7
- package/blog/tr/is_i18next_outdated.md +315 -0
- package/blog/tr/is_next-intl_outdated.md +363 -0
- package/blog/tr/is_vue-i18n_outdated.md +338 -0
- package/blog/tr/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/tr/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/tr/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/tr/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/tr/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/tr/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/tr/what_is_internationalization.md +0 -2
- package/blog/uk/date_time_number_formatting_locales.md +216 -0
- package/blog/uk/detecting_missing_translations.md +202 -0
- package/blog/uk/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/uk/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/uk/i18n_meaning.md +0 -2
- package/blog/uk/i18n_testing_strategies.md +179 -0
- package/blog/uk/intlayer_with_i18next.md +3 -5
- package/blog/uk/intlayer_with_next-i18next.md +3 -5
- package/blog/uk/intlayer_with_next-intl.md +3 -5
- package/blog/uk/intlayer_with_react-i18next.md +3 -3
- package/blog/uk/intlayer_with_react-intl.md +3 -5
- package/blog/uk/intlayer_with_vue-i18n.md +3 -5
- package/blog/uk/is_i18next_outdated.md +315 -0
- package/blog/uk/is_next-intl_outdated.md +363 -0
- package/blog/uk/is_vue-i18n_outdated.md +338 -0
- package/blog/uk/list_i18n_technologies/build-tools/vite.md +177 -0
- package/blog/uk/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/uk/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/uk/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/uk/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/uk/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/uk/what_is_internationalization.md +0 -2
- package/blog/vi/date_time_number_formatting_locales.md +216 -0
- package/blog/vi/detecting_missing_translations.md +202 -0
- package/blog/vi/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/vi/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/vi/i18n_meaning.md +0 -2
- package/blog/vi/i18n_testing_strategies.md +179 -0
- package/blog/vi/intlayer_with_i18next.md +3 -5
- package/blog/vi/intlayer_with_next-i18next.md +3 -7
- package/blog/vi/intlayer_with_next-intl.md +3 -3
- package/blog/vi/intlayer_with_react-i18next.md +3 -3
- package/blog/vi/intlayer_with_react-intl.md +3 -3
- package/blog/vi/intlayer_with_vue-i18n.md +3 -7
- package/blog/vi/is_i18next_outdated.md +317 -0
- package/blog/vi/is_next-intl_outdated.md +363 -0
- package/blog/vi/is_vue-i18n_outdated.md +338 -0
- package/blog/vi/list_i18n_technologies/build-tools/vite.md +177 -0
- package/blog/vi/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/vi/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/vi/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/vi/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/vi/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/vi/what_is_internationalization.md +0 -2
- package/blog/zh/date_time_number_formatting_locales.md +216 -0
- package/blog/zh/detecting_missing_translations.md +202 -0
- package/blog/zh/hreflang_guide_multilingual_seo.md +314 -0
- package/blog/zh/i18n_in_ci_cd_pipelines.md +247 -0
- package/blog/zh/i18n_meaning.md +0 -2
- package/blog/zh/i18n_testing_strategies.md +179 -0
- package/blog/zh/intlayer_with_i18next.md +3 -5
- package/blog/zh/intlayer_with_next-i18next.md +3 -5
- package/blog/zh/intlayer_with_next-intl.md +3 -5
- package/blog/zh/intlayer_with_react-i18next.md +3 -3
- package/blog/zh/intlayer_with_react-intl.md +3 -5
- package/blog/zh/intlayer_with_vue-i18n.md +3 -5
- package/blog/zh/is_i18next_outdated.md +317 -0
- package/blog/zh/is_next-intl_outdated.md +363 -0
- package/blog/zh/is_vue-i18n_outdated.md +338 -0
- package/blog/zh/list_i18n_technologies/build-tools/vite.md +179 -0
- package/blog/zh/list_i18n_technologies/frameworks/angular.md +0 -2
- package/blog/zh/list_i18n_technologies/frameworks/react-native.md +0 -2
- package/blog/zh/list_i18n_technologies/frameworks/react.md +0 -2
- package/blog/zh/list_i18n_technologies/frameworks/svelte.md +0 -2
- package/blog/zh/list_i18n_technologies/frameworks/vue.md +0 -2
- package/blog/zh/what_is_internationalization.md +0 -2
- package/dist/cjs/common.cjs +29 -6
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +340 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/common.mjs +29 -6
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +340 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +17 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/analytics.md +458 -12
- package/docs/ar/bundle_optimization.md +186 -186
- package/docs/ar/configuration.md +98 -0
- package/docs/ar/dictionary/content_file.md +4 -4
- package/docs/ar/dictionary/html.md +117 -1
- package/docs/ar/dictionary/markdown.md +18 -1
- package/docs/ar/dictionary/plurial.md +5 -2
- package/docs/ar/how_works_intlayer.md +92 -0
- package/docs/ar/interest_of_intlayer.md +106 -9
- package/docs/ar/intlayer_CMS.md +92 -0
- package/docs/ar/intlayer_visual_editor.md +87 -1
- package/docs/ar/intlayer_with_adonisjs.md +124 -3
- package/docs/ar/intlayer_with_analog.md +119 -11
- package/docs/ar/intlayer_with_angular_19.md +118 -11
- package/docs/ar/intlayer_with_angular_21.md +112 -11
- package/docs/ar/intlayer_with_astro.md +120 -23
- package/docs/ar/intlayer_with_astro_lit.md +121 -13
- package/docs/ar/intlayer_with_astro_preact.md +121 -13
- package/docs/ar/intlayer_with_astro_react.md +121 -13
- package/docs/ar/intlayer_with_astro_solid.md +121 -13
- package/docs/ar/intlayer_with_astro_svelte.md +121 -13
- package/docs/ar/intlayer_with_astro_vanilla.md +115 -13
- package/docs/ar/intlayer_with_astro_vue.md +121 -13
- package/docs/ar/intlayer_with_create_react_app.md +108 -3
- package/docs/ar/intlayer_with_elysia.md +125 -4
- package/docs/ar/intlayer_with_express.md +117 -3
- package/docs/ar/intlayer_with_fastify.md +119 -4
- package/docs/ar/intlayer_with_hono.md +117 -3
- package/docs/ar/intlayer_with_htmx.md +771 -0
- package/docs/ar/intlayer_with_lynx+react.md +10 -17
- package/docs/ar/intlayer_with_nestjs.md +118 -3
- package/docs/ar/intlayer_with_next-i18next.md +3 -3
- package/docs/ar/intlayer_with_nextjs_14.md +147 -123
- package/docs/ar/intlayer_with_nextjs_15.md +129 -54
- package/docs/ar/intlayer_with_nextjs_16.md +130 -52
- package/docs/ar/intlayer_with_nextjs_compiler.md +125 -16
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +124 -12
- package/docs/ar/intlayer_with_nextjs_page_router.md +142 -110
- package/docs/ar/intlayer_with_nuxt.md +113 -11
- package/docs/ar/intlayer_with_react_native+expo.md +105 -10
- package/docs/ar/intlayer_with_react_router_v7.md +122 -13
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +125 -25
- package/docs/ar/intlayer_with_solid_start.md +118 -4
- package/docs/ar/intlayer_with_storybook.md +7 -20
- package/docs/ar/intlayer_with_svelte_kit.md +110 -20
- package/docs/ar/intlayer_with_tanstack+solid.md +127 -25
- package/docs/ar/intlayer_with_tanstack.md +137 -46
- package/docs/ar/intlayer_with_vanilla.md +117 -9
- package/docs/ar/intlayer_with_vite+lit.md +121 -11
- package/docs/ar/intlayer_with_vite+preact.md +151 -43
- package/docs/ar/intlayer_with_vite+react.md +111 -23
- package/docs/ar/intlayer_with_vite+react_compiler.md +109 -4
- package/docs/ar/intlayer_with_vite+solid.md +117 -8
- package/docs/ar/intlayer_with_vite+svelte.md +122 -20
- package/docs/ar/intlayer_with_vite+vanilla.md +128 -11
- package/docs/ar/intlayer_with_vite+vue.md +108 -12
- package/docs/ar/introduction.md +104 -1
- package/docs/ar/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/ar/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/ar/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/ar/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/ar/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/ar/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/ar/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/bn/bundle_optimization.md +186 -186
- package/docs/bn/intlayer_with_angular_21.md +3 -3
- package/docs/bn/intlayer_with_fastify.md +4 -4
- package/docs/bn/intlayer_with_hono.md +3 -3
- package/docs/bn/intlayer_with_vite+lit.md +3 -3
- package/docs/bn/intlayer_with_vite+vanilla.md +3 -3
- package/docs/bn/introduction.md +0 -1
- package/docs/cs/bundle_optimization.md +186 -186
- package/docs/cs/interest_of_intlayer.md +0 -1
- package/docs/cs/intlayer_with_angular_21.md +3 -3
- package/docs/cs/intlayer_with_fastify.md +4 -4
- package/docs/cs/intlayer_with_hono.md +3 -3
- package/docs/cs/intlayer_with_storybook.md +0 -12
- package/docs/cs/intlayer_with_vanilla.md +2 -1
- package/docs/cs/intlayer_with_vite+lit.md +3 -3
- package/docs/cs/intlayer_with_vite+vanilla.md +3 -3
- package/docs/cs/introduction.md +0 -1
- package/docs/de/analytics.md +458 -12
- package/docs/de/bundle_optimization.md +186 -186
- package/docs/de/configuration.md +99 -1
- package/docs/de/dictionary/content_file.md +4 -4
- package/docs/de/dictionary/markdown.md +3 -0
- package/docs/de/dictionary/plurial.md +6 -3
- package/docs/de/how_works_intlayer.md +93 -1
- package/docs/de/interest_of_intlayer.md +97 -2
- package/docs/de/intlayer_CMS.md +93 -1
- package/docs/de/intlayer_visual_editor.md +88 -2
- package/docs/de/intlayer_with_adonisjs.md +124 -4
- package/docs/de/intlayer_with_analog.md +114 -5
- package/docs/de/intlayer_with_angular_19.md +112 -5
- package/docs/de/intlayer_with_angular_21.md +106 -5
- package/docs/de/intlayer_with_astro.md +114 -17
- package/docs/de/intlayer_with_astro_lit.md +115 -7
- package/docs/de/intlayer_with_astro_preact.md +115 -7
- package/docs/de/intlayer_with_astro_react.md +115 -7
- package/docs/de/intlayer_with_astro_solid.md +115 -7
- package/docs/de/intlayer_with_astro_svelte.md +115 -7
- package/docs/de/intlayer_with_astro_vanilla.md +109 -7
- package/docs/de/intlayer_with_astro_vue.md +115 -7
- package/docs/de/intlayer_with_create_react_app.md +110 -5
- package/docs/de/intlayer_with_elysia.md +125 -5
- package/docs/de/intlayer_with_express.md +118 -4
- package/docs/de/intlayer_with_fastify.md +119 -5
- package/docs/de/intlayer_with_hono.md +118 -4
- package/docs/de/intlayer_with_htmx.md +770 -0
- package/docs/de/intlayer_with_lynx+react.md +3 -10
- package/docs/de/intlayer_with_nestjs.md +118 -4
- package/docs/de/intlayer_with_next-i18next.md +3 -3
- package/docs/de/intlayer_with_nextjs_14.md +141 -113
- package/docs/de/intlayer_with_nextjs_15.md +123 -48
- package/docs/de/intlayer_with_nextjs_16.md +150 -54
- package/docs/de/intlayer_with_nextjs_compiler.md +116 -6
- package/docs/de/intlayer_with_nextjs_no_locale_path.md +118 -6
- package/docs/de/intlayer_with_nextjs_page_router.md +124 -98
- package/docs/de/intlayer_with_nuxt.md +107 -5
- package/docs/de/intlayer_with_react_native+expo.md +106 -11
- package/docs/de/intlayer_with_react_router_v7.md +116 -7
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/de/intlayer_with_solid_start.md +120 -5
- package/docs/de/intlayer_with_storybook.md +0 -13
- package/docs/de/intlayer_with_svelte_kit.md +102 -5
- package/docs/de/intlayer_with_tanstack+solid.md +122 -19
- package/docs/de/intlayer_with_tanstack.md +234 -155
- package/docs/de/intlayer_with_vanilla.md +111 -3
- package/docs/de/intlayer_with_vite+lit.md +116 -5
- package/docs/de/intlayer_with_vite+preact.md +173 -36
- package/docs/de/intlayer_with_vite+react.md +105 -9
- package/docs/de/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/de/intlayer_with_vite+solid.md +116 -5
- package/docs/de/intlayer_with_vite+svelte.md +117 -14
- package/docs/de/intlayer_with_vite+vanilla.md +122 -5
- package/docs/de/intlayer_with_vite+vue.md +101 -5
- package/docs/de/introduction.md +105 -2
- package/docs/de/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/de/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/de/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/de/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/de/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/de/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/de/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/en/bundle_optimization.md +186 -186
- package/docs/en/configuration.md +99 -1
- package/docs/en/dictionary/content_file.md +4 -4
- package/docs/en/how_works_intlayer.md +93 -1
- package/docs/en/interest_of_intlayer.md +97 -2
- package/docs/en/intlayer_CMS.md +93 -1
- package/docs/en/intlayer_visual_editor.md +88 -2
- package/docs/en/intlayer_with_adonisjs.md +124 -4
- package/docs/en/intlayer_with_analog.md +114 -5
- package/docs/en/intlayer_with_angular_19.md +112 -5
- package/docs/en/intlayer_with_angular_21.md +106 -5
- package/docs/en/intlayer_with_astro.md +110 -7
- package/docs/en/intlayer_with_astro_lit.md +115 -7
- package/docs/en/intlayer_with_astro_preact.md +115 -7
- package/docs/en/intlayer_with_astro_react.md +115 -7
- package/docs/en/intlayer_with_astro_solid.md +115 -7
- package/docs/en/intlayer_with_astro_svelte.md +115 -7
- package/docs/en/intlayer_with_astro_vanilla.md +109 -7
- package/docs/en/intlayer_with_astro_vue.md +115 -7
- package/docs/en/intlayer_with_create_react_app.md +108 -5
- package/docs/en/intlayer_with_elysia.md +125 -5
- package/docs/en/intlayer_with_express.md +118 -4
- package/docs/en/intlayer_with_fastify.md +119 -5
- package/docs/en/intlayer_with_hono.md +118 -4
- package/docs/en/intlayer_with_htmx.md +754 -0
- package/docs/en/intlayer_with_lynx+react.md +3 -10
- package/docs/en/intlayer_with_nestjs.md +118 -4
- package/docs/en/intlayer_with_next-i18next.md +3 -3
- package/docs/en/intlayer_with_nextjs_14.md +123 -46
- package/docs/en/intlayer_with_nextjs_15.md +123 -47
- package/docs/en/intlayer_with_nextjs_16.md +124 -46
- package/docs/en/intlayer_with_nextjs_compiler.md +114 -5
- package/docs/en/intlayer_with_nextjs_no_locale_path.md +118 -6
- package/docs/en/intlayer_with_nextjs_page_router.md +113 -98
- package/docs/en/intlayer_with_nuxt.md +107 -5
- package/docs/en/intlayer_with_react_native+expo.md +106 -11
- package/docs/en/intlayer_with_react_router_v7.md +116 -7
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +112 -5
- package/docs/en/intlayer_with_solid_start.md +120 -5
- package/docs/en/intlayer_with_storybook.md +0 -13
- package/docs/en/intlayer_with_svelte_kit.md +102 -5
- package/docs/en/intlayer_with_tanstack+solid.md +123 -19
- package/docs/en/intlayer_with_tanstack.md +117 -19
- package/docs/en/intlayer_with_vanilla.md +111 -3
- package/docs/en/intlayer_with_vite+lit.md +116 -5
- package/docs/en/intlayer_with_vite+preact.md +146 -37
- package/docs/en/intlayer_with_vite+react.md +104 -7
- package/docs/en/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/en/intlayer_with_vite+solid.md +116 -5
- package/docs/en/intlayer_with_vite+svelte.md +117 -14
- package/docs/en/intlayer_with_vite+vanilla.md +122 -5
- package/docs/en/intlayer_with_vite+vue.md +101 -5
- package/docs/en/introduction.md +105 -2
- package/docs/en/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/en/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/en/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/en/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/en/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/en/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/en/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/en-GB/analytics.md +527 -58
- package/docs/en-GB/bundle_optimization.md +186 -186
- package/docs/en-GB/configuration.md +99 -1
- package/docs/en-GB/dictionary/content_file.md +4 -4
- package/docs/en-GB/dictionary/html.md +117 -1
- package/docs/en-GB/dictionary/markdown.md +18 -1
- package/docs/en-GB/dictionary/plurial.md +5 -2
- package/docs/en-GB/dictionary/translation.md +1 -1
- package/docs/en-GB/how_works_intlayer.md +93 -1
- package/docs/en-GB/interest_of_intlayer.md +97 -2
- package/docs/en-GB/intlayer_CMS.md +93 -1
- package/docs/en-GB/intlayer_visual_editor.md +88 -2
- package/docs/en-GB/intlayer_with_adonisjs.md +124 -4
- package/docs/en-GB/intlayer_with_analog.md +114 -5
- package/docs/en-GB/intlayer_with_angular_19.md +112 -5
- package/docs/en-GB/intlayer_with_angular_21.md +106 -5
- package/docs/en-GB/intlayer_with_astro.md +114 -17
- package/docs/en-GB/intlayer_with_astro_lit.md +115 -7
- package/docs/en-GB/intlayer_with_astro_preact.md +115 -7
- package/docs/en-GB/intlayer_with_astro_react.md +115 -7
- package/docs/en-GB/intlayer_with_astro_solid.md +115 -7
- package/docs/en-GB/intlayer_with_astro_svelte.md +115 -7
- package/docs/en-GB/intlayer_with_astro_vanilla.md +109 -7
- package/docs/en-GB/intlayer_with_astro_vue.md +115 -7
- package/docs/en-GB/intlayer_with_create_react_app.md +108 -5
- package/docs/en-GB/intlayer_with_elysia.md +125 -5
- package/docs/en-GB/intlayer_with_express.md +118 -4
- package/docs/en-GB/intlayer_with_fastify.md +119 -5
- package/docs/en-GB/intlayer_with_hono.md +118 -4
- package/docs/en-GB/intlayer_with_htmx.md +757 -0
- package/docs/en-GB/intlayer_with_lynx+react.md +3 -10
- package/docs/en-GB/intlayer_with_nestjs.md +118 -4
- package/docs/en-GB/intlayer_with_next-i18next.md +3 -3
- package/docs/en-GB/intlayer_with_nextjs_14.md +123 -47
- package/docs/en-GB/intlayer_with_nextjs_15.md +126 -48
- package/docs/en-GB/intlayer_with_nextjs_16.md +124 -47
- package/docs/en-GB/intlayer_with_nextjs_compiler.md +124 -15
- package/docs/en-GB/intlayer_with_nextjs_no_locale_path.md +118 -6
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +125 -140
- package/docs/en-GB/intlayer_with_nuxt.md +107 -5
- package/docs/en-GB/intlayer_with_react_native+expo.md +106 -11
- package/docs/en-GB/intlayer_with_react_router_v7.md +116 -7
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +114 -7
- package/docs/en-GB/intlayer_with_solid_start.md +120 -5
- package/docs/en-GB/intlayer_with_storybook.md +0 -13
- package/docs/en-GB/intlayer_with_svelte_kit.md +102 -5
- package/docs/en-GB/intlayer_with_tanstack+solid.md +123 -19
- package/docs/en-GB/intlayer_with_tanstack.md +258 -170
- package/docs/en-GB/intlayer_with_vanilla.md +111 -3
- package/docs/en-GB/intlayer_with_vite+lit.md +116 -5
- package/docs/en-GB/intlayer_with_vite+preact.md +182 -35
- package/docs/en-GB/intlayer_with_vite+react.md +104 -16
- package/docs/en-GB/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/en-GB/intlayer_with_vite+solid.md +121 -5
- package/docs/en-GB/intlayer_with_vite+svelte.md +117 -23
- package/docs/en-GB/intlayer_with_vite+vanilla.md +122 -5
- package/docs/en-GB/intlayer_with_vite+vue.md +105 -11
- package/docs/en-GB/introduction.md +105 -2
- package/docs/en-GB/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/en-GB/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/en-GB/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/en-GB/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/en-GB/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/en-GB/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/en-GB/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/es/analytics.md +458 -12
- package/docs/es/bundle_optimization.md +186 -186
- package/docs/es/configuration.md +99 -1
- package/docs/es/dictionary/content_file.md +4 -4
- package/docs/es/dictionary/markdown.md +18 -1
- package/docs/es/dictionary/plurial.md +5 -2
- package/docs/es/how_works_intlayer.md +93 -1
- package/docs/es/interest_of_intlayer.md +97 -2
- package/docs/es/intlayer_CMS.md +93 -1
- package/docs/es/intlayer_visual_editor.md +88 -2
- package/docs/es/intlayer_with_adonisjs.md +124 -4
- package/docs/es/intlayer_with_analog.md +114 -5
- package/docs/es/intlayer_with_angular_19.md +112 -5
- package/docs/es/intlayer_with_angular_21.md +106 -5
- package/docs/es/intlayer_with_astro.md +114 -17
- package/docs/es/intlayer_with_astro_lit.md +115 -7
- package/docs/es/intlayer_with_astro_preact.md +115 -7
- package/docs/es/intlayer_with_astro_react.md +115 -7
- package/docs/es/intlayer_with_astro_solid.md +115 -7
- package/docs/es/intlayer_with_astro_svelte.md +115 -7
- package/docs/es/intlayer_with_astro_vanilla.md +109 -7
- package/docs/es/intlayer_with_astro_vue.md +115 -7
- package/docs/es/intlayer_with_create_react_app.md +110 -5
- package/docs/es/intlayer_with_elysia.md +125 -5
- package/docs/es/intlayer_with_express.md +118 -4
- package/docs/es/intlayer_with_fastify.md +119 -5
- package/docs/es/intlayer_with_hono.md +118 -4
- package/docs/es/intlayer_with_htmx.md +763 -0
- package/docs/es/intlayer_with_lynx+react.md +3 -10
- package/docs/es/intlayer_with_nestjs.md +118 -4
- package/docs/es/intlayer_with_next-i18next.md +3 -3
- package/docs/es/intlayer_with_nextjs_14.md +123 -47
- package/docs/es/intlayer_with_nextjs_15.md +126 -48
- package/docs/es/intlayer_with_nextjs_16.md +145 -55
- package/docs/es/intlayer_with_nextjs_compiler.md +125 -15
- package/docs/es/intlayer_with_nextjs_no_locale_path.md +118 -6
- package/docs/es/intlayer_with_nextjs_page_router.md +113 -98
- package/docs/es/intlayer_with_nuxt.md +107 -5
- package/docs/es/intlayer_with_react_native+expo.md +106 -11
- package/docs/es/intlayer_with_react_router_v7.md +116 -7
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/es/intlayer_with_solid_start.md +120 -5
- package/docs/es/intlayer_with_storybook.md +0 -13
- package/docs/es/intlayer_with_svelte_kit.md +102 -5
- package/docs/es/intlayer_with_tanstack+solid.md +122 -19
- package/docs/es/intlayer_with_tanstack.md +255 -150
- package/docs/es/intlayer_with_vanilla.md +111 -3
- package/docs/es/intlayer_with_vite+lit.md +116 -5
- package/docs/es/intlayer_with_vite+preact.md +146 -37
- package/docs/es/intlayer_with_vite+react.md +104 -7
- package/docs/es/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/es/intlayer_with_vite+solid.md +117 -5
- package/docs/es/intlayer_with_vite+svelte.md +117 -14
- package/docs/es/intlayer_with_vite+vanilla.md +122 -5
- package/docs/es/intlayer_with_vite+vue.md +102 -6
- package/docs/es/introduction.md +105 -2
- package/docs/es/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/es/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/es/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/es/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/es/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/es/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/es/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/fr/analytics.md +437 -13
- package/docs/fr/bundle_optimization.md +186 -186
- package/docs/fr/configuration.md +99 -1
- package/docs/fr/dictionary/content_file.md +4 -4
- package/docs/fr/dictionary/markdown.md +18 -1
- package/docs/fr/dictionary/plurial.md +5 -2
- package/docs/fr/how_works_intlayer.md +93 -1
- package/docs/fr/interest_of_intlayer.md +97 -2
- package/docs/fr/intlayer_CMS.md +93 -1
- package/docs/fr/intlayer_visual_editor.md +88 -2
- package/docs/fr/intlayer_with_adonisjs.md +124 -4
- package/docs/fr/intlayer_with_analog.md +114 -5
- package/docs/fr/intlayer_with_angular_19.md +112 -5
- package/docs/fr/intlayer_with_angular_21.md +106 -5
- package/docs/fr/intlayer_with_astro.md +114 -17
- package/docs/fr/intlayer_with_astro_lit.md +115 -7
- package/docs/fr/intlayer_with_astro_preact.md +115 -7
- package/docs/fr/intlayer_with_astro_react.md +115 -7
- package/docs/fr/intlayer_with_astro_solid.md +115 -7
- package/docs/fr/intlayer_with_astro_svelte.md +115 -7
- package/docs/fr/intlayer_with_astro_vanilla.md +109 -7
- package/docs/fr/intlayer_with_astro_vue.md +115 -7
- package/docs/fr/intlayer_with_create_react_app.md +110 -5
- package/docs/fr/intlayer_with_elysia.md +125 -5
- package/docs/fr/intlayer_with_express.md +118 -4
- package/docs/fr/intlayer_with_fastify.md +119 -5
- package/docs/fr/intlayer_with_hono.md +118 -4
- package/docs/fr/intlayer_with_htmx.md +756 -0
- package/docs/fr/intlayer_with_lynx+react.md +3 -10
- package/docs/fr/intlayer_with_nestjs.md +118 -4
- package/docs/fr/intlayer_with_next-i18next.md +3 -3
- package/docs/fr/intlayer_with_nextjs_14.md +141 -113
- package/docs/fr/intlayer_with_nextjs_15.md +127 -49
- package/docs/fr/intlayer_with_nextjs_16.md +124 -46
- package/docs/fr/intlayer_with_nextjs_compiler.md +125 -15
- package/docs/fr/intlayer_with_nextjs_no_locale_path.md +118 -6
- package/docs/fr/intlayer_with_nextjs_page_router.md +113 -98
- package/docs/fr/intlayer_with_nuxt.md +107 -5
- package/docs/fr/intlayer_with_react_native+expo.md +106 -11
- package/docs/fr/intlayer_with_react_router_v7.md +120 -13
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/fr/intlayer_with_solid_start.md +120 -5
- package/docs/fr/intlayer_with_storybook.md +0 -13
- package/docs/fr/intlayer_with_svelte_kit.md +102 -5
- package/docs/fr/intlayer_with_tanstack+solid.md +122 -19
- package/docs/fr/intlayer_with_tanstack.md +238 -131
- package/docs/fr/intlayer_with_vanilla.md +111 -3
- package/docs/fr/intlayer_with_vite+lit.md +116 -5
- package/docs/fr/intlayer_with_vite+preact.md +146 -37
- package/docs/fr/intlayer_with_vite+react.md +104 -7
- package/docs/fr/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/fr/intlayer_with_vite+solid.md +117 -5
- package/docs/fr/intlayer_with_vite+svelte.md +117 -14
- package/docs/fr/intlayer_with_vite+vanilla.md +122 -5
- package/docs/fr/intlayer_with_vite+vue.md +102 -6
- package/docs/fr/introduction.md +105 -2
- package/docs/fr/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/fr/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/fr/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/fr/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/fr/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/fr/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/fr/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/hi/analytics.md +488 -21
- package/docs/hi/bundle_optimization.md +186 -186
- package/docs/hi/configuration.md +98 -0
- package/docs/hi/dictionary/content_file.md +4 -4
- package/docs/hi/dictionary/html.md +100 -3
- package/docs/hi/dictionary/markdown.md +3 -0
- package/docs/hi/dictionary/plurial.md +6 -3
- package/docs/hi/how_works_intlayer.md +92 -0
- package/docs/hi/interest_of_intlayer.md +106 -9
- package/docs/hi/intlayer_CMS.md +92 -0
- package/docs/hi/intlayer_visual_editor.md +87 -1
- package/docs/hi/intlayer_with_adonisjs.md +124 -3
- package/docs/hi/intlayer_with_analog.md +119 -11
- package/docs/hi/intlayer_with_angular_19.md +118 -11
- package/docs/hi/intlayer_with_angular_21.md +112 -11
- package/docs/hi/intlayer_with_astro.md +120 -23
- package/docs/hi/intlayer_with_astro_lit.md +121 -13
- package/docs/hi/intlayer_with_astro_preact.md +121 -13
- package/docs/hi/intlayer_with_astro_react.md +121 -13
- package/docs/hi/intlayer_with_astro_solid.md +121 -13
- package/docs/hi/intlayer_with_astro_svelte.md +121 -13
- package/docs/hi/intlayer_with_astro_vanilla.md +115 -13
- package/docs/hi/intlayer_with_astro_vue.md +121 -13
- package/docs/hi/intlayer_with_create_react_app.md +109 -4
- package/docs/hi/intlayer_with_elysia.md +125 -4
- package/docs/hi/intlayer_with_express.md +117 -3
- package/docs/hi/intlayer_with_fastify.md +119 -4
- package/docs/hi/intlayer_with_hono.md +117 -3
- package/docs/hi/intlayer_with_htmx.md +771 -0
- package/docs/hi/intlayer_with_lynx+react.md +10 -17
- package/docs/hi/intlayer_with_nestjs.md +118 -3
- package/docs/hi/intlayer_with_next-i18next.md +3 -3
- package/docs/hi/intlayer_with_nextjs_14.md +147 -123
- package/docs/hi/intlayer_with_nextjs_15.md +132 -54
- package/docs/hi/intlayer_with_nextjs_16.md +132 -53
- package/docs/hi/intlayer_with_nextjs_compiler.md +124 -15
- package/docs/hi/intlayer_with_nextjs_no_locale_path.md +124 -12
- package/docs/hi/intlayer_with_nextjs_page_router.md +126 -99
- package/docs/hi/intlayer_with_nuxt.md +113 -11
- package/docs/hi/intlayer_with_react_native+expo.md +105 -10
- package/docs/hi/intlayer_with_react_router_v7.md +122 -13
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +125 -25
- package/docs/hi/intlayer_with_solid_start.md +118 -4
- package/docs/hi/intlayer_with_storybook.md +7 -20
- package/docs/hi/intlayer_with_svelte_kit.md +108 -11
- package/docs/hi/intlayer_with_tanstack+solid.md +127 -25
- package/docs/hi/intlayer_with_tanstack.md +272 -158
- package/docs/hi/intlayer_with_vanilla.md +117 -9
- package/docs/hi/intlayer_with_vite+lit.md +121 -11
- package/docs/hi/intlayer_with_vite+preact.md +173 -44
- package/docs/hi/intlayer_with_vite+react.md +111 -23
- package/docs/hi/intlayer_with_vite+react_compiler.md +109 -4
- package/docs/hi/intlayer_with_vite+solid.md +121 -11
- package/docs/hi/intlayer_with_vite+svelte.md +124 -21
- package/docs/hi/intlayer_with_vite+vanilla.md +128 -11
- package/docs/hi/intlayer_with_vite+vue.md +107 -11
- package/docs/hi/introduction.md +104 -1
- package/docs/hi/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/hi/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/hi/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/hi/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/hi/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/hi/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/hi/packages/intlayer/index.md +3 -3
- package/docs/hi/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/id/analytics.md +488 -21
- package/docs/id/bundle_optimization.md +186 -186
- package/docs/id/configuration.md +98 -0
- package/docs/id/dictionary/content_file.md +4 -4
- package/docs/id/dictionary/markdown.md +3 -0
- package/docs/id/dictionary/plurial.md +5 -2
- package/docs/id/how_works_intlayer.md +92 -0
- package/docs/id/interest_of_intlayer.md +96 -1
- package/docs/id/intlayer_CMS.md +92 -0
- package/docs/id/intlayer_visual_editor.md +87 -1
- package/docs/id/intlayer_with_adonisjs.md +124 -3
- package/docs/id/intlayer_with_analog.md +112 -4
- package/docs/id/intlayer_with_angular_19.md +111 -4
- package/docs/id/intlayer_with_angular_21.md +105 -4
- package/docs/id/intlayer_with_astro.md +113 -16
- package/docs/id/intlayer_with_astro_lit.md +114 -6
- package/docs/id/intlayer_with_astro_preact.md +114 -6
- package/docs/id/intlayer_with_astro_react.md +114 -6
- package/docs/id/intlayer_with_astro_solid.md +114 -6
- package/docs/id/intlayer_with_astro_svelte.md +114 -6
- package/docs/id/intlayer_with_astro_vanilla.md +108 -6
- package/docs/id/intlayer_with_astro_vue.md +114 -6
- package/docs/id/intlayer_with_create_react_app.md +109 -4
- package/docs/id/intlayer_with_elysia.md +125 -4
- package/docs/id/intlayer_with_express.md +117 -3
- package/docs/id/intlayer_with_fastify.md +119 -4
- package/docs/id/intlayer_with_hono.md +117 -3
- package/docs/id/intlayer_with_htmx.md +761 -0
- package/docs/id/intlayer_with_lynx+react.md +3 -10
- package/docs/id/intlayer_with_nestjs.md +118 -3
- package/docs/id/intlayer_with_next-i18next.md +3 -3
- package/docs/id/intlayer_with_nextjs_14.md +135 -69
- package/docs/id/intlayer_with_nextjs_15.md +122 -46
- package/docs/id/intlayer_with_nextjs_16.md +125 -45
- package/docs/id/intlayer_with_nextjs_compiler.md +125 -17
- package/docs/id/intlayer_with_nextjs_no_locale_path.md +117 -5
- package/docs/id/intlayer_with_nextjs_page_router.md +114 -97
- package/docs/id/intlayer_with_nuxt.md +106 -4
- package/docs/id/intlayer_with_react_native+expo.md +105 -10
- package/docs/id/intlayer_with_react_router_v7.md +115 -6
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +116 -16
- package/docs/id/intlayer_with_solid_start.md +118 -4
- package/docs/id/intlayer_with_storybook.md +0 -13
- package/docs/id/intlayer_with_svelte_kit.md +101 -4
- package/docs/id/intlayer_with_tanstack+solid.md +120 -18
- package/docs/id/intlayer_with_tanstack.md +232 -132
- package/docs/id/intlayer_with_vanilla.md +110 -2
- package/docs/id/intlayer_with_vite+lit.md +114 -4
- package/docs/id/intlayer_with_vite+preact.md +144 -36
- package/docs/id/intlayer_with_vite+react.md +104 -16
- package/docs/id/intlayer_with_vite+react_compiler.md +109 -4
- package/docs/id/intlayer_with_vite+solid.md +115 -4
- package/docs/id/intlayer_with_vite+svelte.md +115 -13
- package/docs/id/intlayer_with_vite+vanilla.md +121 -4
- package/docs/id/intlayer_with_vite+vue.md +100 -4
- package/docs/id/introduction.md +104 -1
- package/docs/id/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/id/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/id/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/id/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/id/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/id/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/id/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/it/analytics.md +488 -21
- package/docs/it/bundle_optimization.md +186 -186
- package/docs/it/configuration.md +99 -1
- package/docs/it/dictionary/content_file.md +4 -4
- package/docs/it/dictionary/markdown.md +18 -1
- package/docs/it/dictionary/plurial.md +5 -2
- package/docs/it/how_works_intlayer.md +93 -1
- package/docs/it/interest_of_intlayer.md +97 -2
- package/docs/it/intlayer_CMS.md +93 -1
- package/docs/it/intlayer_visual_editor.md +88 -2
- package/docs/it/intlayer_with_adonisjs.md +124 -4
- package/docs/it/intlayer_with_analog.md +114 -5
- package/docs/it/intlayer_with_angular_19.md +112 -5
- package/docs/it/intlayer_with_angular_21.md +106 -5
- package/docs/it/intlayer_with_astro.md +114 -17
- package/docs/it/intlayer_with_astro_lit.md +115 -7
- package/docs/it/intlayer_with_astro_preact.md +115 -7
- package/docs/it/intlayer_with_astro_react.md +115 -7
- package/docs/it/intlayer_with_astro_solid.md +115 -7
- package/docs/it/intlayer_with_astro_svelte.md +115 -7
- package/docs/it/intlayer_with_astro_vanilla.md +109 -7
- package/docs/it/intlayer_with_astro_vue.md +115 -7
- package/docs/it/intlayer_with_create_react_app.md +110 -5
- package/docs/it/intlayer_with_elysia.md +125 -5
- package/docs/it/intlayer_with_express.md +118 -4
- package/docs/it/intlayer_with_fastify.md +119 -5
- package/docs/it/intlayer_with_hono.md +118 -4
- package/docs/it/intlayer_with_htmx.md +761 -0
- package/docs/it/intlayer_with_lynx+react.md +3 -10
- package/docs/it/intlayer_with_nestjs.md +118 -4
- package/docs/it/intlayer_with_next-i18next.md +3 -3
- package/docs/it/intlayer_with_nextjs_14.md +141 -118
- package/docs/it/intlayer_with_nextjs_15.md +127 -50
- package/docs/it/intlayer_with_nextjs_16.md +126 -47
- package/docs/it/intlayer_with_nextjs_compiler.md +126 -17
- package/docs/it/intlayer_with_nextjs_no_locale_path.md +118 -6
- package/docs/it/intlayer_with_nextjs_page_router.md +122 -98
- package/docs/it/intlayer_with_nuxt.md +107 -5
- package/docs/it/intlayer_with_react_native+expo.md +106 -11
- package/docs/it/intlayer_with_react_router_v7.md +116 -7
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/it/intlayer_with_solid_start.md +120 -5
- package/docs/it/intlayer_with_storybook.md +0 -13
- package/docs/it/intlayer_with_svelte_kit.md +102 -5
- package/docs/it/intlayer_with_tanstack+solid.md +122 -19
- package/docs/it/intlayer_with_tanstack.md +235 -134
- package/docs/it/intlayer_with_vanilla.md +111 -3
- package/docs/it/intlayer_with_vite+lit.md +116 -5
- package/docs/it/intlayer_with_vite+preact.md +146 -37
- package/docs/it/intlayer_with_vite+react.md +105 -17
- package/docs/it/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/it/intlayer_with_vite+solid.md +117 -5
- package/docs/it/intlayer_with_vite+svelte.md +117 -14
- package/docs/it/intlayer_with_vite+vanilla.md +122 -5
- package/docs/it/intlayer_with_vite+vue.md +102 -6
- package/docs/it/introduction.md +105 -2
- package/docs/it/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/it/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/it/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/it/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/it/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/it/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/it/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ja/analytics.md +458 -12
- package/docs/ja/bundle_optimization.md +186 -186
- package/docs/ja/configuration.md +99 -1
- package/docs/ja/dictionary/content_file.md +4 -4
- package/docs/ja/dictionary/plurial.md +5 -2
- package/docs/ja/how_works_intlayer.md +93 -1
- package/docs/ja/interest_of_intlayer.md +107 -10
- package/docs/ja/intlayer_CMS.md +93 -1
- package/docs/ja/intlayer_visual_editor.md +88 -2
- package/docs/ja/intlayer_with_adonisjs.md +124 -4
- package/docs/ja/intlayer_with_analog.md +122 -13
- package/docs/ja/intlayer_with_angular_19.md +120 -13
- package/docs/ja/intlayer_with_angular_21.md +114 -13
- package/docs/ja/intlayer_with_astro.md +122 -25
- package/docs/ja/intlayer_with_astro_lit.md +123 -15
- package/docs/ja/intlayer_with_astro_preact.md +123 -15
- package/docs/ja/intlayer_with_astro_react.md +123 -15
- package/docs/ja/intlayer_with_astro_solid.md +123 -15
- package/docs/ja/intlayer_with_astro_svelte.md +123 -15
- package/docs/ja/intlayer_with_astro_vanilla.md +117 -15
- package/docs/ja/intlayer_with_astro_vue.md +123 -15
- package/docs/ja/intlayer_with_create_react_app.md +110 -5
- package/docs/ja/intlayer_with_elysia.md +125 -5
- package/docs/ja/intlayer_with_express.md +124 -4
- package/docs/ja/intlayer_with_fastify.md +119 -5
- package/docs/ja/intlayer_with_hono.md +118 -4
- package/docs/ja/intlayer_with_htmx.md +769 -0
- package/docs/ja/intlayer_with_lynx+react.md +11 -18
- package/docs/ja/intlayer_with_nestjs.md +118 -4
- package/docs/ja/intlayer_with_next-i18next.md +3 -3
- package/docs/ja/intlayer_with_nextjs_14.md +131 -54
- package/docs/ja/intlayer_with_nextjs_15.md +139 -62
- package/docs/ja/intlayer_with_nextjs_16.md +134 -55
- package/docs/ja/intlayer_with_nextjs_compiler.md +126 -18
- package/docs/ja/intlayer_with_nextjs_no_locale_path.md +126 -14
- package/docs/ja/intlayer_with_nextjs_page_router.md +218 -113
- package/docs/ja/intlayer_with_nuxt.md +115 -13
- package/docs/ja/intlayer_with_react_native+expo.md +106 -11
- package/docs/ja/intlayer_with_react_router_v7.md +124 -14
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +123 -23
- package/docs/ja/intlayer_with_solid_start.md +120 -5
- package/docs/ja/intlayer_with_storybook.md +8 -21
- package/docs/ja/intlayer_with_svelte_kit.md +110 -13
- package/docs/ja/intlayer_with_tanstack+solid.md +131 -27
- package/docs/ja/intlayer_with_tanstack.md +257 -206
- package/docs/ja/intlayer_with_vanilla.md +119 -11
- package/docs/ja/intlayer_with_vite+lit.md +124 -13
- package/docs/ja/intlayer_with_vite+preact.md +154 -26
- package/docs/ja/intlayer_with_vite+react.md +112 -15
- package/docs/ja/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/ja/intlayer_with_vite+solid.md +124 -13
- package/docs/ja/intlayer_with_vite+svelte.md +125 -22
- package/docs/ja/intlayer_with_vite+vanilla.md +130 -13
- package/docs/ja/intlayer_with_vite+vue.md +110 -14
- package/docs/ja/introduction.md +105 -2
- package/docs/ja/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/ja/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/ja/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/ja/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/ja/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/ja/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/ja/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ko/analytics.md +457 -11
- package/docs/ko/bundle_optimization.md +186 -186
- package/docs/ko/configuration.md +99 -1
- package/docs/ko/dictionary/content_file.md +4 -4
- package/docs/ko/dictionary/markdown.md +18 -1
- package/docs/ko/dictionary/plurial.md +6 -3
- package/docs/ko/how_works_intlayer.md +93 -1
- package/docs/ko/interest_of_intlayer.md +98 -3
- package/docs/ko/intlayer_CMS.md +93 -1
- package/docs/ko/intlayer_visual_editor.md +88 -2
- package/docs/ko/intlayer_with_adonisjs.md +124 -4
- package/docs/ko/intlayer_with_analog.md +114 -5
- package/docs/ko/intlayer_with_angular_19.md +113 -6
- package/docs/ko/intlayer_with_angular_21.md +107 -6
- package/docs/ko/intlayer_with_astro.md +122 -22
- package/docs/ko/intlayer_with_astro_lit.md +115 -7
- package/docs/ko/intlayer_with_astro_preact.md +115 -7
- package/docs/ko/intlayer_with_astro_react.md +115 -7
- package/docs/ko/intlayer_with_astro_solid.md +115 -7
- package/docs/ko/intlayer_with_astro_svelte.md +115 -7
- package/docs/ko/intlayer_with_astro_vanilla.md +109 -7
- package/docs/ko/intlayer_with_astro_vue.md +115 -7
- package/docs/ko/intlayer_with_create_react_app.md +110 -8
- package/docs/ko/intlayer_with_elysia.md +125 -5
- package/docs/ko/intlayer_with_express.md +118 -4
- package/docs/ko/intlayer_with_fastify.md +119 -6
- package/docs/ko/intlayer_with_hono.md +118 -4
- package/docs/ko/intlayer_with_htmx.md +763 -0
- package/docs/ko/intlayer_with_lynx+react.md +3 -10
- package/docs/ko/intlayer_with_nestjs.md +118 -4
- package/docs/ko/intlayer_with_next-i18next.md +3 -3
- package/docs/ko/intlayer_with_nextjs_14.md +121 -45
- package/docs/ko/intlayer_with_nextjs_15.md +121 -46
- package/docs/ko/intlayer_with_nextjs_16.md +124 -46
- package/docs/ko/intlayer_with_nextjs_compiler.md +113 -4
- package/docs/ko/intlayer_with_nextjs_no_locale_path.md +120 -10
- package/docs/ko/intlayer_with_nextjs_page_router.md +113 -97
- package/docs/ko/intlayer_with_nuxt.md +107 -5
- package/docs/ko/intlayer_with_react_native+expo.md +106 -11
- package/docs/ko/intlayer_with_react_router_v7.md +119 -13
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +116 -14
- package/docs/ko/intlayer_with_solid_start.md +125 -10
- package/docs/ko/intlayer_with_storybook.md +0 -14
- package/docs/ko/intlayer_with_svelte_kit.md +102 -5
- package/docs/ko/intlayer_with_tanstack+solid.md +124 -20
- package/docs/ko/intlayer_with_tanstack.md +263 -194
- package/docs/ko/intlayer_with_vanilla.md +111 -2
- package/docs/ko/intlayer_with_vite+lit.md +117 -6
- package/docs/ko/intlayer_with_vite+preact.md +146 -37
- package/docs/ko/intlayer_with_vite+react.md +104 -8
- package/docs/ko/intlayer_with_vite+react_compiler.md +110 -13
- package/docs/ko/intlayer_with_vite+solid.md +118 -5
- package/docs/ko/intlayer_with_vite+svelte.md +118 -18
- package/docs/ko/intlayer_with_vite+vanilla.md +124 -14
- package/docs/ko/intlayer_with_vite+vue.md +102 -6
- package/docs/ko/introduction.md +105 -2
- package/docs/ko/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/ko/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/ko/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/ko/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/ko/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/ko/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/ko/packages/express-intlayer/t.md +9 -6
- package/docs/ko/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/nl/bundle_optimization.md +186 -186
- package/docs/nl/interest_of_intlayer.md +0 -1
- package/docs/nl/intlayer_with_angular_21.md +3 -3
- package/docs/nl/intlayer_with_fastify.md +4 -4
- package/docs/nl/intlayer_with_hono.md +3 -3
- package/docs/nl/intlayer_with_storybook.md +0 -12
- package/docs/nl/intlayer_with_vanilla.md +2 -1
- package/docs/nl/intlayer_with_vite+lit.md +3 -3
- package/docs/nl/intlayer_with_vite+vanilla.md +3 -3
- package/docs/nl/introduction.md +0 -1
- package/docs/pl/analytics.md +488 -21
- package/docs/pl/bundle_optimization.md +186 -186
- package/docs/pl/configuration.md +98 -0
- package/docs/pl/dictionary/content_file.md +4 -4
- package/docs/pl/dictionary/markdown.md +3 -0
- package/docs/pl/dictionary/plurial.md +5 -2
- package/docs/pl/how_works_intlayer.md +92 -0
- package/docs/pl/interest_of_intlayer.md +96 -1
- package/docs/pl/intlayer_CMS.md +92 -0
- package/docs/pl/intlayer_visual_editor.md +87 -1
- package/docs/pl/intlayer_with_adonisjs.md +123 -3
- package/docs/pl/intlayer_with_analog.md +119 -11
- package/docs/pl/intlayer_with_angular_19.md +118 -11
- package/docs/pl/intlayer_with_angular_21.md +112 -11
- package/docs/pl/intlayer_with_astro.md +120 -23
- package/docs/pl/intlayer_with_astro_lit.md +121 -13
- package/docs/pl/intlayer_with_astro_preact.md +121 -13
- package/docs/pl/intlayer_with_astro_react.md +121 -13
- package/docs/pl/intlayer_with_astro_solid.md +121 -13
- package/docs/pl/intlayer_with_astro_svelte.md +121 -13
- package/docs/pl/intlayer_with_astro_vanilla.md +115 -13
- package/docs/pl/intlayer_with_astro_vue.md +121 -13
- package/docs/pl/intlayer_with_create_react_app.md +109 -4
- package/docs/pl/intlayer_with_elysia.md +124 -4
- package/docs/pl/intlayer_with_express.md +117 -3
- package/docs/pl/intlayer_with_fastify.md +118 -4
- package/docs/pl/intlayer_with_hono.md +117 -3
- package/docs/pl/intlayer_with_htmx.md +767 -0
- package/docs/pl/intlayer_with_lynx+react.md +10 -17
- package/docs/pl/intlayer_with_nestjs.md +117 -3
- package/docs/pl/intlayer_with_next-i18next.md +3 -3
- package/docs/pl/intlayer_with_nextjs_14.md +130 -53
- package/docs/pl/intlayer_with_nextjs_15.md +144 -65
- package/docs/pl/intlayer_with_nextjs_16.md +131 -54
- package/docs/pl/intlayer_with_nextjs_compiler.md +125 -16
- package/docs/pl/intlayer_with_nextjs_no_locale_path.md +125 -13
- package/docs/pl/intlayer_with_nextjs_page_router.md +118 -100
- package/docs/pl/intlayer_with_nuxt.md +113 -11
- package/docs/pl/intlayer_with_react_native+expo.md +105 -10
- package/docs/pl/intlayer_with_react_router_v7.md +134 -25
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +121 -20
- package/docs/pl/intlayer_with_solid_start.md +118 -4
- package/docs/pl/intlayer_with_storybook.md +7 -20
- package/docs/pl/intlayer_with_svelte_kit.md +108 -11
- package/docs/pl/intlayer_with_tanstack+solid.md +127 -25
- package/docs/pl/intlayer_with_tanstack.md +241 -163
- package/docs/pl/intlayer_with_vanilla.md +117 -9
- package/docs/pl/intlayer_with_vite+lit.md +121 -11
- package/docs/pl/intlayer_with_vite+preact.md +151 -43
- package/docs/pl/intlayer_with_vite+react.md +111 -23
- package/docs/pl/intlayer_with_vite+react_compiler.md +111 -6
- package/docs/pl/intlayer_with_vite+solid.md +115 -8
- package/docs/pl/intlayer_with_vite+svelte.md +122 -20
- package/docs/pl/intlayer_with_vite+vanilla.md +128 -11
- package/docs/pl/intlayer_with_vite+vue.md +107 -11
- package/docs/pl/introduction.md +104 -1
- package/docs/pl/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/pl/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/pl/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/pl/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/pl/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/pl/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/pl/packages/next-intlayer/useIntlayer.md +3 -0
- package/docs/pl/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/pt/analytics.md +488 -21
- package/docs/pt/bundle_optimization.md +186 -186
- package/docs/pt/configuration.md +99 -1
- package/docs/pt/dictionary/content_file.md +4 -4
- package/docs/pt/dictionary/html.md +18 -1
- package/docs/pt/dictionary/markdown.md +3 -0
- package/docs/pt/dictionary/plurial.md +5 -2
- package/docs/pt/how_works_intlayer.md +93 -1
- package/docs/pt/interest_of_intlayer.md +98 -3
- package/docs/pt/intlayer_CMS.md +93 -1
- package/docs/pt/intlayer_visual_editor.md +88 -2
- package/docs/pt/intlayer_with_adonisjs.md +124 -4
- package/docs/pt/intlayer_with_analog.md +115 -6
- package/docs/pt/intlayer_with_angular_19.md +112 -5
- package/docs/pt/intlayer_with_angular_21.md +106 -5
- package/docs/pt/intlayer_with_astro.md +114 -17
- package/docs/pt/intlayer_with_astro_lit.md +115 -7
- package/docs/pt/intlayer_with_astro_preact.md +115 -7
- package/docs/pt/intlayer_with_astro_react.md +115 -7
- package/docs/pt/intlayer_with_astro_solid.md +115 -7
- package/docs/pt/intlayer_with_astro_svelte.md +115 -7
- package/docs/pt/intlayer_with_astro_vanilla.md +109 -7
- package/docs/pt/intlayer_with_astro_vue.md +114 -6
- package/docs/pt/intlayer_with_create_react_app.md +110 -5
- package/docs/pt/intlayer_with_elysia.md +125 -5
- package/docs/pt/intlayer_with_express.md +118 -4
- package/docs/pt/intlayer_with_fastify.md +119 -6
- package/docs/pt/intlayer_with_hono.md +118 -4
- package/docs/pt/intlayer_with_htmx.md +771 -0
- package/docs/pt/intlayer_with_lynx+react.md +3 -10
- package/docs/pt/intlayer_with_nestjs.md +118 -4
- package/docs/pt/intlayer_with_next-i18next.md +3 -3
- package/docs/pt/intlayer_with_nextjs_14.md +141 -120
- package/docs/pt/intlayer_with_nextjs_15.md +123 -48
- package/docs/pt/intlayer_with_nextjs_16.md +125 -48
- package/docs/pt/intlayer_with_nextjs_compiler.md +125 -15
- package/docs/pt/intlayer_with_nextjs_no_locale_path.md +118 -6
- package/docs/pt/intlayer_with_nextjs_page_router.md +124 -98
- package/docs/pt/intlayer_with_nuxt.md +107 -5
- package/docs/pt/intlayer_with_react_native+expo.md +106 -11
- package/docs/pt/intlayer_with_react_router_v7.md +143 -36
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +115 -8
- package/docs/pt/intlayer_with_solid_start.md +124 -9
- package/docs/pt/intlayer_with_storybook.md +0 -13
- package/docs/pt/intlayer_with_svelte_kit.md +102 -5
- package/docs/pt/intlayer_with_tanstack+solid.md +123 -19
- package/docs/pt/intlayer_with_tanstack.md +255 -147
- package/docs/pt/intlayer_with_vanilla.md +111 -3
- package/docs/pt/intlayer_with_vite+lit.md +116 -5
- package/docs/pt/intlayer_with_vite+preact.md +146 -37
- package/docs/pt/intlayer_with_vite+react.md +104 -7
- package/docs/pt/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/pt/intlayer_with_vite+solid.md +117 -5
- package/docs/pt/intlayer_with_vite+svelte.md +117 -14
- package/docs/pt/intlayer_with_vite+vanilla.md +122 -5
- package/docs/pt/intlayer_with_vite+vue.md +101 -5
- package/docs/pt/introduction.md +105 -2
- package/docs/pt/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/pt/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/pt/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/pt/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/pt/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/pt/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/pt/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ru/analytics.md +458 -12
- package/docs/ru/bundle_optimization.md +186 -186
- package/docs/ru/cli/doc-review.md +0 -2
- package/docs/ru/configuration.md +99 -1
- package/docs/ru/dictionary/content_file.md +4 -4
- package/docs/ru/dictionary/markdown.md +0 -2
- package/docs/ru/dictionary/plurial.md +6 -3
- package/docs/ru/dictionary/translation.md +1 -1
- package/docs/ru/how_works_intlayer.md +93 -1
- package/docs/ru/interest_of_intlayer.md +97 -2
- package/docs/ru/intlayer_CMS.md +93 -1
- package/docs/ru/intlayer_visual_editor.md +88 -2
- package/docs/ru/intlayer_with_adonisjs.md +124 -4
- package/docs/ru/intlayer_with_analog.md +114 -5
- package/docs/ru/intlayer_with_angular_19.md +112 -5
- package/docs/ru/intlayer_with_angular_21.md +106 -5
- package/docs/ru/intlayer_with_astro.md +114 -17
- package/docs/ru/intlayer_with_astro_lit.md +115 -7
- package/docs/ru/intlayer_with_astro_preact.md +115 -7
- package/docs/ru/intlayer_with_astro_react.md +115 -7
- package/docs/ru/intlayer_with_astro_solid.md +115 -7
- package/docs/ru/intlayer_with_astro_svelte.md +115 -7
- package/docs/ru/intlayer_with_astro_vanilla.md +109 -7
- package/docs/ru/intlayer_with_astro_vue.md +115 -7
- package/docs/ru/intlayer_with_create_react_app.md +110 -5
- package/docs/ru/intlayer_with_elysia.md +125 -5
- package/docs/ru/intlayer_with_express.md +118 -4
- package/docs/ru/intlayer_with_fastify.md +119 -5
- package/docs/ru/intlayer_with_hono.md +118 -4
- package/docs/ru/intlayer_with_htmx.md +767 -0
- package/docs/ru/intlayer_with_lynx+react.md +3 -10
- package/docs/ru/intlayer_with_nestjs.md +118 -4
- package/docs/ru/intlayer_with_next-i18next.md +3 -3
- package/docs/ru/intlayer_with_nextjs_14.md +141 -117
- package/docs/ru/intlayer_with_nextjs_15.md +126 -65
- package/docs/ru/intlayer_with_nextjs_16.md +125 -48
- package/docs/ru/intlayer_with_nextjs_compiler.md +126 -17
- package/docs/ru/intlayer_with_nextjs_no_locale_path.md +118 -6
- package/docs/ru/intlayer_with_nextjs_page_router.md +113 -98
- package/docs/ru/intlayer_with_nuxt.md +107 -5
- package/docs/ru/intlayer_with_react_native+expo.md +106 -11
- package/docs/ru/intlayer_with_react_router_v7.md +116 -7
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +111 -4
- package/docs/ru/intlayer_with_solid_start.md +120 -5
- package/docs/ru/intlayer_with_storybook.md +0 -13
- package/docs/ru/intlayer_with_svelte_kit.md +102 -5
- package/docs/ru/intlayer_with_tanstack+solid.md +122 -19
- package/docs/ru/intlayer_with_tanstack.md +233 -154
- package/docs/ru/intlayer_with_vanilla.md +111 -3
- package/docs/ru/intlayer_with_vite+lit.md +116 -5
- package/docs/ru/intlayer_with_vite+preact.md +146 -37
- package/docs/ru/intlayer_with_vite+react.md +105 -17
- package/docs/ru/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/ru/intlayer_with_vite+solid.md +117 -5
- package/docs/ru/intlayer_with_vite+svelte.md +119 -24
- package/docs/ru/intlayer_with_vite+vanilla.md +122 -5
- package/docs/ru/intlayer_with_vite+vue.md +102 -6
- package/docs/ru/introduction.md +105 -2
- package/docs/ru/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/ru/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/ru/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/ru/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/ru/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/ru/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/ru/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/tr/analytics.md +488 -21
- package/docs/tr/bundle_optimization.md +186 -186
- package/docs/tr/cli/doc-review.md +0 -2
- package/docs/tr/configuration.md +98 -0
- package/docs/tr/dictionary/content_file.md +4 -4
- package/docs/tr/dictionary/markdown.md +3 -0
- package/docs/tr/dictionary/plurial.md +6 -3
- package/docs/tr/how_works_intlayer.md +92 -0
- package/docs/tr/interest_of_intlayer.md +96 -1
- package/docs/tr/intlayer_CMS.md +92 -0
- package/docs/tr/intlayer_visual_editor.md +87 -1
- package/docs/tr/intlayer_with_adonisjs.md +124 -3
- package/docs/tr/intlayer_with_analog.md +112 -4
- package/docs/tr/intlayer_with_angular_19.md +111 -4
- package/docs/tr/intlayer_with_angular_21.md +105 -4
- package/docs/tr/intlayer_with_astro.md +120 -30
- package/docs/tr/intlayer_with_astro_lit.md +114 -6
- package/docs/tr/intlayer_with_astro_preact.md +114 -6
- package/docs/tr/intlayer_with_astro_react.md +114 -6
- package/docs/tr/intlayer_with_astro_solid.md +114 -6
- package/docs/tr/intlayer_with_astro_svelte.md +114 -6
- package/docs/tr/intlayer_with_astro_vanilla.md +108 -6
- package/docs/tr/intlayer_with_astro_vue.md +114 -6
- package/docs/tr/intlayer_with_create_react_app.md +109 -4
- package/docs/tr/intlayer_with_elysia.md +125 -4
- package/docs/tr/intlayer_with_express.md +117 -3
- package/docs/tr/intlayer_with_fastify.md +119 -4
- package/docs/tr/intlayer_with_hono.md +117 -3
- package/docs/tr/intlayer_with_htmx.md +761 -0
- package/docs/tr/intlayer_with_lynx+react.md +3 -10
- package/docs/tr/intlayer_with_nestjs.md +118 -3
- package/docs/tr/intlayer_with_next-i18next.md +3 -3
- package/docs/tr/intlayer_with_nextjs_14.md +128 -54
- package/docs/tr/intlayer_with_nextjs_15.md +122 -47
- package/docs/tr/intlayer_with_nextjs_16.md +123 -46
- package/docs/tr/intlayer_with_nextjs_compiler.md +124 -16
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +117 -5
- package/docs/tr/intlayer_with_nextjs_page_router.md +127 -123
- package/docs/tr/intlayer_with_nuxt.md +106 -4
- package/docs/tr/intlayer_with_react_native+expo.md +105 -10
- package/docs/tr/intlayer_with_react_router_v7.md +115 -6
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +110 -3
- package/docs/tr/intlayer_with_solid_start.md +118 -4
- package/docs/tr/intlayer_with_storybook.md +0 -13
- package/docs/tr/intlayer_with_svelte_kit.md +101 -4
- package/docs/tr/intlayer_with_tanstack+solid.md +120 -18
- package/docs/tr/intlayer_with_tanstack.md +262 -131
- package/docs/tr/intlayer_with_vanilla.md +110 -2
- package/docs/tr/intlayer_with_vite+lit.md +114 -4
- package/docs/tr/intlayer_with_vite+preact.md +144 -36
- package/docs/tr/intlayer_with_vite+react.md +103 -6
- package/docs/tr/intlayer_with_vite+react_compiler.md +109 -4
- package/docs/tr/intlayer_with_vite+solid.md +115 -4
- package/docs/tr/intlayer_with_vite+svelte.md +115 -13
- package/docs/tr/intlayer_with_vite+vanilla.md +121 -4
- package/docs/tr/intlayer_with_vite+vue.md +102 -7
- package/docs/tr/introduction.md +104 -1
- package/docs/tr/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/tr/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/tr/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/tr/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/tr/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/tr/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/tr/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/uk/analytics.md +488 -21
- package/docs/uk/bundle_optimization.md +186 -186
- package/docs/uk/configuration.md +98 -0
- package/docs/uk/dictionary/content_file.md +4 -4
- package/docs/uk/dictionary/markdown.md +3 -0
- package/docs/uk/dictionary/plurial.md +6 -3
- package/docs/uk/how_works_intlayer.md +92 -0
- package/docs/uk/interest_of_intlayer.md +96 -1
- package/docs/uk/intlayer_CMS.md +92 -0
- package/docs/uk/intlayer_visual_editor.md +87 -1
- package/docs/uk/intlayer_with_adonisjs.md +124 -3
- package/docs/uk/intlayer_with_analog.md +112 -4
- package/docs/uk/intlayer_with_angular_19.md +111 -4
- package/docs/uk/intlayer_with_angular_21.md +105 -4
- package/docs/uk/intlayer_with_astro.md +113 -16
- package/docs/uk/intlayer_with_astro_lit.md +114 -6
- package/docs/uk/intlayer_with_astro_preact.md +114 -6
- package/docs/uk/intlayer_with_astro_react.md +114 -6
- package/docs/uk/intlayer_with_astro_solid.md +114 -6
- package/docs/uk/intlayer_with_astro_svelte.md +114 -6
- package/docs/uk/intlayer_with_astro_vanilla.md +108 -6
- package/docs/uk/intlayer_with_astro_vue.md +114 -6
- package/docs/uk/intlayer_with_create_react_app.md +109 -4
- package/docs/uk/intlayer_with_elysia.md +125 -4
- package/docs/uk/intlayer_with_express.md +117 -3
- package/docs/uk/intlayer_with_fastify.md +119 -4
- package/docs/uk/intlayer_with_hono.md +117 -3
- package/docs/uk/intlayer_with_htmx.md +760 -0
- package/docs/uk/intlayer_with_lynx+react.md +3 -10
- package/docs/uk/intlayer_with_nestjs.md +118 -3
- package/docs/uk/intlayer_with_next-i18next.md +3 -3
- package/docs/uk/intlayer_with_nextjs_14.md +122 -47
- package/docs/uk/intlayer_with_nextjs_15.md +136 -59
- package/docs/uk/intlayer_with_nextjs_16.md +124 -47
- package/docs/uk/intlayer_with_nextjs_compiler.md +125 -17
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +117 -5
- package/docs/uk/intlayer_with_nextjs_page_router.md +114 -99
- package/docs/uk/intlayer_with_nuxt.md +106 -4
- package/docs/uk/intlayer_with_react_native+expo.md +105 -10
- package/docs/uk/intlayer_with_react_router_v7.md +115 -6
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +110 -3
- package/docs/uk/intlayer_with_solid_start.md +118 -4
- package/docs/uk/intlayer_with_storybook.md +0 -13
- package/docs/uk/intlayer_with_svelte_kit.md +101 -4
- package/docs/uk/intlayer_with_tanstack+solid.md +120 -18
- package/docs/uk/intlayer_with_tanstack.md +238 -135
- package/docs/uk/intlayer_with_vanilla.md +110 -2
- package/docs/uk/intlayer_with_vite+lit.md +114 -4
- package/docs/uk/intlayer_with_vite+preact.md +170 -34
- package/docs/uk/intlayer_with_vite+react.md +104 -16
- package/docs/uk/intlayer_with_vite+react_compiler.md +109 -4
- package/docs/uk/intlayer_with_vite+solid.md +115 -4
- package/docs/uk/intlayer_with_vite+svelte.md +115 -13
- package/docs/uk/intlayer_with_vite+vanilla.md +121 -4
- package/docs/uk/intlayer_with_vite+vue.md +100 -4
- package/docs/uk/introduction.md +104 -1
- package/docs/uk/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/uk/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/uk/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/uk/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/uk/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/uk/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/uk/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/ur/bundle_optimization.md +186 -186
- package/docs/ur/intlayer_with_angular_21.md +3 -3
- package/docs/ur/intlayer_with_fastify.md +4 -4
- package/docs/ur/intlayer_with_hono.md +3 -3
- package/docs/ur/intlayer_with_storybook.md +0 -12
- package/docs/ur/intlayer_with_vanilla.md +2 -1
- package/docs/ur/intlayer_with_vite+lit.md +3 -3
- package/docs/ur/intlayer_with_vite+vanilla.md +3 -3
- package/docs/ur/introduction.md +0 -1
- package/docs/vi/analytics.md +488 -21
- package/docs/vi/bundle_optimization.md +186 -186
- package/docs/vi/configuration.md +98 -0
- package/docs/vi/dictionary/content_file.md +4 -4
- package/docs/vi/dictionary/markdown.md +3 -0
- package/docs/vi/dictionary/plurial.md +5 -2
- package/docs/vi/how_works_intlayer.md +92 -0
- package/docs/vi/interest_of_intlayer.md +96 -1
- package/docs/vi/intlayer_CMS.md +92 -0
- package/docs/vi/intlayer_visual_editor.md +87 -1
- package/docs/vi/intlayer_with_adonisjs.md +124 -3
- package/docs/vi/intlayer_with_analog.md +112 -4
- package/docs/vi/intlayer_with_angular_19.md +111 -4
- package/docs/vi/intlayer_with_angular_21.md +105 -4
- package/docs/vi/intlayer_with_astro.md +113 -16
- package/docs/vi/intlayer_with_astro_lit.md +114 -6
- package/docs/vi/intlayer_with_astro_preact.md +114 -6
- package/docs/vi/intlayer_with_astro_react.md +114 -6
- package/docs/vi/intlayer_with_astro_solid.md +114 -6
- package/docs/vi/intlayer_with_astro_svelte.md +114 -6
- package/docs/vi/intlayer_with_astro_vanilla.md +108 -6
- package/docs/vi/intlayer_with_astro_vue.md +114 -6
- package/docs/vi/intlayer_with_create_react_app.md +109 -4
- package/docs/vi/intlayer_with_elysia.md +125 -4
- package/docs/vi/intlayer_with_express.md +117 -3
- package/docs/vi/intlayer_with_fastify.md +119 -4
- package/docs/vi/intlayer_with_hono.md +117 -3
- package/docs/vi/intlayer_with_htmx.md +760 -0
- package/docs/vi/intlayer_with_lynx+react.md +3 -10
- package/docs/vi/intlayer_with_nestjs.md +118 -3
- package/docs/vi/intlayer_with_next-i18next.md +3 -3
- package/docs/vi/intlayer_with_nextjs_14.md +136 -56
- package/docs/vi/intlayer_with_nextjs_15.md +136 -59
- package/docs/vi/intlayer_with_nextjs_16.md +124 -47
- package/docs/vi/intlayer_with_nextjs_compiler.md +125 -17
- package/docs/vi/intlayer_with_nextjs_no_locale_path.md +117 -5
- package/docs/vi/intlayer_with_nextjs_page_router.md +114 -95
- package/docs/vi/intlayer_with_nuxt.md +106 -4
- package/docs/vi/intlayer_with_react_native+expo.md +105 -10
- package/docs/vi/intlayer_with_react_router_v7.md +115 -6
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +116 -16
- package/docs/vi/intlayer_with_solid_start.md +118 -4
- package/docs/vi/intlayer_with_storybook.md +0 -13
- package/docs/vi/intlayer_with_svelte_kit.md +101 -4
- package/docs/vi/intlayer_with_tanstack+solid.md +120 -18
- package/docs/vi/intlayer_with_tanstack.md +252 -172
- package/docs/vi/intlayer_with_vanilla.md +110 -2
- package/docs/vi/intlayer_with_vite+lit.md +114 -4
- package/docs/vi/intlayer_with_vite+preact.md +150 -17
- package/docs/vi/intlayer_with_vite+react.md +104 -16
- package/docs/vi/intlayer_with_vite+react_compiler.md +109 -4
- package/docs/vi/intlayer_with_vite+solid.md +115 -4
- package/docs/vi/intlayer_with_vite+svelte.md +115 -13
- package/docs/vi/intlayer_with_vite+vanilla.md +121 -4
- package/docs/vi/intlayer_with_vite+vue.md +100 -4
- package/docs/vi/introduction.md +104 -1
- package/docs/vi/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/vi/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/vi/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/vi/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/vi/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/vi/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/vi/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/zh/analytics.md +458 -12
- package/docs/zh/bundle_optimization.md +186 -186
- package/docs/zh/configuration.md +99 -1
- package/docs/zh/dictionary/content_file.md +4 -4
- package/docs/zh/dictionary/markdown.md +18 -1
- package/docs/zh/dictionary/plurial.md +6 -3
- package/docs/zh/how_works_intlayer.md +93 -1
- package/docs/zh/interest_of_intlayer.md +108 -13
- package/docs/zh/intlayer_CMS.md +93 -1
- package/docs/zh/intlayer_visual_editor.md +88 -2
- package/docs/zh/intlayer_with_adonisjs.md +124 -4
- package/docs/zh/intlayer_with_analog.md +121 -12
- package/docs/zh/intlayer_with_angular_19.md +120 -13
- package/docs/zh/intlayer_with_angular_21.md +113 -12
- package/docs/zh/intlayer_with_astro.md +111 -7
- package/docs/zh/intlayer_with_astro_lit.md +117 -10
- package/docs/zh/intlayer_with_astro_preact.md +117 -10
- package/docs/zh/intlayer_with_astro_react.md +117 -10
- package/docs/zh/intlayer_with_astro_solid.md +117 -10
- package/docs/zh/intlayer_with_astro_svelte.md +117 -10
- package/docs/zh/intlayer_with_astro_vanilla.md +111 -10
- package/docs/zh/intlayer_with_astro_vue.md +117 -10
- package/docs/zh/intlayer_with_create_react_app.md +113 -9
- package/docs/zh/intlayer_with_elysia.md +125 -5
- package/docs/zh/intlayer_with_express.md +118 -4
- package/docs/zh/intlayer_with_fastify.md +119 -5
- package/docs/zh/intlayer_with_hono.md +118 -4
- package/docs/zh/intlayer_with_htmx.md +769 -0
- package/docs/zh/intlayer_with_lynx+react.md +11 -16
- package/docs/zh/intlayer_with_nestjs.md +118 -4
- package/docs/zh/intlayer_with_next-i18next.md +3 -3
- package/docs/zh/intlayer_with_nextjs_14.md +123 -48
- package/docs/zh/intlayer_with_nextjs_15.md +124 -47
- package/docs/zh/intlayer_with_nextjs_16.md +124 -45
- package/docs/zh/intlayer_with_nextjs_compiler.md +124 -17
- package/docs/zh/intlayer_with_nextjs_no_locale_path.md +125 -13
- package/docs/zh/intlayer_with_nextjs_page_router.md +113 -97
- package/docs/zh/intlayer_with_nuxt.md +114 -12
- package/docs/zh/intlayer_with_react_native+expo.md +106 -11
- package/docs/zh/intlayer_with_react_router_v7.md +134 -31
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +134 -30
- package/docs/zh/intlayer_with_solid_start.md +125 -10
- package/docs/zh/intlayer_with_storybook.md +7 -20
- package/docs/zh/intlayer_with_svelte_kit.md +109 -12
- package/docs/zh/intlayer_with_tanstack+solid.md +132 -32
- package/docs/zh/intlayer_with_tanstack.md +254 -194
- package/docs/zh/intlayer_with_vanilla.md +118 -10
- package/docs/zh/intlayer_with_vite+lit.md +124 -11
- package/docs/zh/intlayer_with_vite+preact.md +153 -44
- package/docs/zh/intlayer_with_vite+react.md +107 -15
- package/docs/zh/intlayer_with_vite+react_compiler.md +110 -5
- package/docs/zh/intlayer_with_vite+solid.md +116 -5
- package/docs/zh/intlayer_with_vite+svelte.md +131 -26
- package/docs/zh/intlayer_with_vite+vanilla.md +129 -12
- package/docs/zh/intlayer_with_vite+vue.md +102 -6
- package/docs/zh/introduction.md +105 -2
- package/docs/zh/migration_from_i18next_to_intlayer.md +3 -5
- package/docs/zh/migration_from_next-i18next_to_intlayer.md +3 -5
- package/docs/zh/migration_from_next-intl_to_intlayer.md +3 -5
- package/docs/zh/migration_from_nuxtjs_i18n_to_intlayer.md +3 -5
- package/docs/zh/migration_from_react-i18next_to_intlayer.md +3 -5
- package/docs/zh/migration_from_vue-i18n_to_intlayer.md +3 -5
- package/docs/zh/packages/vite-intlayer/intlayerMinify.md +1 -1
- package/docs/zh/releases/v6.md +1 -1
- package/docs/zh-TW/bundle_optimization.md +186 -186
- package/docs/zh-TW/intlayer_with_angular_21.md +3 -3
- package/docs/zh-TW/introduction.md +0 -1
- package/package.json +7 -7
- package/src/common.ts +45 -18
- package/src/generated/blog.entry.ts +349 -0
- package/src/generated/docs.entry.ts +20 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-08-29
|
|
3
|
+
updatedAt: 2026-08-29
|
|
4
|
+
title: "Hreflang, बहुभाषी SEO के लिए गाइड"
|
|
5
|
+
description: "Hreflang क्या है, search engines द्वारा लागू किए जाने वाले नियम, x-default लगभग हमेशा गलत क्यों है, और Next.js और TanStack Start में सही tags कैसे generate करें।"
|
|
6
|
+
keywords:
|
|
7
|
+
- hreflang
|
|
8
|
+
- SEO
|
|
9
|
+
- Internationalization
|
|
10
|
+
- Intlayer
|
|
11
|
+
- i18n
|
|
12
|
+
- Sitemap
|
|
13
|
+
- Canonical
|
|
14
|
+
- Next.js
|
|
15
|
+
- TanStack Start
|
|
16
|
+
slugs:
|
|
17
|
+
- blog
|
|
18
|
+
- hreflang-guide-multilingual-seo
|
|
19
|
+
author: aymericzip
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# Hreflang: बहुभाषी SEO के लिए गाइड
|
|
23
|
+
|
|
24
|
+
आपने अपने ऐप को translate किया। आपने `/en`, `/fr`, `/es` ship किए। और फ्रांसीसी users अभी भी English पेज पर लैंड कर रहे हैं।
|
|
25
|
+
|
|
26
|
+
अनुवाद करना आसान आधा है। कठिन आधा यह है कि सर्च इंजन को बताया जाए कि ये पेज **दूसरी भाषा में एक ही पेज हैं**, तीन दस्तावेज़ जो एक-दूसरे के साथ प्रतिस्पर्धा कर रहे हैं। यह वही है जो `hreflang` करता है, और यह वह जगह है जहां ज्यादातर बहुभाषी साइटें चुप-चाप अपनी ट्रैफिक खो देती हैं।
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Hreflang वास्तव में क्या है
|
|
31
|
+
|
|
32
|
+
एक पेज पर एक एनोटेशन जो कहता है: _इस URL के उन भाषाओं के लिए समान संस्करण हैं।_
|
|
33
|
+
|
|
34
|
+
```html
|
|
35
|
+
<link rel="alternate" hreflang="en" href="https://example.com/about" />
|
|
36
|
+
<link rel="alternate" hreflang="fr" href="https://example.com/fr/about" />
|
|
37
|
+
<link rel="alternate" hreflang="es" href="https://example.com/es/about" />
|
|
38
|
+
<link rel="alternate" hreflang="x-default" href="https://example.com/about" />
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
यह आपको दो चीजें देता है: सही उपयोगकर्ता को सही संस्करण दिखाया जाना, और आपके locales को एक cluster में consolidated करना बजाय duplicates के रूप में एक-दूसरे को cannibalize करने के।
|
|
42
|
+
|
|
43
|
+
यह स्पष्ट होना महत्वपूर्ण है कि यह क्या नहीं है। यह **redirect नहीं है** — यह एक hint है, और Google इसे override कर सकता है। यह **ranking boost नहीं है** — यह बदलता है _कौन सा_ version ranks करता है, न कि _क्या_ आप rank करते हैं। और Bing इसे पूरी तरह ignore करता है, इसके बजाय `content-language` और geo-targeting पर भरोसा करता है।
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## इसे कहाँ declare करें
|
|
48
|
+
|
|
49
|
+
तीन placements, सभी valid हैं। एक चुनें और वहीं रहें — एक ही cluster को दो जगहों पर declare करना यह है कि sets कैसे अलग हो जाते हैं।
|
|
50
|
+
|
|
51
|
+
**HTML `<head>`** सामान्य विकल्प है। एक caveat: hydration के बाद inject किए गए tags unreliable हैं। यदि आपका framework केवल client-side पर उन्हें add करता है, तो crawler उन्हें कभी नहीं देख सकता है।
|
|
52
|
+
|
|
53
|
+
**XML sitemap** बड़े पैमाने पर बेहतर है। दस locales को 5,000 pages में फैलाने का मतलब है 50,000 `<link>` elements को browsers में बेकार भेजना; एक sitemap में इसकी कीमत आपकी pages से शून्य bytes है।
|
|
54
|
+
|
|
55
|
+
**HTTP `Link` header** PDFs जैसी गैर-HTML files के लिए एकमात्र विकल्प है।
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## नियम
|
|
60
|
+
|
|
61
|
+
### Self-reference और reciprocity
|
|
62
|
+
|
|
63
|
+
`/fr/about` पर सेट में `hreflang="fr"` होना चाहिए जो `/fr/about` की ओर इशारा करे। और अगर `/about` `/fr/about` की ओर इशारा करता है, तो `/fr/about` को वापस इशारा करना चाहिए। Google एकतरफा reference को "no return tag" कहता है और इसे drop कर देता है।
|
|
64
|
+
|
|
65
|
+
व्यावहारिक रूप से इसका मतलब है कि **एक cluster में प्रत्येक page identical links का सेट भेजता है**। उन्हें एक shared locale list से generate करना सुविधा नहीं है, यह सही रहने का एकमात्र तरीका है एक बार जब आपके पास दो से अधिक locales हों।
|
|
66
|
+
|
|
67
|
+
### Absolute URLs, हमेशा
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<!-- मूक रूप से अनदेखा किया गया -->
|
|
71
|
+
<link rel="alternate" hreflang="fr" href="/fr/about" />
|
|
72
|
+
|
|
73
|
+
<!-- सही -->
|
|
74
|
+
<link rel="alternate" hreflang="fr" href="https://example.com/fr/about" />
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
इसका कारण समझना महत्वपूर्ण है बजाय इसे याद रखने के। `hreflang` एक cross-document reference है: search engines एक cluster बनाते हैं जो URL से keyed होता है, इसमें शामिल हर page में साझा किया जाता है। एक relative path का केवल उस document के सापेक्ष अर्थ है जिसमें यह बैठा है, इसलिए यह इसे express नहीं कर सकता। यह एक host को भी cross नहीं कर सकता — और एक alternate अक्सर ऐसा करता है, जब एक locale `example.fr` या `fr.example.com` पर रहता है। एक sitemap या एक HTTP header में resolve करने के लिए कोई base document नहीं है।
|
|
78
|
+
|
|
79
|
+
इसका कोड में सीधा प्रभाव पड़ता है। `getLocalizedUrl("/about", "fr")` `/fr/about` देता है — relative in, relative out। `hreflang` के लिए आपको इसे एक absolute URL देना चाहिए:
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
getLocalizedUrl("/about", "fr"); // → "/fr/about" ❌ dropped
|
|
83
|
+
getLocalizedUrl("https://example.com/about", "fr"); // → "https://example.com/fr/about" ✅
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
एक अपवाद है एक framework जो rendering से पहले relative values को आपके लिए resolve करता है: Next.js relative `alternates` को `metadataBase` के विरुद्ध expand करता है। ठीक है — लेकिन नियम **emitted HTML** पर लागू होता है, इसलिए `curl` के साथ जांच करें, DevTools inspector नहीं।
|
|
87
|
+
|
|
88
|
+
### भाषा कोड
|
|
89
|
+
|
|
90
|
+
ISO 639-1 भाषा के लिए, ISO 3166-1 Alpha 2 optional region के लिए: `fr`, `fr-CA`, `pt-BR`।
|
|
91
|
+
|
|
92
|
+
दो समस्याएं लगभग सभी को पकड़ती हैं। केवल एक region अमान्य है — `hreflang="ca"` कातालान है, कनाडा नहीं; आपको `en-CA` या `fr-CA` की आवश्यकता है। और `en-UK` मौजूद नहीं है: यूनाइटेड किंगडम के लिए country code `GB` है, इसलिए यह `en-GB` है।
|
|
93
|
+
|
|
94
|
+
केवल तभी एक region जोड़ें जब आप वास्तव में उस region को अलग content provide करते हों — अलग कीमतें, अलग कानूनी नोटिस। `fr` और `fr-FR` समान content पर शोर है।
|
|
95
|
+
|
|
96
|
+
### x-default
|
|
97
|
+
|
|
98
|
+
```html
|
|
99
|
+
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
एक अवधारणा जो सबसे अधिक भूली हुई है, और गलत तरीके से समझी जाती है, वह है `x-default` — 30% से भी कम apps इसे सही तरीके से लागू करते हैं।
|
|
103
|
+
|
|
104
|
+
यह उन उपयोगकर्ताओं के लिए fallback है जिनकी भाषा आपके सेट में किसी भी चीज़ से मेल नहीं खाती। एक डच भाषी व्यक्ति एक ऐसी साइट पर जो अंग्रेजी, फ्रेंच और स्पेनिश प्रदान करती है, किसी भी प्रविष्टि से मेल नहीं खाता; बिना `x-default` के, Google आपके लिए चुनता है।
|
|
105
|
+
|
|
106
|
+
लोग इसका मतलब गलत समझते हैं। `x-default` **"अंग्रेजी संस्करण" नहीं है** और **"डिफॉल्ट locale" नहीं है**, भले ही यह आमतौर पर वहां इशारा करता है। इसका मतलब है _उन उपयोगकर्ताओं के लिए पृष्ठ जिन्हें यह सेट cover नहीं करता_। यही कारण है कि यह legitimate है — और अक्सर बेहतर है — इसे `/en` के बजाय एक language-selector या geo-redirecting landing page पर इशारा करना। यदि आपके पास ऐसा कोई पृष्ठ नहीं है, तो आपकी primary language एक sensible उत्तर है।
|
|
107
|
+
|
|
108
|
+
दो चीजें स्पष्ट रखने के लिए: `x-default` सेट में एक अतिरिक्त entry है, self-referencing वाले की जगह नहीं, और हर दूसरी entry की तरह इसे cluster के हर पेज पर identically दिखना चाहिए।
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## कैनोनिकल ट्रैप
|
|
113
|
+
|
|
114
|
+
प्रत्येक localized पेज **अपना खुद का canonical** होना चाहिए:
|
|
115
|
+
|
|
116
|
+
```html
|
|
117
|
+
<!-- https://example.com/fr/about पर -->
|
|
118
|
+
<link rel="canonical" href="https://example.com/fr/about" />
|
|
119
|
+
<link rel="alternate" hreflang="fr" href="https://example.com/fr/about" />
|
|
120
|
+
<link rel="alternate" hreflang="en" href="https://example.com/about" />
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
हर locale के canonical को English version की ओर इंगित करना इसके बजाय:
|
|
124
|
+
|
|
125
|
+
```html
|
|
126
|
+
<!-- https://example.com/fr/about पर — पेज को हटा देता है -->
|
|
127
|
+
<link rel="canonical" href="https://example.com/about" />
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
कहता है कि फ्रेंच पेज एक डुप्लिकेट है जिसे इंडेक्स नहीं किया जाना चाहिए, जबकि `hreflang` कहता है कि यह फ्रेंच उपयोगकर्ताओं को परोसने के लिए पेज है। सिग्नल विरोधाभासी हैं, canonical जीतता है, और आपके फ्रेंच पेज इंडेक्स से बाहर निकल जाते हैं।
|
|
131
|
+
|
|
132
|
+
**Canonical स्व-संदर्भी है प्रति लोकेल। `hreflang` क्लस्टर का वर्णन करता है।**
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## URL संरचना चुनना
|
|
137
|
+
|
|
138
|
+
`hreflang` URLs को एनोटेट करता है, इसलिए संरचना पहले आती है।
|
|
139
|
+
|
|
140
|
+
| संरचना | उदाहरण | Trade-off |
|
|
141
|
+
| ------------------ | ----------------- | ---------------------------------------------------------------- |
|
|
142
|
+
| **Subdirectories** | `example.com/fr/` | एक डोमेन, साझा authority — कमजोर geo-signal |
|
|
143
|
+
| **Subdomains** | `fr.example.com` | लोकेल जोड़ना या हटाना आसान — अलग साइट के रूप में पढ़ा जा सकता है |
|
|
144
|
+
| **ccTLDs** | `example.fr` | सबसे मजबूत देश संकेत — प्रत्येक domain के लिए authority बनाई गई |
|
|
145
|
+
|
|
146
|
+
Subdirectories अधिकांश projects के लिए सही default हैं। ccTLDs तक केवल तब पहुंचें जब आप वाकई अलग-अलग देशों के businesses के रूप में काम कर रहे हों।
|
|
147
|
+
|
|
148
|
+
एक structure जिससे बचना है: **same URL** पर विभिन्न languages को `Accept-Language` या IP के आधार पर serve करना। Crawlers एक version देखते हैं और एक version को index करते हैं; बाकी सब अदृश्य है।
|
|
149
|
+
|
|
150
|
+
> Intlayer तीनों को `routing.mode` और `routing.domains` के माध्यम से cover करता है। [custom domains](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/custom_domains.md) और [configuration reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/configuration.md) देखें।
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Implementation
|
|
155
|
+
|
|
156
|
+
इन टैग्स को हाथ से लिखना दूसरे locale के साथ संपर्क में नहीं टिकता। इसके बजाय उन्हें अपनी locale सूची से प्राप्त करें।
|
|
157
|
+
|
|
158
|
+
<Steps>
|
|
159
|
+
|
|
160
|
+
<Step number={1} title="हर पेज पर cluster emit करें">
|
|
161
|
+
|
|
162
|
+
हर जगह एक ही सेट, हर locale के लिए canonical, absolute URLs, `x-default` शामिल।
|
|
163
|
+
|
|
164
|
+
<Tabs>
|
|
165
|
+
|
|
166
|
+
<Tab label="Next.js" value="nextjs">
|
|
167
|
+
|
|
168
|
+
Metadata API `alternates.languages` को expose करता है, और `getMultilingualUrls` आपकी configured locales से पूरा record बनाता है:
|
|
169
|
+
|
|
170
|
+
```tsx fileName="src/app/[locale]/about/page.tsx"
|
|
171
|
+
import { getMultilingualUrls } from "intlayer";
|
|
172
|
+
import type { Metadata } from "next";
|
|
173
|
+
import type { LocalPromiseParams } from "next-intlayer";
|
|
174
|
+
|
|
175
|
+
const SITE_URL = "https://example.com";
|
|
176
|
+
|
|
177
|
+
export const generateMetadata = async ({
|
|
178
|
+
params,
|
|
179
|
+
}: LocalPromiseParams): Promise<Metadata> => {
|
|
180
|
+
const { locale } = await params;
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* getMultilingualUrls(`${SITE_URL}/about`) returns:
|
|
184
|
+
* {
|
|
185
|
+
* en: 'https://example.com/about',
|
|
186
|
+
* fr: 'https://example.com/fr/about',
|
|
187
|
+
* es: 'https://example.com/es/about',
|
|
188
|
+
* }
|
|
189
|
+
*/
|
|
190
|
+
// getMultilingualUrls(`${SITE_URL}/about`) यह रिटर्न करता है:
|
|
191
|
+
// {
|
|
192
|
+
// en: 'https://example.com/about',
|
|
193
|
+
// fr: 'https://example.com/fr/about',
|
|
194
|
+
// es: 'https://example.com/es/about',
|
|
195
|
+
// }
|
|
196
|
+
const multilingualUrls = getMultilingualUrls(`${SITE_URL}/about`);
|
|
197
|
+
|
|
198
|
+
return {
|
|
199
|
+
alternates: {
|
|
200
|
+
canonical: multilingualUrls[locale as keyof typeof multilingualUrls],
|
|
201
|
+
languages: { ...multilingualUrls, "x-default": `${SITE_URL}/about` },
|
|
202
|
+
},
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
पूरा सेटअप: [Next.js 16 i18n guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_with_nextjs_16.md).
|
|
208
|
+
|
|
209
|
+
</Tab>
|
|
210
|
+
|
|
211
|
+
<Tab label="TanStack Start" value="tanstack">
|
|
212
|
+
|
|
213
|
+
route का `head` फ़ंक्शन links को बनाता है। `localeMap` आपके कॉन्फ़िगर किए गए locales को iterate करता है, इसलिए config में एक locale जोड़ने से यह सभी जगह एक साथ जुड़ जाता है:
|
|
214
|
+
|
|
215
|
+
```tsx fileName="src/routes/{-$locale}/about.tsx"
|
|
216
|
+
import { createFileRoute } from "@tanstack/react-router";
|
|
217
|
+
import { defaultLocale, getLocalizedUrl, localeMap } from "intlayer";
|
|
218
|
+
|
|
219
|
+
const SITE_URL = "https://example.com";
|
|
220
|
+
|
|
221
|
+
export const Route = createFileRoute("/{-$locale}/about")({
|
|
222
|
+
head: ({ params }) => {
|
|
223
|
+
const { locale = defaultLocale } = params;
|
|
224
|
+
// URL को define करें
|
|
225
|
+
const url = `${SITE_URL}/about`;
|
|
226
|
+
|
|
227
|
+
return {
|
|
228
|
+
links: [
|
|
229
|
+
// canonical link को set करें
|
|
230
|
+
{ rel: "canonical", href: getLocalizedUrl(url, locale) },
|
|
231
|
+
|
|
232
|
+
// सभी configured locales के लिए alternate links generate करें
|
|
233
|
+
...localeMap(({ locale: mapLocale }) => ({
|
|
234
|
+
rel: "alternate",
|
|
235
|
+
hrefLang: mapLocale,
|
|
236
|
+
href: getLocalizedUrl(url, mapLocale),
|
|
237
|
+
})),
|
|
238
|
+
|
|
239
|
+
{
|
|
240
|
+
rel: "alternate",
|
|
241
|
+
hrefLang: "x-default",
|
|
242
|
+
href: getLocalizedUrl(url, defaultLocale),
|
|
243
|
+
},
|
|
244
|
+
],
|
|
245
|
+
};
|
|
246
|
+
},
|
|
247
|
+
});
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
`head` सर्वर पर चलता है, इसलिए टैग प्रारंभिक HTML में आते हैं। पूर्ण सेटअप: [TanStack Start i18n guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_with_tanstack.md)।
|
|
251
|
+
|
|
252
|
+
</Tab>
|
|
253
|
+
|
|
254
|
+
</Tabs>
|
|
255
|
+
|
|
256
|
+
</Step>
|
|
257
|
+
|
|
258
|
+
<Step number={2} title="या इसे सभी को sitemap में स्थानांतरित करें">
|
|
259
|
+
|
|
260
|
+
बड़े पैमाने पर, annotations को अपने pages से पूरी तरह बाहर रखें। `generateSitemap` प्रत्येक entry के लिए `xhtml:link` alternates emit करता है, अपने config से locales और routing mode को पढ़ता है:
|
|
261
|
+
|
|
262
|
+
```ts fileName="src/routes/sitemap[.]xml.ts"
|
|
263
|
+
import { generateSitemap } from "intlayer";
|
|
264
|
+
|
|
265
|
+
const sitemap = generateSitemap(
|
|
266
|
+
[
|
|
267
|
+
{ path: "/", changefreq: "daily", priority: 1.0 },
|
|
268
|
+
{ path: "/about", changefreq: "monthly", priority: 0.8 },
|
|
269
|
+
],
|
|
270
|
+
{ siteUrl: "https://example.com" }
|
|
271
|
+
);
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
दो विकल्प जानने लायक हैं:
|
|
275
|
+
|
|
276
|
+
- `xhtmlLinks` (डिफ़ॉल्ट `true`) — alternates केवल वहीं emit किए जाते हैं जहां locale URLs वास्तव में भिन्न होते हैं। `no-prefix` मोड में हर locale एक ही URL साझा करता है, इसलिए वे तब तक छोड़ दिए जाते हैं जब तक `routing.domains` locales को उनके अपने hostnames नहीं देता।
|
|
277
|
+
- `entryPerLocale` (default `false`) — डिफ़ॉल्ट रूप से एक `<url>` entry सभी alternates को ले जाता है। दोनों forms वैध हैं, लेकिन केवल एक URL जो `<loc>` के रूप में listed है वह Search Console में _submitted_ के रूप में गिना जाता है; alternate-only locales discoverable रहते हैं लेकिन किसी भी sitemap को attributed नहीं होते। इसे चालू करने से हर localized URL को अपना entry मिलता है जिसमें पूरा alternate set दोहराया जाता है। यह entries को locale count से गुणा करता है, इसलिए 50,000 URL / 50 MB limit को देखें और इससे आगे sitemap index में विभाजित करें।
|
|
278
|
+
|
|
279
|
+
</Step>
|
|
280
|
+
|
|
281
|
+
<Step number={3} title="Verify करें कि crawler क्या प्राप्त करता है">
|
|
282
|
+
|
|
283
|
+
`hreflang` silently fail होता है, इसलिए इसे assume करने की बजाय check करें।
|
|
284
|
+
|
|
285
|
+
स्रोत को पढ़ें, इंस्पेक्टर को नहीं — `curl https://example.com/fr/about | grep hreflang` दिखाता है कि एक crawler को क्या मिलता है; DevTools JavaScript चलने के बाद DOM दिखाता है। फिर प्रत्येक alternate को follow करें और पुष्टि करें कि यह समान set के साथ वापस इंगित करता है, और कि उनमें से कोई भी redirect नहीं करता है। Search Console की International Targeting report पूरी साइट में बाकी को पकड़ता है।
|
|
286
|
+
|
|
287
|
+
एक multilingual-specific crawl के लिए, [Intlayer SEO Scanner](https://intlayer.org/i18n-seo-scanner) आपके localized pages में missing tags, broken alternates, और canonical conflicts की जांच करता है।
|
|
288
|
+
|
|
289
|
+
</Step>
|
|
290
|
+
|
|
291
|
+
</Steps>
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Checklist
|
|
296
|
+
|
|
297
|
+
- [ ] प्रत्येक locale के पास एक distinct, crawlable URL है
|
|
298
|
+
- [ ] हर page self-references करता है, और हर reference reciprocal है
|
|
299
|
+
- [ ] समान set cluster में हर page पर ship होता है
|
|
300
|
+
- [ ] सभी `href` values emitted HTML में absolute हैं
|
|
301
|
+
- [ ] Codes ISO 639-1 + ISO 3166-1 Alpha 2 हैं (`en-GB`, `en-UK` नहीं)
|
|
302
|
+
- [ ] `x-default` present है, और यह दर्शाता है कि unmatched users को कहाँ जाना चाहिए
|
|
303
|
+
- [ ] Canonical प्रत्येक locale के लिए self-referential है
|
|
304
|
+
- [ ] Tags server-rendered हैं, hydration के बाद inject नहीं किए गए
|
|
305
|
+
- [ ] बिल्कुल एक जगह declared हैं
|
|
306
|
+
- [ ] कोई alternate redirects नहीं
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## निष्कर्ष
|
|
311
|
+
|
|
312
|
+
`hreflang` सरल और unforgiving है। एक missing return tag, एक relative URL, एक cross-locale canonical, और cluster को बिना किसी error के discard कर दिया जाता है। ये सभी tags को manually लिखने से आते हैं।
|
|
313
|
+
|
|
314
|
+
एक एकल locale list से set प्राप्त करें, इसे server-side पर render करें, canonical को self-referential रखें, और `x-default` को वह विचार दें जिसके लायक है। ऐसा एक बार करें और correctness कुछ ऐसी चीज़ बन जाएगी जिसे आप maintain नहीं करते हैं।
|
|
315
|
+
|
|
316
|
+
### आगे बढ़ना
|
|
317
|
+
|
|
318
|
+
- [SEO और Internationalization](https://github.com/aymericzip/intlayer/blob/main/docs/blog/hi/internationalization_and_SEO.md) — व्यापक multilingual SEO चित्र
|
|
319
|
+
- [SEO और i18n in Next.js](https://github.com/aymericzip/intlayer/blob/main/docs/blog/hi/nextjs-multilingual-seo-comparison.md) — `next-intl` vs `next-i18next` vs Intlayer
|
|
320
|
+
- [Next.js 16 i18n guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_with_nextjs_16.md)
|
|
321
|
+
- [TanStack Start i18n guide](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_with_tanstack.md)
|
|
322
|
+
- [Custom domains per locale](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/custom_domains.md)
|
|
323
|
+
- [Configuration reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/configuration.md)
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-02
|
|
3
|
+
updatedAt: 2026-09-02
|
|
4
|
+
title: "खराब कॉपी भेजे बिना CI/CD में अनुवादों को स्वचालित करना"
|
|
5
|
+
description: i18n को स्वचालित करने के तीन स्थान, pre-push, pull request और runtime। कवरेज पर बिल्ड को कैसे रोकें, सुरक्षित रूप से ऑटो-फिल कैसे करें, और हमेशा के लिए कमिट करने वाले CI लूप से कैसे बचें।
|
|
6
|
+
keywords:
|
|
7
|
+
- अनुवाद स्वचालित करें ci
|
|
8
|
+
- i18n ci cd
|
|
9
|
+
- github actions अनुवाद
|
|
10
|
+
- husky pre-push
|
|
11
|
+
- निरंतर स्थानीयकरण
|
|
12
|
+
- अनुवाद पाइपलाइन
|
|
13
|
+
slugs:
|
|
14
|
+
- blog
|
|
15
|
+
- i18n-in-ci-cd-pipelines
|
|
16
|
+
author: aymericzip
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# खराब कॉपी भेजे बिना CI/CD में अनुवादों को स्वचालित करना
|
|
20
|
+
|
|
21
|
+
मैन्युअल अनुवाद रिलीज़ की तेज़ गति के सामने टिक नहीं पाता। कोई शुक्रवार को एक स्ट्रिंग जोड़ता है, निर्यात अगले स्प्रिंट में होता है, और तब तक तीन और भाषाएँ पीछे छूट जाती हैं। इसे स्वचालित करना सीधा है। बिना समीक्षा किए मशीन आउटपुट को चुपचाप उपयोगकर्ताओं तक पहुंचाए बिना इसे स्वचालित करना ही विचारणीय विषय है।
|
|
22
|
+
|
|
23
|
+
## विषय सूची
|
|
24
|
+
|
|
25
|
+
<TOC/>
|
|
26
|
+
|
|
27
|
+
## स्वचालित करने के लिए आपको माइग्रेट करने की आवश्यकता नहीं है
|
|
28
|
+
|
|
29
|
+
नीचे दिए गए पाइपलाइन आकार लाइब्रेरी-अज्ञेयवादी हैं, और टूलिंग भी वैसी ही है। यदि आपके संदेश i18next, next-intl, react-intl, vue-i18n या next-translate के लिए JSON कैटलॉग हैं, तो [Sync JSON प्लगइन](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/plugins/sync-json.md) उन फ़ाइलों को सीधे पढ़ता और लिखता है:
|
|
30
|
+
|
|
31
|
+
```ts fileName="intlayer.config.ts"
|
|
32
|
+
import { syncJSON } from "@intlayer/sync-json-plugin";
|
|
33
|
+
|
|
34
|
+
const config = {
|
|
35
|
+
plugins: [
|
|
36
|
+
syncJSON({
|
|
37
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
38
|
+
format: "i18next", // या next-intl / react-intl के लिए "icu"
|
|
39
|
+
}),
|
|
40
|
+
],
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export default config;
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
आपका ऐप वही आयात करता रहता है जो वह आयात करता है। फिर नीचे दिए गए CI जॉब्स आपके मौजूदा कैटलॉग को भरते हैं और जांचते हैं, और एक समीक्षक जो डिफ देखता है वह `locales/fr/checkout.json` में बदलाव है, न कि कोई माइग्रेशन। gettext वर्कफ़्लो के लिए एक [Sync PO प्लगइन](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/plugins/sync-po.md) है, और यदि आप रनटाइम API को अपरिवर्तित रखना चाहते हैं तो [कम्पैट एडॉप्टर](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/compat/index.md) भी उपलब्ध हैं।
|
|
47
|
+
|
|
48
|
+
## गेट (Gate) को भराव (Fill) से अलग करें
|
|
49
|
+
|
|
50
|
+
दो अलग-अलग कार्यों को लगातार मिला दिया जाता है।
|
|
51
|
+
|
|
52
|
+
एक **गेट (Gate)** एक ऐसी जांच है जो विफल हो जाती है। यह कहता है कि इस बिल्ड को शिप नहीं किया जाना चाहिए क्योंकि आवश्यक लोकेल गायब हैं। यह कुछ भी नहीं लिखता है।
|
|
53
|
+
|
|
54
|
+
एक **फिल (Fill)** एक म्यूटेशन है। यह गायब अनुवाद उत्पन्न करता है और उन्हें कमिट करता है। यह कभी भी बिल्ड को विफल नहीं करता है।
|
|
55
|
+
|
|
56
|
+
केवल फिल चलाने का मतलब है कि कुछ भी कभी ब्लॉक नहीं होता है, और मशीन आउटपुट बिना समीक्षा के उत्पादन में चला जाता है। केवल गेट चलाने का मतलब है कि बिल्ड लाल हो जाता है और हर बार किसी इंसान को इसे अनब्लॉक करना पड़ता है। अधिकांश टीमें दोनों चाहती हैं, जो अलग-अलग ट्रिगर्स से जुड़ी हों: पुल अनुरोध पर फिल, रिलीज़ शाखा में मर्ज पर गेट।
|
|
57
|
+
|
|
58
|
+
## स्वचालन कहाँ रह सकता है
|
|
59
|
+
|
|
60
|
+
| चरण | ट्रिगर | किसके लिए अच्छा है | लागत |
|
|
61
|
+
| :----------- | :------- | :-------------------------------------------- | :------------------------------------------ |
|
|
62
|
+
| Pre-push हुक | लोकल गिट | त्वरित प्रतिक्रिया, कोई CI मिनट नहीं | डेवलपर की मशीन और उनकी API कुंजी पर चलता है |
|
|
63
|
+
| Pull request | CI जॉब | मर्ज से पहले समीक्षा, रहस्यों के लिए एक स्थान | CI मिनट और प्रति PR मॉडल कॉल |
|
|
64
|
+
| रिलीज़ शाखा | CI जॉब | कवरेज पर कड़ा गेट | सस्ता, कोई मॉडल कॉल नहीं |
|
|
65
|
+
| रनटाइम | CMS | बिना पुनर्निर्माण के सामग्री परिवर्तन | होस्ट की गई निर्भरता |
|
|
66
|
+
|
|
67
|
+
## Pre-push: सबसे तेज़ लूप
|
|
68
|
+
|
|
69
|
+
Husky कोड के मशीन छोड़ने से पहले फिल चलाता है, इसलिए अनुवाद उसी पुश में आते हैं जिसमें उन स्ट्रिंग्स की आवश्यकता थी।
|
|
70
|
+
|
|
71
|
+
```bash fileName=".husky/pre-push"
|
|
72
|
+
npx intlayer build
|
|
73
|
+
npx intlayer fill --unpushed --mode complete
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
`--unpushed` कार्य को उस सामग्री तक सीमित करता है जिसे अभी तक पुश नहीं किया गया है, जो इसे हर पुश पर एक मिनट लेने से रोकता है। `--mode complete` जो गायब है उसे बिना उन प्रविष्टियों को दोबारा लिखे भरता है जिनके पास पहले से ही एक मान है, इसलिए एक समीक्षित अनुवाद कभी भी चुपचाप प्रतिस्थापित नहीं होता है।
|
|
77
|
+
|
|
78
|
+
एक मोनोरेपो के लिए, प्रत्येक ऐप का दायरा तय करें:
|
|
79
|
+
|
|
80
|
+
```bash fileName=".husky/pre-push"
|
|
81
|
+
npx intlayer build --base-dir ./app1
|
|
82
|
+
npx intlayer fill --base-dir ./app1 --unpushed --mode complete
|
|
83
|
+
npx intlayer build --base-dir ./app2
|
|
84
|
+
npx intlayer fill --base-dir ./app2 --unpushed --mode complete
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
नुकसान वास्तविक है: प्रत्येक डेवलपर को एक API कुंजी की आवश्यकता होती है, और लागत उस व्यक्ति पर आती है जो पुश करता है। यही कारण है कि अधिकांश टीमें कुछ से अधिक होने पर इसे CI में ले जाती हैं।
|
|
88
|
+
|
|
89
|
+
## Pull request: जहाँ समीक्षा है वहाँ भरें
|
|
90
|
+
|
|
91
|
+
GitHub Actions में वही काम, डिफ तक सीमित:
|
|
92
|
+
|
|
93
|
+
```yaml fileName=".github/workflows/intlayer-translate.yml"
|
|
94
|
+
name: Intlayer Auto-Fill
|
|
95
|
+
on:
|
|
96
|
+
pull_request:
|
|
97
|
+
branches: ["main"]
|
|
98
|
+
|
|
99
|
+
permissions:
|
|
100
|
+
contents: write
|
|
101
|
+
pull-requests: write
|
|
102
|
+
|
|
103
|
+
concurrency:
|
|
104
|
+
group: "autofill-${{ github.ref }}"
|
|
105
|
+
cancel-in-progress: true
|
|
106
|
+
|
|
107
|
+
jobs:
|
|
108
|
+
autofill:
|
|
109
|
+
runs-on: ubuntu-latest
|
|
110
|
+
env:
|
|
111
|
+
AI_PROVIDER: openai
|
|
112
|
+
AI_MODEL: gpt-5-mini
|
|
113
|
+
AI_API_KEY: ${{ secrets.AI_API_KEY }}
|
|
114
|
+
steps:
|
|
115
|
+
- uses: actions/checkout@v4
|
|
116
|
+
with:
|
|
117
|
+
persist-credentials: true
|
|
118
|
+
fetch-depth: 0
|
|
119
|
+
- uses: actions/setup-node@v4
|
|
120
|
+
with:
|
|
121
|
+
node-version: 20
|
|
122
|
+
- run: npm install
|
|
123
|
+
- run: npx intlayer build
|
|
124
|
+
- run: npx intlayer fill --git-diff --mode complete --provider $AI_PROVIDER --model $AI_MODEL --api-key $AI_API_KEY
|
|
125
|
+
- name: Commit
|
|
126
|
+
run: |
|
|
127
|
+
if [ -n "$(git status --porcelain)" ]; then
|
|
128
|
+
git config --local user.email "action@github.com"
|
|
129
|
+
git config --local user.name "GitHub Action"
|
|
130
|
+
git add .
|
|
131
|
+
git commit -m "chore: auto-fill missing translations [skip ci]"
|
|
132
|
+
git push origin HEAD:${{ github.head_ref }}
|
|
133
|
+
fi
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
वहाँ चार विवरण लोड-असर वाले हैं:
|
|
137
|
+
|
|
138
|
+
- **`fetch-depth: 0`** `--git-diff` के काम करने के लिए आवश्यक है। एक उथले क्लोन के पास डिफ करने के लिए कोई आधार नहीं होता है, और फिल चुपचाप कुछ भी कवर नहीं करता है।
|
|
139
|
+
- **कमिट संदेश में `[skip ci]`** वर्कफ़्लो को खुद को फिर से चालू करने से रोकता है। इसके बिना जॉब कमिट करता है, जो एक रन खोलता है, जो फिर से कमिट करता है। रातों-रात CI बजट जलाने का यह क्लासिक तरीका है।
|
|
140
|
+
- **`cancel-in-progress` के साथ `concurrency`** दो पुश को एक ही फ़ाइल लिखने से रोकता है।
|
|
141
|
+
- **`--git-diff`** फिल को PR में बदले गए हिस्से तक सीमित करता है। इसे छोड़ दें और आप हर रन पर पूरे कैटलॉग का फिर से अनुवाद करते हैं।
|
|
142
|
+
|
|
143
|
+
अनुवाद PR शाखा पर एक कमिट के रूप में आते हैं, जिसका अर्थ है कि एक समीक्षक उन्हें डिफ में देखता है। मर्ज के बाद के बजाय इसे यहाँ करने का पूरा बिंदु यही है।
|
|
144
|
+
|
|
145
|
+
## रिलीज़ शाखा: गेट
|
|
146
|
+
|
|
147
|
+
गेट को किसी मॉडल एक्सेस की आवश्यकता नहीं होती है और इसे तेज़ होना चाहिए।
|
|
148
|
+
|
|
149
|
+
```yaml fileName=".github/workflows/ci.yml"
|
|
150
|
+
- run: npm run test:i18n
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
CLI रिपोर्ट के बजाय कवरेज का दावा करने वाले परीक्षण द्वारा समर्थित:
|
|
154
|
+
|
|
155
|
+
```ts fileName="i18n.test.ts"
|
|
156
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
157
|
+
|
|
158
|
+
test("has no missing required locales", async () => {
|
|
159
|
+
const result = await listMissingTranslations();
|
|
160
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
161
|
+
console.log(result.missingTranslations);
|
|
162
|
+
}
|
|
163
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
`npx intlayer content test` एक रिपोर्ट प्रिंट करता है लेकिन शून्य से बाहर निकलता है, इसलिए यह सूचित करता है और रोकता नहीं है। इसे स्थानीय रूप से उपयोग करें; CI में असर्शन का उपयोग करें। [अनुपस्थित अनुवादों का पता लगाना](https://github.com/aymericzip/intlayer/blob/main/docs/blog/hi/detecting_missing_translations.md) में अंतर पर अधिक जानकारी है।
|
|
168
|
+
|
|
169
|
+
## `requiredLocales` वह है जो गेट को जीवित रखने योग्य बनाता है
|
|
170
|
+
|
|
171
|
+
सभी अठारह लोकेल की मांग करने वाला एक गेट सबसे धीमी भाषा के आने तक हर रिलीज़ को रोकता है, और एक महीने के भीतर अक्षम हो जाता है।
|
|
172
|
+
|
|
173
|
+
```ts fileName="intlayer.config.ts"
|
|
174
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
175
|
+
|
|
176
|
+
const config: IntlayerConfig = {
|
|
177
|
+
internationalization: {
|
|
178
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
179
|
+
requiredLocales: [Locales.ENGLISH],
|
|
180
|
+
defaultLocale: Locales.ENGLISH,
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
export default config;
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
आपके द्वारा सेवा प्रदान किए जाने वाले लोकेल घोषित करें, उन लोकेल की आवश्यकता रखें जो रिलीज़ को रोकते हैं। बाकी एसिंक्रोनस रूप से भरे जाते हैं और कभी भी परिनियोजन में देरी नहीं करते हैं।
|
|
188
|
+
|
|
189
|
+
## अनुवादों को पूरी तरह से रेपो से बाहर निकालना
|
|
190
|
+
|
|
191
|
+
दूसरा मॉडल कोड में एक लोकेल घोषित करना और बाकी को लाइव सिंक के साथ CMS के माध्यम से दूरस्थ रूप से प्रबंधित करना है। तब सामग्री परिवर्तनों के लिए बिल्कुल भी पुनर्निर्माण की आवश्यकता नहीं होती है, जो कॉपी गति को डिप्लॉय गति से अलग करता है।
|
|
192
|
+
|
|
193
|
+
```ts fileName="intlayer.config.ts"
|
|
194
|
+
const config: IntlayerConfig = {
|
|
195
|
+
internationalization: {
|
|
196
|
+
locales: [Locales.ENGLISH, Locales.SPANISH, Locales.FRENCH],
|
|
197
|
+
requiredLocales: [Locales.ENGLISH],
|
|
198
|
+
defaultLocale: Locales.ENGLISH,
|
|
199
|
+
},
|
|
200
|
+
editor: {
|
|
201
|
+
clientId: process.env.INTLAYER_CLIENT_ID,
|
|
202
|
+
clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
203
|
+
liveSync: true,
|
|
204
|
+
},
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
export default config;
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
यह उन टीमों के लिए उपयुक्त है जहाँ गैर-डेवलपर्स कॉपी के मालिक हैं। यह एक व्यापार है, अपग्रेड नहीं: आप संपादक स्वायत्तता प्राप्त करते हैं और संपत्ति खो देते हैं कि एक गिट चेकआउट पूरी तरह से वर्णन करता है कि ऐप क्या रेंडर करता है। [CMS दस्तावेज़ीकरण](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/intlayer_CMS.md) में विवरण।
|
|
211
|
+
|
|
212
|
+
ध्यान दें कि `clientSecret` एक सर्वर-साइड क्रेडेंशियल है। यह CI रहस्यों और आपके सर्वर वातावरण में रहता है, कभी भी किसी ऐसी चीज़ में नहीं जो क्लाइंट बंडल तक पहुँचती है।
|
|
213
|
+
|
|
214
|
+
## ईमानदार सीमा
|
|
215
|
+
|
|
216
|
+
ऊपर सब कुछ _कवरेज_ को स्वचालित करता है, _गुणवत्ता_ को नहीं। एक मशीन भराव एक दृश्यमान अंतर को एक अदृश्य अंतर में बदल देता है: ऑडिट हरा हो जाता है क्योंकि कुंजी का अब एक मान है, और किसी ने इसे पढ़ा नहीं है।
|
|
217
|
+
|
|
218
|
+
यह एक आंतरिक उपकरण, एक चेंजलॉग या एक बीटा लोकेल के लिए स्वीकार्य है। यह मूल्य निर्धारण, कानूनी प्रतिलिपि, भुगतान विफल होने वाले त्रुटि संदेशों, या किसी भी चीज़ के लिए स्वीकार्य नहीं है जिसे ग्राहक तय करने से पहले पढ़ता है। उन्हें एक मानव के माध्यम से रूट करें, और हर जगह `--mode complete` का उपयोग करें ताकि एक समीक्षित स्ट्रिंग कभी भी बाद के रन द्वारा अधिलेखित न हो।
|
|
219
|
+
|
|
220
|
+
मॉडल को संदर्भ दें ताकि इसका आउटपुट कम से कम सुसंगत हो:
|
|
221
|
+
|
|
222
|
+
```ts
|
|
223
|
+
ai: {
|
|
224
|
+
applicationContext: "B2B इनवॉइसिंग ऐप। औपचारिक रजिस्टर। उत्पाद के नाम का कभी अनुवाद न करें।",
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## सामान्य गलतियाँ
|
|
229
|
+
|
|
230
|
+
- **ऑटो-कमिट पर कोई `[skip ci]` नहीं।** काम एक लूप में खुद को फिर से शुरू करता है।
|
|
231
|
+
- **`--git-diff` के साथ उथला क्लोन।** डिफ करने के लिए कोई आधार नहीं है, इसलिए कुछ भी भरा नहीं गया है और कुछ भी शिकायत नहीं करता है।
|
|
232
|
+
- **हर रन पर पूरे कैटलॉग को भरना।** `--git-diff` या `--unpushed` के साथ स्कोप करें या बिल देखें।
|
|
233
|
+
- **गेट के रूप में CLI रिपोर्ट का उपयोग करना।** यह शून्य से बाहर निकलता है।
|
|
234
|
+
- **प्रत्येक लोकेल की आवश्यकता।** पहली बार जब यह रिलीज़ को रोकता है तो गेट हटा दिया जाता है।
|
|
235
|
+
- **बिना गेट वाला फिल जॉब।** कुछ भी कभी विफल नहीं होता है, इसलिए मशीन कॉपी बिना समीक्षा के उत्पादन तक पहुँचती है।
|
|
236
|
+
- **रेपो में मॉडल API कुंजियाँ।** वे CI रहस्यों से संबंधित हैं, जैसे `clientSecret`।
|
|
237
|
+
|
|
238
|
+
## आगे पढ़ें
|
|
239
|
+
|
|
240
|
+
- [CI/CD: Husky, GitHub Actions और CMS के साथ अनुवादों को स्वतः उत्पन्न करना](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/CI_CD.md)
|
|
241
|
+
- [अपनी सामग्री का परीक्षण करना और कवरेज पर एक बिल्ड को रोकना](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/testing.md)
|
|
242
|
+
- [autoFill: प्रति-लोकेल घोषणा फ़ाइलें उत्पन्न करना](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/autoFill.md)
|
|
243
|
+
- [कॉन्फ़िगरेशन संदर्भ: `locales`, `requiredLocales`, `editor`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/configuration.md)
|
|
244
|
+
- [फ्रेमवर्क में बेंचमार्क रिपोर्ट](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/benchmark/index.md)
|
|
245
|
+
- [ड्रॉप-इन i18next कम्पैट एडॉप्टर](https://github.com/aymericzip/intlayer/blob/main/docs/docs/hi/compat/i18next.md)
|
|
246
|
+
- [अनुपस्थित अनुवादों को कैसे खोजें](https://github.com/aymericzip/intlayer/blob/main/docs/blog/hi/detecting_missing_translations.md)
|
|
247
|
+
- [नाजुक परीक्षणों के बिना अनुवादों का परीक्षण कैसे करें](https://github.com/aymericzip/intlayer/blob/main/docs/blog/hi/i18n_testing_strategies.md)
|
package/blog/hi/i18n_meaning.md
CHANGED
|
@@ -19,8 +19,6 @@ author: aymericzip
|
|
|
19
19
|
|
|
20
20
|
# i18n अर्थ: अंतर्राष्ट्रीयकरण क्या है और यह क्यों महत्वपूर्ण है?
|
|
21
21
|
|
|
22
|
-

|
|
23
|
-
|
|
24
22
|
## "i18n" अर्थ को समझना
|
|
25
23
|
|
|
26
24
|
यदि आप सॉफ़्टवेयर विकास, वेब डिज़ाइन या डिजिटल मार्केटिंग में शामिल हैं, तो संभवतः आपका सामना **i18n** शब्द से हुआ होगा। वास्तविक **i18n अर्थ** केवल **internationalization** (अंतर्राष्ट्रीयकरण) के लिए एक अंक-नाम (numeronym) है।
|