@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,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-02
|
|
3
|
+
updatedAt: 2026-09-02
|
|
4
|
+
title: "Formatting dates and numbers by locale with Intl"
|
|
5
|
+
description: You probably do not need a formatting library. How Intl handles dates, numbers, currency and lists per locale, the caching cost, and the timezone bug that only breaks in production.
|
|
6
|
+
keywords:
|
|
7
|
+
- format date by locale
|
|
8
|
+
- Intl.DateTimeFormat
|
|
9
|
+
- Intl.NumberFormat
|
|
10
|
+
- toLocaleDateString
|
|
11
|
+
- locale currency format
|
|
12
|
+
- relative time format
|
|
13
|
+
slugs:
|
|
14
|
+
- blog
|
|
15
|
+
- date-time-number-formatting-locales
|
|
16
|
+
author: aymericzip
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Formatting dates and numbers by locale with Intl
|
|
20
|
+
|
|
21
|
+
Translating strings is the visible half of i18n. The half that generates bug reports is formatting: a German user seeing `1,234.56` instead of `1.234,56`, a Japanese user seeing `08/02/2026` and reading it as August, or a date that renders differently on the server and the client and takes the page down on hydration.
|
|
22
|
+
|
|
23
|
+
None of that needs a library. `Intl` is in every runtime you target.
|
|
24
|
+
|
|
25
|
+
## Table of Contents
|
|
26
|
+
|
|
27
|
+
<TOC/>
|
|
28
|
+
|
|
29
|
+
## Start by deleting your date helper
|
|
30
|
+
|
|
31
|
+
Almost every codebase has a `formatDate` written before anyone thought about locales. It hardcodes an order, a separator, and usually English month names.
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
// The thing to delete.
|
|
35
|
+
const formatDate = (d: Date) =>
|
|
36
|
+
`${d.getMonth() + 1}/${d.getDate()}/${d.getFullYear()}`;
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`Intl.DateTimeFormat` replaces it and is correct in every locale:
|
|
40
|
+
|
|
41
|
+
```ts
|
|
42
|
+
new Intl.DateTimeFormat("de-DE", { dateStyle: "long" }).format(date);
|
|
43
|
+
// "2. August 2026"
|
|
44
|
+
new Intl.DateTimeFormat("ja-JP", { dateStyle: "long" }).format(date);
|
|
45
|
+
// "2026年8月2日"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The same applies to numbers. `toFixed(2)` produces `1234.56` everywhere, which is wrong in most of Europe.
|
|
49
|
+
|
|
50
|
+
## What `Intl` covers
|
|
51
|
+
|
|
52
|
+
| API | Use it for |
|
|
53
|
+
| :------------------------ | :------------------------------------------------------ |
|
|
54
|
+
| `Intl.DateTimeFormat` | Dates and times, with `dateStyle` / `timeStyle` presets |
|
|
55
|
+
| `Intl.NumberFormat` | Decimals, currency, percent, units, compact notation |
|
|
56
|
+
| `Intl.RelativeTimeFormat` | "3 days ago", "in 2 hours" |
|
|
57
|
+
| `Intl.ListFormat` | "a, b, and c" versus "a, b et c" |
|
|
58
|
+
| `Intl.PluralRules` | Which plural category a number falls into |
|
|
59
|
+
| `Intl.Collator` | Sorting strings correctly per language |
|
|
60
|
+
|
|
61
|
+
`Intl.Collator` is the one people forget. `array.sort()` on strings uses code point order, so accented characters sort after `z` and Swedish `ö` lands in the wrong place. If you sort user-visible lists, sort with a collator.
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
["zebra", "édouard", "apple"].sort(new Intl.Collator("en-GB").compare);
|
|
65
|
+
// ["apple", "édouard", "zebra"]
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Prefer presets to hand-built options
|
|
69
|
+
|
|
70
|
+
`dateStyle` and `timeStyle` let the locale decide the order and separators. Specifying `year`, `month` and `day` individually gives you control you usually should not want, because the correct order differs by locale and you are overriding CLDR data with your own assumption.
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
// Locale decides the shape.
|
|
74
|
+
new Intl.DateTimeFormat(locale, { dateStyle: "medium" }).format(d);
|
|
75
|
+
|
|
76
|
+
// You decided the shape, and you are wrong somewhere.
|
|
77
|
+
new Intl.DateTimeFormat(locale, {
|
|
78
|
+
year: "numeric",
|
|
79
|
+
month: "2-digit",
|
|
80
|
+
day: "2-digit",
|
|
81
|
+
}).format(d);
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Use explicit components only when the design genuinely requires a fixed shape, for instance a table column that must stay narrow.
|
|
85
|
+
|
|
86
|
+
## Constructing formatters is expensive
|
|
87
|
+
|
|
88
|
+
This is the performance detail that matters. Building an `Intl.NumberFormat` involves loading locale data, and it is far more expensive than the `format()` call that follows. Doing it inside a render or a loop over a thousand rows is a measurable cost.
|
|
89
|
+
|
|
90
|
+
```ts
|
|
91
|
+
// Rebuilds the formatter on every row.
|
|
92
|
+
rows.map((r) => new Intl.NumberFormat(locale).format(r.total));
|
|
93
|
+
|
|
94
|
+
// Build once, reuse.
|
|
95
|
+
const nf = new Intl.NumberFormat(locale);
|
|
96
|
+
rows.map((r) => nf.format(r.total));
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`toLocaleDateString()` and `toLocaleString()` have the same problem hidden inside them: each call constructs a formatter. They are fine for one value and wrong for a list.
|
|
100
|
+
|
|
101
|
+
Cache by the combination of locale and options, since those are what define a formatter:
|
|
102
|
+
|
|
103
|
+
```ts
|
|
104
|
+
const cache = new Map<string, Intl.NumberFormat>();
|
|
105
|
+
|
|
106
|
+
const getNumberFormat = (
|
|
107
|
+
locale: string,
|
|
108
|
+
options: Intl.NumberFormatOptions = {}
|
|
109
|
+
) => {
|
|
110
|
+
const key = `${locale}:${JSON.stringify(options)}`;
|
|
111
|
+
let formatter = cache.get(key);
|
|
112
|
+
if (!formatter) {
|
|
113
|
+
formatter = new Intl.NumberFormat(locale, options);
|
|
114
|
+
cache.set(key, formatter);
|
|
115
|
+
}
|
|
116
|
+
return formatter;
|
|
117
|
+
};
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## The timezone bug that only appears in production
|
|
121
|
+
|
|
122
|
+
This one costs entire afternoons. A server renders a date, the browser hydrates it, and React throws a hydration mismatch because the two produced different text.
|
|
123
|
+
|
|
124
|
+
The cause is that `Intl.DateTimeFormat` uses the ambient timezone when you do not name one. Your production server runs in UTC. Your laptop does not. So the bug is invisible locally and reproducible only in production, which is the worst possible combination.
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
// Server in UTC and a browser in UTC+9 disagree. Hydration mismatch.
|
|
128
|
+
new Intl.DateTimeFormat(locale, { dateStyle: "short" }).format(d);
|
|
129
|
+
|
|
130
|
+
// Both agree.
|
|
131
|
+
new Intl.DateTimeFormat(locale, { dateStyle: "short", timeZone: "UTC" }).format(
|
|
132
|
+
d
|
|
133
|
+
);
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Three workable approaches:
|
|
137
|
+
|
|
138
|
+
- **Pin a timezone** on the server and pass it explicitly. Correct and deterministic, but everyone sees UTC.
|
|
139
|
+
- **Render on the client only**, with a stable placeholder for the server pass. Correct per user, costs a flash.
|
|
140
|
+
- **Store the user's timezone** and pass it on both sides. Best result, most work.
|
|
141
|
+
|
|
142
|
+
Whichever you pick, always pass `timeZone` explicitly for any date rendered on both server and client. A date with no timezone is a date with two values.
|
|
143
|
+
|
|
144
|
+
## Currency needs a currency, not a locale
|
|
145
|
+
|
|
146
|
+
Locale and currency are independent. `fr-FR` does not mean euros: a French user can be looking at a USD invoice.
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
new Intl.NumberFormat("fr-FR", { style: "currency", currency: "USD" }).format(
|
|
150
|
+
1234.5
|
|
151
|
+
);
|
|
152
|
+
// "1 234,50 $US"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
The locale controls the separators, digit grouping and symbol placement. The currency comes from your data. Deriving one from the other is a bug that reaches accounting.
|
|
156
|
+
|
|
157
|
+
Also note `currencyDisplay`. In an interface where several currencies coexist, `"code"` removes the ambiguity between US, Canadian and Australian dollars.
|
|
158
|
+
|
|
159
|
+
## Relative time reads better than absolute time
|
|
160
|
+
|
|
161
|
+
For anything recent, "2 hours ago" beats a timestamp, and `Intl.RelativeTimeFormat` localises it properly.
|
|
162
|
+
|
|
163
|
+
```ts
|
|
164
|
+
new Intl.RelativeTimeFormat("en-GB", { numeric: "auto" }).format(-1, "day");
|
|
165
|
+
// "yesterday"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
`numeric: "auto"` is what produces "yesterday" instead of "1 day ago". Without it you get the numeric form in every language, which reads like a machine.
|
|
169
|
+
|
|
170
|
+
## What Intlayer adds
|
|
171
|
+
|
|
172
|
+
Intlayer wraps these in cached helpers so you do not maintain the map above, and so the active locale is applied by default rather than passed at every call site.
|
|
173
|
+
|
|
174
|
+
```ts
|
|
175
|
+
import {
|
|
176
|
+
number,
|
|
177
|
+
currency,
|
|
178
|
+
date,
|
|
179
|
+
relativeTime,
|
|
180
|
+
units,
|
|
181
|
+
compact,
|
|
182
|
+
list,
|
|
183
|
+
} from "intlayer";
|
|
184
|
+
|
|
185
|
+
number(1234.5); // "1,234.5"
|
|
186
|
+
currency(1234.5, { currency: "EUR" }); // "€1,234.50"
|
|
187
|
+
date(new Date(), "short");
|
|
188
|
+
relativeTime(now, twoHoursAgo, { unit: "hour", numeric: "auto" }); // "2 hours ago"
|
|
189
|
+
units(5, { unit: "kilometer", unitDisplay: "long" }); // "5 kilometres"
|
|
190
|
+
compact(1200); // "1.2K"
|
|
191
|
+
list(["apple", "banana", "orange"]); // "apple, banana, and orange"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
`date()` also accepts presets (`"short"`, `"long"`, `"dateOnly"`, `"timeOnly"`, `"full"`) so the common cases do not need an options object. React and Vue equivalents exist as hooks and composables, which resolve the active locale from context instead of taking it as an argument.
|
|
195
|
+
|
|
196
|
+
To be clear about what this is: a caching layer and a locale default over the platform API. The formatting behaviour is `Intl`, and everything in this post applies whether or not you use it. Full signatures in the [formatters documentation](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/formatters.md).
|
|
197
|
+
|
|
198
|
+
## Common mistakes
|
|
199
|
+
|
|
200
|
+
- **`toLocaleDateString()` with no locale.** Uses the runtime's locale, which on a server is whatever the container was configured with.
|
|
201
|
+
- **Formatting in a loop.** Constructing the formatter dominates the cost. Build once.
|
|
202
|
+
- **No `timeZone` on isomorphic dates.** Hydration mismatch that never reproduces on your machine.
|
|
203
|
+
- **Deriving currency from locale.** `fr-FR` is not euros.
|
|
204
|
+
- **`sort()` on user-visible strings.** Use `Intl.Collator`.
|
|
205
|
+
- **Hardcoding month or day names.** They are in CLDR already, in every language.
|
|
206
|
+
- **`numeric: "always"` for relative time.** "1 day ago" where every language has a word for yesterday.
|
|
207
|
+
|
|
208
|
+
## Going further
|
|
209
|
+
|
|
210
|
+
- [Formatters and locale utilities: `number`, `currency`, `date`, `relativeTime`, `list`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/formatters.md)
|
|
211
|
+
- [Configuration reference](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/configuration.md)
|
|
212
|
+
- [Benchmark reports across frameworks](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/benchmark/index.md)
|
|
213
|
+
- [Drop-in react-intl compat adapter](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/compat/react-intl.md)
|
|
214
|
+
- [ICU message format: plurals, select and number skeletons](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en-GB/icu_message_format.md)
|
|
215
|
+
- [How to test translations, including formatter and plural coverage](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en-GB/i18n_testing_strategies.md)
|
|
216
|
+
- [What internationalisation actually covers](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en-GB/what_is_internationalization.md)
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-02
|
|
3
|
+
updatedAt: 2026-09-02
|
|
4
|
+
title: "How to find missing translations before your users do"
|
|
5
|
+
description: Missing translations fail silently. Why fallback hides them, the four detection layers that actually work, and how to fail a build on an untranslated key.
|
|
6
|
+
keywords:
|
|
7
|
+
- find missing translations
|
|
8
|
+
- missing translation keys
|
|
9
|
+
- i18n audit
|
|
10
|
+
- untranslated strings
|
|
11
|
+
- translation coverage
|
|
12
|
+
- i18n lint
|
|
13
|
+
slugs:
|
|
14
|
+
- blog
|
|
15
|
+
- detecting-missing-translations
|
|
16
|
+
author: aymericzip
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# How to find missing translations before your users do
|
|
20
|
+
|
|
21
|
+
A missing translation almost never throws. Depending on your setup it either shows the English string to a Japanese user, or prints `checkout.summary.total` on a live page. Both ship, both pass code review, and both are found by a customer rather than by you.
|
|
22
|
+
|
|
23
|
+
## Table of Contents
|
|
24
|
+
|
|
25
|
+
<TOC/>
|
|
26
|
+
|
|
27
|
+
## This applies whatever library you use
|
|
28
|
+
|
|
29
|
+
Nothing here is specific to one stack. The detection layers below work the same on i18next, react-i18next, next-intl, react-intl, vue-i18n, next-translate or Lingui, because they all resolve keys the same way and all fail the same way.
|
|
30
|
+
|
|
31
|
+
The tooling is portable too. If your messages live in JSON catalogues today, the [Sync JSON plugin](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/plugins/sync-json.md) points Intlayer at those files, so you get the audit, fill and test commands without moving your content or changing a single import:
|
|
32
|
+
|
|
33
|
+
```ts fileName="intlayer.config.ts"
|
|
34
|
+
import { syncJSON } from "@intlayer/sync-json-plugin";
|
|
35
|
+
|
|
36
|
+
const config = {
|
|
37
|
+
plugins: [
|
|
38
|
+
syncJSON({
|
|
39
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.json`,
|
|
40
|
+
format: "i18next", // or "icu" for next-intl / react-intl
|
|
41
|
+
}),
|
|
42
|
+
],
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export default config;
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If you want the runtime API to stay identical as well, the [compat adapters](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/compat/index.md) alias `useTranslation`, `$t` and friends at the bundler level. Either way, treat the commands below as one implementation of the idea, not as a requirement.
|
|
49
|
+
|
|
50
|
+
## Why they are invisible
|
|
51
|
+
|
|
52
|
+
Every i18n library resolves a key through the same chain: look up the active locale, fall back to a default, and if that fails, return the key itself. That last step is the problem. There is no error, no warning in production, and no failing test, because nothing in the pipeline treats a missing key as abnormal.
|
|
53
|
+
|
|
54
|
+
Fallback makes it worse, not better. A page that silently renders in English looks fine to an English-speaking developer and to every automated check you have. The bug is only visible to the person who cannot read the result.
|
|
55
|
+
|
|
56
|
+
So the question is not "how do I handle missing translations at runtime". It is "how do I make a missing translation impossible to merge".
|
|
57
|
+
|
|
58
|
+
## The four places you can catch them
|
|
59
|
+
|
|
60
|
+
Each layer catches something the others cannot. You want more than one.
|
|
61
|
+
|
|
62
|
+
| Layer | Catches | Misses |
|
|
63
|
+
| :-------------- | :------------------------------------------- | :-------------------------------------------- |
|
|
64
|
+
| Types | Keys that do not exist at all | A key that exists but is untranslated in `ja` |
|
|
65
|
+
| Lint | Hardcoded strings never sent for translation | Keys missing from a catalogue |
|
|
66
|
+
| Audit | Locale coverage across every declared key | Text that was never made translatable |
|
|
67
|
+
| Rendering tests | Keys that resolve but render wrong | Everything not covered by a test |
|
|
68
|
+
|
|
69
|
+
The gap most teams have is the third row: they know their keys are valid, but nothing checks that all eighteen locales actually have a value.
|
|
70
|
+
|
|
71
|
+
## Layer 1: make the key a type, not a string
|
|
72
|
+
|
|
73
|
+
`t("checkout.summry.total")` is a typo that compiles. If your keys are plain strings, every rename is a runtime risk and every deletion leaves an orphan.
|
|
74
|
+
|
|
75
|
+
Typed keys turn that into a build error. `react-i18next` supports it through declaration merging, `next-intl` infers from your message shape, Lingui derives IDs from the source text, and Intlayer generates types from the declaration files. All of them work; what differs is how much you have to wire up.
|
|
76
|
+
|
|
77
|
+
This layer is necessary and not sufficient. Types describe the shape of your default catalogue. They say nothing about whether Korean has a value for that key.
|
|
78
|
+
|
|
79
|
+
## Layer 2: lint the strings that never became keys
|
|
80
|
+
|
|
81
|
+
The translation you cannot find is often the one that was never externalised. A hardcoded label in a component is invisible to every catalogue-based audit, because as far as the tooling is concerned it does not exist.
|
|
82
|
+
|
|
83
|
+
Intlayer's ESLint plugin covers this with `no-raw-text`, plus `no-unused-content` for the reverse case: content declared and no longer read by anything.
|
|
84
|
+
|
|
85
|
+
```js fileName="eslint.config.mjs"
|
|
86
|
+
import intlayer from "@intlayer/eslint-plugin";
|
|
87
|
+
|
|
88
|
+
export default [
|
|
89
|
+
intlayer.configs.recommended,
|
|
90
|
+
{
|
|
91
|
+
rules: {
|
|
92
|
+
"@intlayer/no-raw-text": "error",
|
|
93
|
+
"@intlayer/no-unused-content": "warn",
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
];
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`no-unused-content` is the one that keeps catalogues from growing forever. Dead keys are not a correctness bug, but they are what makes a translation vendor invoice larger than it should be. Full rule list in the [ESLint plugin doc](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/eslint.md).
|
|
100
|
+
|
|
101
|
+
## Layer 3: audit locale coverage
|
|
102
|
+
|
|
103
|
+
This is the layer that answers the actual question. Intlayer ships it as a CLI command:
|
|
104
|
+
|
|
105
|
+
```bash packageManager="npm"
|
|
106
|
+
npx intlayer content test
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
It reads your configured locales and declared dictionaries, then reports which keys are missing which locales, and in which file.
|
|
110
|
+
|
|
111
|
+
One detail worth knowing before you wire it into anything: **the CLI prints a report but does not exit non-zero on failure.** If you drop it into a pipeline expecting a red build, you will get a green one with a wall of text nobody reads. For gating, use the programmatic API instead, covered below.
|
|
112
|
+
|
|
113
|
+
## Layer 4: assert it in the test suite
|
|
114
|
+
|
|
115
|
+
`listMissingTranslations()` gives you the same audit as data, which is what you want for a build gate.
|
|
116
|
+
|
|
117
|
+
```ts fileName="i18n.test.ts"
|
|
118
|
+
/* @vitest-environment node */
|
|
119
|
+
import { listMissingTranslations } from "intlayer/cli";
|
|
120
|
+
import { describe, expect, it } from "vitest";
|
|
121
|
+
|
|
122
|
+
describe("translations", () => {
|
|
123
|
+
it("has no missing required locales", async () => {
|
|
124
|
+
const result = await listMissingTranslations();
|
|
125
|
+
|
|
126
|
+
if (result.missingRequiredLocales.length > 0) {
|
|
127
|
+
console.log(result.missingTranslations);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
expect(result.missingRequiredLocales).toHaveLength(0);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Three fields come back, and the distinction matters:
|
|
136
|
+
|
|
137
|
+
- `missingTranslations`: per key, which locales are missing and from which file. This is what you print when the test fails.
|
|
138
|
+
- `missingLocales`: the union across every key.
|
|
139
|
+
- `missingRequiredLocales`: restricted to `requiredLocales` in your config, or all locales if you have not set it.
|
|
140
|
+
|
|
141
|
+
## Required locales are the useful knob
|
|
142
|
+
|
|
143
|
+
Shipping eighteen locales does not mean all eighteen must be complete to deploy. Most teams have a tier that blocks a release and a tier that is best-effort.
|
|
144
|
+
|
|
145
|
+
```ts fileName="intlayer.config.ts"
|
|
146
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
147
|
+
|
|
148
|
+
const config: IntlayerConfig = {
|
|
149
|
+
internationalization: {
|
|
150
|
+
locales: [
|
|
151
|
+
Locales.ENGLISH,
|
|
152
|
+
Locales.FRENCH,
|
|
153
|
+
Locales.JAPANESE,
|
|
154
|
+
Locales.POLISH,
|
|
155
|
+
],
|
|
156
|
+
requiredLocales: [Locales.ENGLISH, Locales.FRENCH],
|
|
157
|
+
defaultLocale: Locales.ENGLISH,
|
|
158
|
+
},
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
export default config;
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Without `requiredLocales`, every declared locale is required and your build stays red until the last language lands. That is usually how teams end up disabling the check entirely, which is worse than not having it.
|
|
165
|
+
|
|
166
|
+
## Finding the ones already in production
|
|
167
|
+
|
|
168
|
+
The layers above prevent new gaps. For an app that already shipped, two things help.
|
|
169
|
+
|
|
170
|
+
**Pseudolocalisation.** Run a locale where every string is transformed, for example `[!!! Ĉĥéçķöũţ !!!]`. Anything rendering in plain English is hardcoded. It finds in ten minutes what a catalogue audit structurally cannot see, because it tests the rendered page rather than the catalogue.
|
|
171
|
+
|
|
172
|
+
**Crawl your own site.** If you serve localised URLs, fetch a sample per locale and grep the HTML for your default-language strings. A page in `/ja/` containing "Add to cart" is either a missing translation or a fallback you did not know about.
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
curl -s https://example.com/ja/checkout | grep -c "Add to cart"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Filling the gaps
|
|
179
|
+
|
|
180
|
+
Once you know what is missing, `intlayer fill` populates the empty entries, and the `autoFill` option can generate per-locale files as content is declared. See [autoFill](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/autoFill.md).
|
|
181
|
+
|
|
182
|
+
Worth being clear-eyed about this: machine-filled translations turn a _visible_ gap into an _invisible_ one. The key now has a value, so the audit goes green, and nobody reviews the wording. Use it to unblock a release, then route the output through a human for anything a customer reads before deciding. It is a scaffold, not an answer.
|
|
183
|
+
|
|
184
|
+
## Common mistakes
|
|
185
|
+
|
|
186
|
+
- **Treating fallback as a feature.** It is a rendering strategy, not a safety net. A silent English page is a bug that reports itself to nobody.
|
|
187
|
+
- **Relying on the CLI report to gate CI.** `intlayer content test` exits zero regardless. Assert in a test.
|
|
188
|
+
- **Requiring every locale.** The check gets disabled the first time a release is blocked by a half-finished language.
|
|
189
|
+
- **Auditing catalogues but never the rendered page.** Hardcoded strings are invisible to a catalogue audit by definition.
|
|
190
|
+
- **Checking only the default locale in tests.** That is the one locale that cannot be missing.
|
|
191
|
+
- **Letting machine fill close the loop.** Green audit, unreviewed copy.
|
|
192
|
+
|
|
193
|
+
## Going further
|
|
194
|
+
|
|
195
|
+
- [Testing your content: CLI audit, programmatic API and UI assertions](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/testing.md)
|
|
196
|
+
- [ESLint plugin rules, including `no-raw-text` and `no-unused-content`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/eslint.md)
|
|
197
|
+
- [autoFill: generating per-locale declaration files](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/autoFill.md)
|
|
198
|
+
- [Configuration reference: `locales`, `requiredLocales`, `defaultLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/configuration.md)
|
|
199
|
+
- [Benchmark reports across frameworks](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/benchmark/index.md)
|
|
200
|
+
- [Drop-in i18next compat adapter](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en-GB/compat/i18next.md)
|
|
201
|
+
- [What internationalisation actually covers](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en-GB/what_is_internationalization.md)
|
|
202
|
+
- [Per-component vs centralised i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/en-GB/per-component_vs_centralized_i18n.md)
|