@intlayer/docs 9.5.3 → 9.5.4-canary.0
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 +8 -8
- package/blog/ar/history_of_i18n.md +54 -54
- package/blog/ar/how_to_pick_react_i18n_library.md +548 -0
- package/blog/ar/how_to_pick_solid_i18n_library.md +438 -0
- package/blog/ar/how_to_pick_svelte_i18n_library.md +454 -0
- package/blog/ar/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/ar/is_i18next_outdated.md +5 -1
- package/blog/ar/is_next-intl_outdated.md +5 -1
- package/blog/ar/is_vue-i18n_outdated.md +7 -1
- package/blog/ar/next-i18next_vs_next-intl_vs_intlayer.md +8 -4
- package/blog/ar/per-component_vs_centralized_i18n.md +9 -4
- package/blog/ar/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/de/history_of_i18n.md +54 -54
- package/blog/de/how_to_pick_react_i18n_library.md +548 -0
- package/blog/de/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/de/how_to_pick_svelte_i18n_library.md +454 -0
- package/blog/de/how_to_pick_vue_i18n_library.md +448 -0
- package/blog/de/is_i18next_outdated.md +5 -1
- package/blog/de/is_next-intl_outdated.md +5 -1
- package/blog/de/is_vue-i18n_outdated.md +7 -1
- package/blog/de/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/de/per-component_vs_centralized_i18n.md +9 -4
- package/blog/de/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/en/history_of_i18n.md +54 -54
- package/blog/en/how_to_pick_react_i18n_library.md +542 -0
- package/blog/en/how_to_pick_solid_i18n_library.md +438 -0
- package/blog/en/how_to_pick_svelte_i18n_library.md +448 -0
- package/blog/en/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/en/is_i18next_outdated.md +5 -1
- package/blog/en/is_next-intl_outdated.md +5 -1
- package/blog/en/is_vue-i18n_outdated.md +7 -1
- package/blog/en/list_i18n_technologies/frameworks/react-router.md +2 -3
- package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/en/per-component_vs_centralized_i18n.md +9 -4
- package/blog/en/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/en-GB/history_of_i18n.md +54 -54
- package/blog/en-GB/how_to_pick_react_i18n_library.md +542 -0
- package/blog/en-GB/how_to_pick_solid_i18n_library.md +438 -0
- package/blog/en-GB/how_to_pick_svelte_i18n_library.md +448 -0
- package/blog/en-GB/how_to_pick_vue_i18n_library.md +448 -0
- package/blog/en-GB/is_i18next_outdated.md +5 -1
- package/blog/en-GB/is_next-intl_outdated.md +5 -1
- package/blog/en-GB/is_vue-i18n_outdated.md +7 -1
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/en-GB/per-component_vs_centralized_i18n.md +9 -4
- package/blog/en-GB/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/es/history_of_i18n.md +54 -54
- package/blog/es/how_to_pick_react_i18n_library.md +542 -0
- package/blog/es/how_to_pick_solid_i18n_library.md +446 -0
- package/blog/es/how_to_pick_svelte_i18n_library.md +448 -0
- package/blog/es/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/es/is_i18next_outdated.md +5 -1
- package/blog/es/is_next-intl_outdated.md +5 -1
- package/blog/es/is_vue-i18n_outdated.md +7 -1
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/es/per-component_vs_centralized_i18n.md +9 -4
- package/blog/es/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/fr/history_of_i18n.md +54 -54
- package/blog/fr/how_to_pick_react_i18n_library.md +542 -0
- package/blog/fr/how_to_pick_solid_i18n_library.md +438 -0
- package/blog/fr/how_to_pick_svelte_i18n_library.md +448 -0
- package/blog/fr/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/fr/is_i18next_outdated.md +5 -1
- package/blog/fr/is_next-intl_outdated.md +5 -1
- package/blog/fr/is_vue-i18n_outdated.md +7 -1
- package/blog/fr/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/fr/per-component_vs_centralized_i18n.md +9 -4
- package/blog/fr/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/hi/history_of_i18n.md +54 -54
- package/blog/hi/how_to_pick_react_i18n_library.md +548 -0
- package/blog/hi/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/hi/how_to_pick_svelte_i18n_library.md +448 -0
- package/blog/hi/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/hi/is_i18next_outdated.md +5 -1
- package/blog/hi/is_next-intl_outdated.md +5 -1
- package/blog/hi/is_vue-i18n_outdated.md +7 -1
- package/blog/hi/next-i18next_vs_next-intl_vs_intlayer.md +8 -4
- package/blog/hi/per-component_vs_centralized_i18n.md +9 -4
- package/blog/hi/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/id/history_of_i18n.md +54 -54
- package/blog/id/how_to_pick_react_i18n_library.md +548 -0
- package/blog/id/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/id/how_to_pick_svelte_i18n_library.md +454 -0
- package/blog/id/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/id/is_i18next_outdated.md +5 -1
- package/blog/id/is_next-intl_outdated.md +5 -1
- package/blog/id/is_vue-i18n_outdated.md +7 -1
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/id/per-component_vs_centralized_i18n.md +9 -4
- package/blog/id/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/it/history_of_i18n.md +54 -54
- package/blog/it/how_to_pick_react_i18n_library.md +549 -0
- package/blog/it/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/it/how_to_pick_svelte_i18n_library.md +455 -0
- package/blog/it/how_to_pick_vue_i18n_library.md +449 -0
- package/blog/it/is_i18next_outdated.md +5 -1
- package/blog/it/is_next-intl_outdated.md +5 -1
- package/blog/it/is_vue-i18n_outdated.md +7 -1
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/it/per-component_vs_centralized_i18n.md +9 -4
- package/blog/it/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/ja/history_of_i18n.md +54 -54
- package/blog/ja/how_to_pick_react_i18n_library.md +542 -0
- package/blog/ja/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/ja/how_to_pick_svelte_i18n_library.md +457 -0
- package/blog/ja/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/ja/is_i18next_outdated.md +5 -1
- package/blog/ja/is_next-intl_outdated.md +5 -1
- package/blog/ja/is_vue-i18n_outdated.md +7 -1
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/ja/per-component_vs_centralized_i18n.md +9 -4
- package/blog/ja/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/ko/history_of_i18n.md +54 -54
- package/blog/ko/how_to_pick_react_i18n_library.md +548 -0
- package/blog/ko/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/ko/how_to_pick_svelte_i18n_library.md +454 -0
- package/blog/ko/how_to_pick_vue_i18n_library.md +448 -0
- package/blog/ko/is_i18next_outdated.md +5 -1
- package/blog/ko/is_next-intl_outdated.md +5 -1
- package/blog/ko/is_vue-i18n_outdated.md +7 -1
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/ko/per-component_vs_centralized_i18n.md +9 -4
- package/blog/ko/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/pl/history_of_i18n.md +54 -54
- package/blog/pl/how_to_pick_react_i18n_library.md +549 -0
- package/blog/pl/how_to_pick_solid_i18n_library.md +438 -0
- package/blog/pl/how_to_pick_svelte_i18n_library.md +460 -0
- package/blog/pl/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/pl/is_i18next_outdated.md +5 -1
- package/blog/pl/is_next-intl_outdated.md +5 -1
- package/blog/pl/is_vue-i18n_outdated.md +7 -1
- package/blog/pl/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/pl/per-component_vs_centralized_i18n.md +9 -4
- package/blog/pl/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/pt/history_of_i18n.md +54 -54
- package/blog/pt/how_to_pick_react_i18n_library.md +549 -0
- package/blog/pt/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/pt/how_to_pick_svelte_i18n_library.md +454 -0
- package/blog/pt/how_to_pick_vue_i18n_library.md +448 -0
- package/blog/pt/is_i18next_outdated.md +5 -1
- package/blog/pt/is_next-intl_outdated.md +5 -1
- package/blog/pt/is_vue-i18n_outdated.md +7 -1
- package/blog/pt/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/pt/per-component_vs_centralized_i18n.md +9 -4
- package/blog/pt/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/ru/history_of_i18n.md +54 -54
- package/blog/ru/how_to_pick_react_i18n_library.md +553 -0
- package/blog/ru/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/ru/how_to_pick_svelte_i18n_library.md +459 -0
- package/blog/ru/how_to_pick_vue_i18n_library.md +453 -0
- package/blog/ru/is_i18next_outdated.md +5 -1
- package/blog/ru/is_next-intl_outdated.md +5 -1
- package/blog/ru/is_vue-i18n_outdated.md +7 -1
- package/blog/ru/next-i18next_vs_next-intl_vs_intlayer.md +8 -4
- package/blog/ru/per-component_vs_centralized_i18n.md +9 -4
- package/blog/ru/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/tr/history_of_i18n.md +54 -54
- package/blog/tr/how_to_pick_react_i18n_library.md +548 -0
- package/blog/tr/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/tr/how_to_pick_svelte_i18n_library.md +454 -0
- package/blog/tr/how_to_pick_vue_i18n_library.md +448 -0
- package/blog/tr/is_i18next_outdated.md +5 -1
- package/blog/tr/is_next-intl_outdated.md +5 -1
- package/blog/tr/is_vue-i18n_outdated.md +7 -1
- package/blog/tr/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/tr/per-component_vs_centralized_i18n.md +9 -4
- package/blog/tr/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/uk/history_of_i18n.md +54 -54
- package/blog/uk/how_to_pick_react_i18n_library.md +542 -0
- package/blog/uk/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/uk/how_to_pick_svelte_i18n_library.md +448 -0
- package/blog/uk/how_to_pick_vue_i18n_library.md +443 -0
- package/blog/uk/is_i18next_outdated.md +5 -1
- package/blog/uk/is_next-intl_outdated.md +5 -1
- package/blog/uk/is_vue-i18n_outdated.md +7 -1
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/uk/per-component_vs_centralized_i18n.md +9 -4
- package/blog/uk/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/vi/history_of_i18n.md +54 -54
- package/blog/vi/how_to_pick_react_i18n_library.md +548 -0
- package/blog/vi/how_to_pick_solid_i18n_library.md +438 -0
- package/blog/vi/how_to_pick_svelte_i18n_library.md +448 -0
- package/blog/vi/how_to_pick_vue_i18n_library.md +442 -0
- package/blog/vi/is_i18next_outdated.md +5 -1
- package/blog/vi/is_next-intl_outdated.md +5 -1
- package/blog/vi/is_vue-i18n_outdated.md +7 -1
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/vi/per-component_vs_centralized_i18n.md +9 -4
- package/blog/vi/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/blog/zh/history_of_i18n.md +54 -54
- package/blog/zh/how_to_pick_react_i18n_library.md +548 -0
- package/blog/zh/how_to_pick_solid_i18n_library.md +451 -0
- package/blog/zh/how_to_pick_svelte_i18n_library.md +454 -0
- package/blog/zh/how_to_pick_vue_i18n_library.md +448 -0
- package/blog/zh/is_i18next_outdated.md +5 -1
- package/blog/zh/is_next-intl_outdated.md +5 -1
- package/blog/zh/is_vue-i18n_outdated.md +7 -1
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +9 -5
- package/blog/zh/per-component_vs_centralized_i18n.md +9 -4
- package/blog/zh/react-i18next_vs_react-intl_vs_intlayer.md +5 -1
- package/dist/cjs/generated/blog.entry.cjs +80 -0
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/esm/generated/blog.entry.mjs +80 -0
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/types/generated/blog.entry.d.ts +4 -0
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/docs/ar/bundle_optimization.md +5 -1
- package/docs/ar/how_works_intlayer.md +2 -2
- package/docs/ar/interest_of_intlayer.md +6 -6
- package/docs/ar/intlayer_CMS.md +1 -1
- package/docs/ar/intlayer_with_adonisjs.md +1 -1
- package/docs/ar/intlayer_with_analog.md +1 -1
- package/docs/ar/intlayer_with_angular_19.md +1 -1
- package/docs/ar/intlayer_with_angular_21.md +1 -1
- package/docs/ar/intlayer_with_astro.md +1 -1
- package/docs/ar/intlayer_with_astro_lit.md +1 -1
- package/docs/ar/intlayer_with_astro_preact.md +1 -1
- package/docs/ar/intlayer_with_astro_react.md +1 -1
- package/docs/ar/intlayer_with_astro_solid.md +1 -1
- package/docs/ar/intlayer_with_astro_svelte.md +1 -1
- package/docs/ar/intlayer_with_astro_vanilla.md +1 -1
- package/docs/ar/intlayer_with_astro_vue.md +1 -1
- package/docs/ar/intlayer_with_create_react_app.md +1 -1
- package/docs/ar/intlayer_with_express.md +1 -1
- package/docs/ar/intlayer_with_hono.md +1 -1
- package/docs/ar/intlayer_with_nestjs.md +1 -1
- package/docs/ar/intlayer_with_nextjs_14.md +1 -1
- package/docs/ar/intlayer_with_nextjs_15.md +1 -1
- package/docs/ar/intlayer_with_nextjs_16.md +1 -1
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7.md +1 -1
- package/docs/ar/intlayer_with_vite+preact.md +1 -1
- package/docs/ar/intlayer_with_vite+react.md +1 -1
- package/docs/ar/intlayer_with_vite+vue.md +1 -1
- package/docs/ar/introduction.md +0 -1
- package/docs/ar/readme.md +8 -8
- package/docs/bn/bundle_optimization.md +5 -1
- package/docs/bn/interest_of_intlayer.md +21 -21
- package/docs/bn/intlayer_CMS.md +1 -1
- package/docs/bn/intlayer_with_angular_21.md +1 -1
- package/docs/bn/intlayer_with_hono.md +1 -1
- package/docs/bn/introduction.md +0 -1
- package/docs/cs/bundle_optimization.md +5 -1
- package/docs/cs/interest_of_intlayer.md +6 -6
- package/docs/cs/intlayer_with_angular_21.md +1 -1
- package/docs/cs/intlayer_with_hono.md +1 -1
- package/docs/cs/introduction.md +0 -1
- package/docs/de/bundle_optimization.md +5 -1
- package/docs/de/how_works_intlayer.md +2 -2
- package/docs/de/interest_of_intlayer.md +6 -6
- package/docs/de/intlayer_CMS.md +1 -1
- package/docs/de/intlayer_with_adonisjs.md +1 -1
- package/docs/de/intlayer_with_analog.md +1 -1
- package/docs/de/intlayer_with_angular_19.md +1 -1
- package/docs/de/intlayer_with_angular_21.md +1 -1
- package/docs/de/intlayer_with_astro.md +1 -1
- package/docs/de/intlayer_with_astro_lit.md +1 -1
- package/docs/de/intlayer_with_astro_preact.md +1 -1
- package/docs/de/intlayer_with_astro_react.md +1 -1
- package/docs/de/intlayer_with_astro_solid.md +1 -1
- package/docs/de/intlayer_with_astro_svelte.md +1 -1
- package/docs/de/intlayer_with_astro_vanilla.md +1 -1
- package/docs/de/intlayer_with_astro_vue.md +1 -1
- package/docs/de/intlayer_with_create_react_app.md +1 -1
- package/docs/de/intlayer_with_express.md +1 -1
- package/docs/de/intlayer_with_hono.md +1 -1
- package/docs/de/intlayer_with_nestjs.md +1 -1
- package/docs/de/intlayer_with_nextjs_14.md +1 -1
- package/docs/de/intlayer_with_nextjs_15.md +1 -1
- package/docs/de/intlayer_with_nextjs_16.md +1 -1
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_vite+preact.md +1 -1
- package/docs/de/intlayer_with_vite+react.md +1 -1
- package/docs/de/intlayer_with_vite+vue.md +1 -1
- package/docs/de/introduction.md +0 -1
- package/docs/de/readme.md +8 -8
- package/docs/en/bundle_optimization.md +5 -1
- package/docs/en/how_works_intlayer.md +2 -2
- package/docs/en/interest_of_intlayer.md +6 -6
- package/docs/en/intlayer_CMS.md +1 -1
- package/docs/en/intlayer_with_adonisjs.md +1 -1
- package/docs/en/intlayer_with_analog.md +1 -1
- package/docs/en/intlayer_with_angular_19.md +1 -1
- package/docs/en/intlayer_with_angular_21.md +1 -1
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_astro_lit.md +1 -1
- package/docs/en/intlayer_with_astro_preact.md +1 -1
- package/docs/en/intlayer_with_astro_react.md +1 -1
- package/docs/en/intlayer_with_astro_solid.md +1 -1
- package/docs/en/intlayer_with_astro_svelte.md +1 -1
- package/docs/en/intlayer_with_astro_vanilla.md +1 -1
- package/docs/en/intlayer_with_astro_vue.md +1 -1
- package/docs/en/intlayer_with_create_react_app.md +1 -1
- package/docs/en/intlayer_with_express.md +1 -1
- package/docs/en/intlayer_with_hono.md +1 -1
- package/docs/en/intlayer_with_nestjs.md +1 -1
- package/docs/en/intlayer_with_nextjs_14.md +1 -1
- package/docs/en/intlayer_with_nextjs_15.md +1 -1
- package/docs/en/intlayer_with_nextjs_16.md +1 -1
- package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en/intlayer_with_vite+preact.md +1 -1
- package/docs/en/intlayer_with_vite+react.md +1 -1
- package/docs/en/intlayer_with_vite+vue.md +1 -1
- package/docs/en/introduction.md +0 -1
- package/docs/en/readme.md +8 -8
- package/docs/en-GB/bundle_optimization.md +5 -1
- package/docs/en-GB/how_works_intlayer.md +2 -2
- package/docs/en-GB/interest_of_intlayer.md +6 -6
- package/docs/en-GB/intlayer_CMS.md +1 -1
- package/docs/en-GB/intlayer_with_adonisjs.md +1 -1
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular_19.md +1 -1
- package/docs/en-GB/intlayer_with_angular_21.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_astro_lit.md +1 -1
- package/docs/en-GB/intlayer_with_astro_preact.md +1 -1
- package/docs/en-GB/intlayer_with_astro_react.md +1 -1
- package/docs/en-GB/intlayer_with_astro_solid.md +1 -1
- package/docs/en-GB/intlayer_with_astro_svelte.md +1 -1
- package/docs/en-GB/intlayer_with_astro_vanilla.md +1 -1
- package/docs/en-GB/intlayer_with_astro_vue.md +1 -1
- package/docs/en-GB/intlayer_with_create_react_app.md +1 -1
- package/docs/en-GB/intlayer_with_express.md +1 -1
- package/docs/en-GB/intlayer_with_hono.md +1 -1
- package/docs/en-GB/intlayer_with_nestjs.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_14.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_15.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_16.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +1 -1
- package/docs/en-GB/introduction.md +0 -1
- package/docs/en-GB/readme.md +8 -8
- package/docs/es/bundle_optimization.md +5 -1
- package/docs/es/how_works_intlayer.md +2 -2
- package/docs/es/interest_of_intlayer.md +6 -6
- package/docs/es/intlayer_CMS.md +1 -1
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_analog.md +1 -1
- package/docs/es/intlayer_with_angular_19.md +1 -1
- package/docs/es/intlayer_with_angular_21.md +1 -1
- package/docs/es/intlayer_with_astro.md +1 -1
- package/docs/es/intlayer_with_astro_lit.md +1 -1
- package/docs/es/intlayer_with_astro_preact.md +1 -1
- package/docs/es/intlayer_with_astro_react.md +1 -1
- package/docs/es/intlayer_with_astro_solid.md +1 -1
- package/docs/es/intlayer_with_astro_svelte.md +1 -1
- package/docs/es/intlayer_with_astro_vanilla.md +1 -1
- package/docs/es/intlayer_with_astro_vue.md +1 -1
- package/docs/es/intlayer_with_create_react_app.md +1 -1
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_14.md +1 -1
- package/docs/es/intlayer_with_nextjs_15.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +1 -1
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_vite+preact.md +1 -1
- package/docs/es/intlayer_with_vite+react.md +1 -1
- package/docs/es/intlayer_with_vite+vue.md +1 -1
- package/docs/es/introduction.md +0 -1
- package/docs/es/readme.md +8 -8
- package/docs/fr/bundle_optimization.md +5 -1
- package/docs/fr/how_works_intlayer.md +2 -2
- package/docs/fr/interest_of_intlayer.md +6 -6
- package/docs/fr/intlayer_CMS.md +1 -1
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_analog.md +1 -1
- package/docs/fr/intlayer_with_angular_19.md +1 -1
- package/docs/fr/intlayer_with_angular_21.md +1 -1
- package/docs/fr/intlayer_with_astro.md +1 -1
- package/docs/fr/intlayer_with_astro_lit.md +1 -1
- package/docs/fr/intlayer_with_astro_preact.md +1 -1
- package/docs/fr/intlayer_with_astro_react.md +1 -1
- package/docs/fr/intlayer_with_astro_solid.md +1 -1
- package/docs/fr/intlayer_with_astro_svelte.md +1 -1
- package/docs/fr/intlayer_with_astro_vanilla.md +1 -1
- package/docs/fr/intlayer_with_astro_vue.md +1 -1
- package/docs/fr/intlayer_with_create_react_app.md +1 -1
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_14.md +1 -1
- package/docs/fr/intlayer_with_nextjs_15.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +1 -1
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7.md +2 -2
- package/docs/fr/intlayer_with_vite+preact.md +1 -1
- package/docs/fr/intlayer_with_vite+react.md +1 -1
- package/docs/fr/intlayer_with_vite+vue.md +1 -1
- package/docs/fr/introduction.md +0 -1
- package/docs/fr/readme.md +8 -8
- package/docs/hi/bundle_optimization.md +5 -1
- package/docs/hi/how_works_intlayer.md +2 -2
- package/docs/hi/interest_of_intlayer.md +6 -6
- package/docs/hi/intlayer_CMS.md +1 -1
- package/docs/hi/intlayer_with_adonisjs.md +1 -1
- package/docs/hi/intlayer_with_analog.md +1 -1
- package/docs/hi/intlayer_with_angular_19.md +1 -1
- package/docs/hi/intlayer_with_angular_21.md +1 -1
- package/docs/hi/intlayer_with_astro.md +1 -1
- package/docs/hi/intlayer_with_astro_lit.md +1 -1
- package/docs/hi/intlayer_with_astro_preact.md +1 -1
- package/docs/hi/intlayer_with_astro_react.md +1 -1
- package/docs/hi/intlayer_with_astro_solid.md +1 -1
- package/docs/hi/intlayer_with_astro_svelte.md +1 -1
- package/docs/hi/intlayer_with_astro_vanilla.md +1 -1
- package/docs/hi/intlayer_with_astro_vue.md +1 -1
- package/docs/hi/intlayer_with_create_react_app.md +1 -1
- package/docs/hi/intlayer_with_express.md +1 -1
- package/docs/hi/intlayer_with_hono.md +1 -1
- package/docs/hi/intlayer_with_nestjs.md +1 -1
- package/docs/hi/intlayer_with_nextjs_14.md +1 -1
- package/docs/hi/intlayer_with_nextjs_15.md +1 -1
- package/docs/hi/intlayer_with_nextjs_16.md +1 -1
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7.md +1 -1
- package/docs/hi/intlayer_with_vite+preact.md +1 -1
- package/docs/hi/intlayer_with_vite+react.md +1 -1
- package/docs/hi/intlayer_with_vite+vue.md +1 -1
- package/docs/hi/introduction.md +0 -1
- package/docs/hi/readme.md +8 -8
- package/docs/id/bundle_optimization.md +5 -1
- package/docs/id/how_works_intlayer.md +2 -2
- package/docs/id/interest_of_intlayer.md +6 -6
- package/docs/id/intlayer_CMS.md +1 -1
- package/docs/id/intlayer_with_adonisjs.md +1 -1
- package/docs/id/intlayer_with_analog.md +1 -1
- package/docs/id/intlayer_with_angular_19.md +1 -1
- package/docs/id/intlayer_with_angular_21.md +1 -1
- package/docs/id/intlayer_with_astro.md +1 -1
- package/docs/id/intlayer_with_astro_lit.md +1 -1
- package/docs/id/intlayer_with_astro_preact.md +1 -1
- package/docs/id/intlayer_with_astro_react.md +1 -1
- package/docs/id/intlayer_with_astro_solid.md +1 -1
- package/docs/id/intlayer_with_astro_svelte.md +1 -1
- package/docs/id/intlayer_with_astro_vanilla.md +1 -1
- package/docs/id/intlayer_with_astro_vue.md +1 -1
- package/docs/id/intlayer_with_create_react_app.md +1 -1
- package/docs/id/intlayer_with_express.md +1 -1
- package/docs/id/intlayer_with_hono.md +1 -1
- package/docs/id/intlayer_with_nestjs.md +1 -1
- package/docs/id/intlayer_with_nextjs_14.md +1 -1
- package/docs/id/intlayer_with_nextjs_15.md +1 -1
- package/docs/id/intlayer_with_nextjs_16.md +1 -1
- package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/id/intlayer_with_react_router_v7.md +1 -1
- package/docs/id/intlayer_with_vite+preact.md +1 -1
- package/docs/id/intlayer_with_vite+react.md +1 -1
- package/docs/id/intlayer_with_vite+vue.md +1 -1
- package/docs/id/introduction.md +0 -1
- package/docs/id/readme.md +8 -8
- package/docs/it/bundle_optimization.md +5 -1
- package/docs/it/how_works_intlayer.md +2 -2
- package/docs/it/interest_of_intlayer.md +6 -6
- package/docs/it/intlayer_CMS.md +1 -1
- package/docs/it/intlayer_with_adonisjs.md +1 -1
- package/docs/it/intlayer_with_analog.md +1 -1
- package/docs/it/intlayer_with_angular_19.md +1 -1
- package/docs/it/intlayer_with_angular_21.md +1 -1
- package/docs/it/intlayer_with_astro.md +1 -1
- package/docs/it/intlayer_with_astro_lit.md +1 -1
- package/docs/it/intlayer_with_astro_preact.md +1 -1
- package/docs/it/intlayer_with_astro_react.md +1 -1
- package/docs/it/intlayer_with_astro_solid.md +1 -1
- package/docs/it/intlayer_with_astro_svelte.md +1 -1
- package/docs/it/intlayer_with_astro_vanilla.md +1 -1
- package/docs/it/intlayer_with_astro_vue.md +1 -1
- package/docs/it/intlayer_with_create_react_app.md +1 -1
- package/docs/it/intlayer_with_express.md +1 -1
- package/docs/it/intlayer_with_hono.md +1 -1
- package/docs/it/intlayer_with_nestjs.md +1 -1
- package/docs/it/intlayer_with_nextjs_14.md +1 -1
- package/docs/it/intlayer_with_nextjs_15.md +1 -1
- package/docs/it/intlayer_with_nextjs_16.md +1 -1
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_react_router_v7.md +2 -2
- package/docs/it/intlayer_with_vite+preact.md +1 -1
- package/docs/it/intlayer_with_vite+react.md +1 -1
- package/docs/it/intlayer_with_vite+vue.md +1 -1
- package/docs/it/introduction.md +0 -1
- package/docs/it/readme.md +8 -8
- package/docs/ja/bundle_optimization.md +5 -1
- package/docs/ja/how_works_intlayer.md +2 -2
- package/docs/ja/interest_of_intlayer.md +6 -6
- package/docs/ja/intlayer_CMS.md +1 -1
- package/docs/ja/intlayer_with_adonisjs.md +1 -1
- package/docs/ja/intlayer_with_analog.md +1 -1
- package/docs/ja/intlayer_with_angular_19.md +1 -1
- package/docs/ja/intlayer_with_angular_21.md +1 -1
- package/docs/ja/intlayer_with_astro.md +1 -1
- package/docs/ja/intlayer_with_astro_lit.md +1 -1
- package/docs/ja/intlayer_with_astro_preact.md +1 -1
- package/docs/ja/intlayer_with_astro_react.md +1 -1
- package/docs/ja/intlayer_with_astro_solid.md +1 -1
- package/docs/ja/intlayer_with_astro_svelte.md +1 -1
- package/docs/ja/intlayer_with_astro_vanilla.md +1 -1
- package/docs/ja/intlayer_with_astro_vue.md +1 -1
- package/docs/ja/intlayer_with_create_react_app.md +1 -1
- package/docs/ja/intlayer_with_express.md +1 -1
- package/docs/ja/intlayer_with_hono.md +1 -1
- package/docs/ja/intlayer_with_nestjs.md +1 -1
- package/docs/ja/intlayer_with_nextjs_14.md +1 -1
- package/docs/ja/intlayer_with_nextjs_15.md +1 -1
- package/docs/ja/intlayer_with_nextjs_16.md +1 -1
- package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ja/intlayer_with_vite+preact.md +1 -1
- package/docs/ja/intlayer_with_vite+react.md +1 -1
- package/docs/ja/intlayer_with_vite+vue.md +1 -1
- package/docs/ja/introduction.md +0 -1
- package/docs/ja/readme.md +8 -8
- package/docs/ko/bundle_optimization.md +5 -1
- package/docs/ko/how_works_intlayer.md +2 -2
- package/docs/ko/interest_of_intlayer.md +6 -6
- package/docs/ko/intlayer_CMS.md +1 -1
- package/docs/ko/intlayer_with_adonisjs.md +1 -1
- package/docs/ko/intlayer_with_analog.md +1 -1
- package/docs/ko/intlayer_with_angular_19.md +1 -1
- package/docs/ko/intlayer_with_angular_21.md +1 -1
- package/docs/ko/intlayer_with_astro.md +1 -1
- package/docs/ko/intlayer_with_astro_lit.md +1 -1
- package/docs/ko/intlayer_with_astro_preact.md +1 -1
- package/docs/ko/intlayer_with_astro_react.md +1 -1
- package/docs/ko/intlayer_with_astro_solid.md +1 -1
- package/docs/ko/intlayer_with_astro_svelte.md +1 -1
- package/docs/ko/intlayer_with_astro_vanilla.md +1 -1
- package/docs/ko/intlayer_with_astro_vue.md +1 -1
- package/docs/ko/intlayer_with_create_react_app.md +1 -1
- package/docs/ko/intlayer_with_express.md +1 -1
- package/docs/ko/intlayer_with_hono.md +1 -1
- package/docs/ko/intlayer_with_nestjs.md +1 -1
- package/docs/ko/intlayer_with_nextjs_14.md +1 -1
- package/docs/ko/intlayer_with_nextjs_15.md +1 -1
- package/docs/ko/intlayer_with_nextjs_16.md +1 -1
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_react_router_v7.md +2 -2
- package/docs/ko/intlayer_with_vite+preact.md +1 -1
- package/docs/ko/intlayer_with_vite+react.md +1 -1
- package/docs/ko/intlayer_with_vite+vue.md +1 -1
- package/docs/ko/introduction.md +0 -1
- package/docs/ko/readme.md +8 -8
- package/docs/nl/bundle_optimization.md +5 -1
- package/docs/nl/interest_of_intlayer.md +6 -6
- package/docs/nl/intlayer_with_angular_21.md +1 -1
- package/docs/nl/intlayer_with_hono.md +1 -1
- package/docs/nl/introduction.md +0 -1
- package/docs/pl/bundle_optimization.md +5 -1
- package/docs/pl/how_works_intlayer.md +2 -2
- package/docs/pl/interest_of_intlayer.md +6 -6
- package/docs/pl/intlayer_CMS.md +1 -1
- package/docs/pl/intlayer_with_adonisjs.md +1 -1
- package/docs/pl/intlayer_with_analog.md +1 -1
- package/docs/pl/intlayer_with_angular_19.md +1 -1
- package/docs/pl/intlayer_with_angular_21.md +1 -1
- package/docs/pl/intlayer_with_astro.md +1 -1
- package/docs/pl/intlayer_with_astro_lit.md +1 -1
- package/docs/pl/intlayer_with_astro_preact.md +1 -1
- package/docs/pl/intlayer_with_astro_react.md +1 -1
- package/docs/pl/intlayer_with_astro_solid.md +1 -1
- package/docs/pl/intlayer_with_astro_svelte.md +1 -1
- package/docs/pl/intlayer_with_astro_vanilla.md +1 -1
- package/docs/pl/intlayer_with_astro_vue.md +1 -1
- package/docs/pl/intlayer_with_create_react_app.md +1 -1
- package/docs/pl/intlayer_with_express.md +1 -1
- package/docs/pl/intlayer_with_hono.md +1 -1
- package/docs/pl/intlayer_with_nestjs.md +1 -1
- package/docs/pl/intlayer_with_nextjs_14.md +1 -1
- package/docs/pl/intlayer_with_nextjs_15.md +1 -1
- package/docs/pl/intlayer_with_nextjs_16.md +1 -1
- package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pl/intlayer_with_react_router_v7.md +2 -2
- package/docs/pl/intlayer_with_vite+preact.md +1 -1
- package/docs/pl/intlayer_with_vite+react.md +1 -1
- package/docs/pl/intlayer_with_vite+vue.md +1 -1
- package/docs/pl/introduction.md +0 -1
- package/docs/pl/readme.md +8 -8
- package/docs/pt/bundle_optimization.md +5 -1
- package/docs/pt/how_works_intlayer.md +2 -2
- package/docs/pt/interest_of_intlayer.md +6 -6
- package/docs/pt/intlayer_CMS.md +1 -1
- package/docs/pt/intlayer_with_adonisjs.md +1 -1
- package/docs/pt/intlayer_with_analog.md +1 -1
- package/docs/pt/intlayer_with_angular_19.md +1 -1
- package/docs/pt/intlayer_with_angular_21.md +1 -1
- package/docs/pt/intlayer_with_astro.md +1 -1
- package/docs/pt/intlayer_with_astro_lit.md +1 -1
- package/docs/pt/intlayer_with_astro_preact.md +1 -1
- package/docs/pt/intlayer_with_astro_react.md +1 -1
- package/docs/pt/intlayer_with_astro_solid.md +1 -1
- package/docs/pt/intlayer_with_astro_svelte.md +1 -1
- package/docs/pt/intlayer_with_astro_vanilla.md +1 -1
- package/docs/pt/intlayer_with_astro_vue.md +1 -1
- package/docs/pt/intlayer_with_create_react_app.md +1 -1
- package/docs/pt/intlayer_with_express.md +1 -1
- package/docs/pt/intlayer_with_hono.md +1 -1
- package/docs/pt/intlayer_with_nestjs.md +1 -1
- package/docs/pt/intlayer_with_nextjs_14.md +1 -1
- package/docs/pt/intlayer_with_nextjs_15.md +1 -1
- package/docs/pt/intlayer_with_nextjs_16.md +1 -1
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7.md +2 -2
- package/docs/pt/intlayer_with_vite+preact.md +1 -1
- package/docs/pt/intlayer_with_vite+react.md +1 -1
- package/docs/pt/intlayer_with_vite+vue.md +1 -1
- package/docs/pt/introduction.md +0 -1
- package/docs/pt/readme.md +8 -8
- package/docs/ru/bundle_optimization.md +5 -1
- package/docs/ru/how_works_intlayer.md +2 -2
- package/docs/ru/interest_of_intlayer.md +6 -6
- package/docs/ru/intlayer_CMS.md +1 -1
- package/docs/ru/intlayer_with_adonisjs.md +1 -1
- package/docs/ru/intlayer_with_analog.md +1 -1
- package/docs/ru/intlayer_with_angular_19.md +1 -1
- package/docs/ru/intlayer_with_angular_21.md +1 -1
- package/docs/ru/intlayer_with_astro.md +1 -1
- package/docs/ru/intlayer_with_astro_lit.md +1 -1
- package/docs/ru/intlayer_with_astro_preact.md +1 -1
- package/docs/ru/intlayer_with_astro_react.md +1 -1
- package/docs/ru/intlayer_with_astro_solid.md +1 -1
- package/docs/ru/intlayer_with_astro_svelte.md +1 -1
- package/docs/ru/intlayer_with_astro_vanilla.md +1 -1
- package/docs/ru/intlayer_with_astro_vue.md +1 -1
- package/docs/ru/intlayer_with_create_react_app.md +1 -1
- package/docs/ru/intlayer_with_express.md +1 -1
- package/docs/ru/intlayer_with_hono.md +1 -1
- package/docs/ru/intlayer_with_nestjs.md +1 -1
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_15.md +1 -1
- package/docs/ru/intlayer_with_nextjs_16.md +1 -1
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7.md +2 -2
- package/docs/ru/intlayer_with_vite+preact.md +1 -1
- package/docs/ru/intlayer_with_vite+react.md +1 -1
- package/docs/ru/intlayer_with_vite+vue.md +1 -1
- package/docs/ru/introduction.md +0 -1
- package/docs/ru/readme.md +8 -8
- package/docs/tr/bundle_optimization.md +5 -1
- package/docs/tr/how_works_intlayer.md +2 -2
- package/docs/tr/interest_of_intlayer.md +6 -6
- package/docs/tr/intlayer_CMS.md +1 -1
- package/docs/tr/intlayer_with_adonisjs.md +1 -1
- package/docs/tr/intlayer_with_analog.md +1 -1
- package/docs/tr/intlayer_with_angular_19.md +1 -1
- package/docs/tr/intlayer_with_angular_21.md +1 -1
- package/docs/tr/intlayer_with_astro.md +1 -1
- package/docs/tr/intlayer_with_astro_lit.md +1 -1
- package/docs/tr/intlayer_with_astro_preact.md +1 -1
- package/docs/tr/intlayer_with_astro_react.md +1 -1
- package/docs/tr/intlayer_with_astro_solid.md +1 -1
- package/docs/tr/intlayer_with_astro_svelte.md +1 -1
- package/docs/tr/intlayer_with_astro_vanilla.md +1 -1
- package/docs/tr/intlayer_with_astro_vue.md +1 -1
- package/docs/tr/intlayer_with_create_react_app.md +1 -1
- package/docs/tr/intlayer_with_express.md +1 -1
- package/docs/tr/intlayer_with_hono.md +1 -1
- package/docs/tr/intlayer_with_nestjs.md +1 -1
- package/docs/tr/intlayer_with_nextjs_14.md +1 -1
- package/docs/tr/intlayer_with_nextjs_15.md +1 -1
- package/docs/tr/intlayer_with_nextjs_16.md +1 -1
- package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/tr/intlayer_with_react_router_v7.md +1 -1
- package/docs/tr/intlayer_with_vite+preact.md +1 -1
- package/docs/tr/intlayer_with_vite+react.md +1 -1
- package/docs/tr/intlayer_with_vite+vue.md +1 -1
- package/docs/tr/introduction.md +0 -1
- package/docs/tr/readme.md +8 -8
- package/docs/uk/bundle_optimization.md +5 -1
- package/docs/uk/how_works_intlayer.md +2 -2
- package/docs/uk/interest_of_intlayer.md +6 -6
- package/docs/uk/intlayer_CMS.md +1 -1
- package/docs/uk/intlayer_with_adonisjs.md +1 -1
- package/docs/uk/intlayer_with_analog.md +1 -1
- package/docs/uk/intlayer_with_angular_19.md +1 -1
- package/docs/uk/intlayer_with_angular_21.md +1 -1
- package/docs/uk/intlayer_with_astro.md +1 -1
- package/docs/uk/intlayer_with_astro_lit.md +1 -1
- package/docs/uk/intlayer_with_astro_preact.md +1 -1
- package/docs/uk/intlayer_with_astro_react.md +1 -1
- package/docs/uk/intlayer_with_astro_solid.md +1 -1
- package/docs/uk/intlayer_with_astro_svelte.md +1 -1
- package/docs/uk/intlayer_with_astro_vanilla.md +1 -1
- package/docs/uk/intlayer_with_astro_vue.md +1 -1
- package/docs/uk/intlayer_with_create_react_app.md +1 -1
- package/docs/uk/intlayer_with_express.md +1 -1
- package/docs/uk/intlayer_with_hono.md +1 -1
- package/docs/uk/intlayer_with_nestjs.md +1 -1
- package/docs/uk/intlayer_with_nextjs_14.md +1 -1
- package/docs/uk/intlayer_with_nextjs_15.md +1 -1
- package/docs/uk/intlayer_with_nextjs_16.md +1 -1
- package/docs/uk/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/uk/intlayer_with_react_router_v7.md +1 -1
- package/docs/uk/intlayer_with_vite+preact.md +1 -1
- package/docs/uk/intlayer_with_vite+react.md +1 -1
- package/docs/uk/intlayer_with_vite+vue.md +1 -1
- package/docs/uk/introduction.md +0 -1
- package/docs/uk/readme.md +8 -8
- package/docs/ur/bundle_optimization.md +5 -1
- package/docs/ur/interest_of_intlayer.md +6 -6
- package/docs/ur/intlayer_with_angular_21.md +1 -1
- package/docs/ur/intlayer_with_hono.md +1 -1
- package/docs/ur/introduction.md +0 -1
- package/docs/vi/bundle_optimization.md +5 -1
- package/docs/vi/how_works_intlayer.md +2 -2
- package/docs/vi/interest_of_intlayer.md +6 -6
- package/docs/vi/intlayer_CMS.md +1 -1
- package/docs/vi/intlayer_with_adonisjs.md +1 -1
- package/docs/vi/intlayer_with_analog.md +1 -1
- package/docs/vi/intlayer_with_angular_19.md +1 -1
- package/docs/vi/intlayer_with_angular_21.md +1 -1
- package/docs/vi/intlayer_with_astro.md +1 -1
- package/docs/vi/intlayer_with_astro_lit.md +1 -1
- package/docs/vi/intlayer_with_astro_preact.md +1 -1
- package/docs/vi/intlayer_with_astro_react.md +1 -1
- package/docs/vi/intlayer_with_astro_solid.md +1 -1
- package/docs/vi/intlayer_with_astro_svelte.md +1 -1
- package/docs/vi/intlayer_with_astro_vanilla.md +1 -1
- package/docs/vi/intlayer_with_astro_vue.md +1 -1
- package/docs/vi/intlayer_with_create_react_app.md +1 -1
- package/docs/vi/intlayer_with_express.md +1 -1
- package/docs/vi/intlayer_with_hono.md +1 -1
- package/docs/vi/intlayer_with_nestjs.md +1 -1
- package/docs/vi/intlayer_with_nextjs_14.md +1 -1
- package/docs/vi/intlayer_with_nextjs_15.md +1 -1
- package/docs/vi/intlayer_with_nextjs_16.md +1 -1
- package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/vi/intlayer_with_vite+preact.md +1 -1
- package/docs/vi/intlayer_with_vite+react.md +1 -1
- package/docs/vi/intlayer_with_vite+vue.md +1 -1
- package/docs/vi/introduction.md +0 -1
- package/docs/vi/readme.md +8 -8
- package/docs/zh/bundle_optimization.md +5 -1
- package/docs/zh/how_works_intlayer.md +2 -2
- package/docs/zh/interest_of_intlayer.md +6 -6
- package/docs/zh/intlayer_CMS.md +1 -1
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_analog.md +1 -1
- package/docs/zh/intlayer_with_angular_19.md +1 -1
- package/docs/zh/intlayer_with_angular_21.md +1 -1
- package/docs/zh/intlayer_with_astro.md +1 -1
- package/docs/zh/intlayer_with_astro_lit.md +1 -1
- package/docs/zh/intlayer_with_astro_preact.md +1 -1
- package/docs/zh/intlayer_with_astro_react.md +1 -1
- package/docs/zh/intlayer_with_astro_solid.md +1 -1
- package/docs/zh/intlayer_with_astro_svelte.md +1 -1
- package/docs/zh/intlayer_with_astro_vanilla.md +1 -1
- package/docs/zh/intlayer_with_astro_vue.md +1 -1
- package/docs/zh/intlayer_with_create_react_app.md +1 -1
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_14.md +1 -1
- package/docs/zh/intlayer_with_nextjs_15.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +1 -1
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7.md +2 -2
- package/docs/zh/intlayer_with_vite+preact.md +1 -1
- package/docs/zh/intlayer_with_vite+react.md +1 -1
- package/docs/zh/intlayer_with_vite+vue.md +1 -1
- package/docs/zh/introduction.md +0 -1
- package/docs/zh/readme.md +8 -8
- package/docs/zh-TW/bundle_optimization.md +5 -1
- package/docs/zh-TW/interest_of_intlayer.md +6 -6
- package/docs/zh-TW/intlayer_with_angular_21.md +1 -1
- package/docs/zh-TW/introduction.md +0 -1
- package/package.json +8 -7
- package/src/generated/blog.entry.ts +80 -0
- package/blog/en/___per-component_vs_centralized_i18n.md +0 -255
- package/blog/pl/___per-component_vs_centralized_i18n.md +0 -100
- package/docs/en/benchmark/___NOTE.md +0 -101
- package/docs/en/benchmark/___nextjs.md +0 -197
- package/docs/en/benchmark/___solid.md +0 -12
- package/docs/en/benchmark/___svelte.md +0 -16
- package/docs/en/benchmark/___tanstack.md +0 -190
- package/docs/en/benchmark/___vue.md +0 -7
- package/docs/pl/benchmark/___NOTE.md +0 -101
- package/docs/pl/benchmark/___nextjs.md +0 -198
- package/docs/pl/benchmark/___solid.md +0 -36
- package/docs/pl/benchmark/___svelte.md +0 -36
- package/docs/pl/benchmark/___tanstack.md +0 -36
- package/docs/pl/benchmark/___vue.md +0 -36
|
@@ -49,7 +49,7 @@ author: aymericzip
|
|
|
49
49
|
|
|
50
50
|
本文梳理了 2011 至 2026 年间的技术变迁:剖析每一代工具所试图攻克的问题、各自的得失,以及前端整体架构演进对当今国际化实现的深远影响。
|
|
51
51
|
|
|
52
|
-

|
|
53
53
|
|
|
54
54
|
## 目录
|
|
55
55
|
|
|
@@ -149,87 +149,87 @@ Jan Mühlemann 为快速成长的 React 社区带来了 `i18next` 适配,早
|
|
|
149
149
|
|
|
150
150
|
<Tab label="JavaScript 基础层" value="javascript">
|
|
151
151
|
|
|
152
|
-
| 首次发布 | 工具类库 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
153
|
-
| ------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
154
|
-
| 2012 年 1 月 | `i18next` | 在不绑定特定框架的前提下,统一浏览器与 Node.js 端的运行时键值字典查找。 | 采用插件化运行时架构,将翻译核心逻辑与加载器、环境检测器及缓存机制解耦。 |
|
|
155
|
-
| 2021 年 2 月 | `typesafe-i18n` | 避免因未约束类型的字符串键导致的运行时静默报错和插值异常。 | 直接从翻译对象生成强类型翻译函数,运行时零额外依赖。 |
|
|
156
|
-
| 2023 年 10 月 | `paraglide` (`@inlang/paraglide-js`) | 消除运行时字典遍历、沉重的语法解析器以及客户端包体积膨胀。 | 将消息直接编译为纯 ECMAScript 模块和易于 Tree-shaking 优化的原生 JavaScript 函数。 |
|
|
157
|
-
| 2024
|
|
158
|
-
| 2025 年 6 月 | `wuchale` | 消除开发阶段手动剥离文本字符串并为每条内容生造翻译键名的繁琐步骤。 | 基于 AST 抽象语法树在构建期自动捕获行内文本,并直接编译为无包装层的本地化函数。 |
|
|
152
|
+
| 首次发布 | 工具类库 | 作者 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
153
|
+
| ------------- | ------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
|
|
154
|
+
| 2012 年 1 月 | `i18next` | Jan Mühlemann (`@jamuhl`) | 在不绑定特定框架的前提下,统一浏览器与 Node.js 端的运行时键值字典查找。 | 采用插件化运行时架构,将翻译核心逻辑与加载器、环境检测器及缓存机制解耦。 |
|
|
155
|
+
| 2021 年 2 月 | `typesafe-i18n` | Ivan Hofer (`@ivanhofer`) | 避免因未约束类型的字符串键导致的运行时静默报错和插值异常。 | 直接从翻译对象生成强类型翻译函数,运行时零额外依赖。 |
|
|
156
|
+
| 2023 年 10 月 | `paraglide` (`@inlang/paraglide-js`) | Samuel Stroschein (`@samuelstroschein`) / Inlang (`@inlang`) | 消除运行时字典遍历、沉重的语法解析器以及客户端包体积膨胀。 | 将消息直接编译为纯 ECMAScript 模块和易于 Tree-shaking 优化的原生 JavaScript 函数。 |
|
|
157
|
+
| 2024年8月 | `intlayer` | Aymeric Pineau (`@aymericzip`) | 替换难以维护的大型命名空间,杜绝跨页面文案泄露,降低团队 Git 合并冲突,并补齐 TypeScript 时代的类型安全短板。 | 将 `.content` 声明文件与组件代码就近组织以实现精细拆分,自动生成 TypeScript 类型推导,内建可视化 CMS 与基于 AI 的 CLI 翻译工具。 |
|
|
158
|
+
| 2025 年 6 月 | `wuchale` | Kidus Adugna (`@K1DV5`) | 消除开发阶段手动剥离文本字符串并为每条内容生造翻译键名的繁琐步骤。 | 基于 AST 抽象语法树在构建期自动捕获行内文本,并直接编译为无包装层的本地化函数。 |
|
|
159
159
|
|
|
160
160
|
</Tab>
|
|
161
161
|
|
|
162
162
|
<Tab label="React" value="react">
|
|
163
163
|
|
|
164
|
-
| 首次发布 | 工具类库 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
165
|
-
| ------------- | ---------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
166
|
-
| 2014 年 6 月 | `react-intl` | 统一 React 中数字、日期、货币以及复杂复数语法的格式化规范。 | 提供遵循 ICU MessageFormat 和 ECMA-402 规范的声明式组件(`<FormattedMessage>`、`<FormattedDate>`)。 |
|
|
167
|
-
| 2015 年 12 月 | `react-i18next` | 为 React 提供贴合组件声明习惯且支持响应式刷新状态的 `i18next` 绑定。 | 伴随 React 持续演进,从早期的 HOC 架构迭代至 `<Trans>` JSX 插值组件与 `useTranslation` Hook。 |
|
|
168
|
-
| 2018 年 1 月 | `@lingui/react` | 减少运行时 ICU 语法解析器对客户端包体积造成的性能负担。 | 利用 Babel/SWC 编译宏,在构建时将 `<Trans>` 和 `t` 预编译为体积小巧的索引数组。 |
|
|
169
|
-
| 2020 年 12 月 | `use-intl` | 为 React 打造轻量、以 Hook 为核心并深度整合类型安全的现代化方案。 | 推出体验流畅的 `useTranslations` 与 `useFormatter` Hook,提供全面的 TypeScript 类型约束。 |
|
|
170
|
-
| 2021 年 2 月 | `@tolgee/react` | 缩短开发者、翻译人员与产品设计之间的沟通与反馈链路。 | 支持浏览器内的上下文行内编辑,用户可通过 Alt 键点击文案即时修改并自动生成界面快照。 |
|
|
171
|
-
| 2024
|
|
172
|
-
| 2024 年 7 月 | `gt-react` | 自动化人工导出翻译文件、交接流转及持续维护的繁复流程。 | 基于云原生体系,通过机器翻译流水线在 React 组件内直接实现由 AI 驱动的自动化本地化。 |
|
|
173
|
-
| 2025
|
|
164
|
+
| 首次发布 | 工具类库 | 作者 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
165
|
+
| ------------- | ---------------- | ------------------------------ | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
|
|
166
|
+
| 2014 年 6 月 | `react-intl` | Yahoo! / FormatJS | 统一 React 中数字、日期、货币以及复杂复数语法的格式化规范。 | 提供遵循 ICU MessageFormat 和 ECMA-402 规范的声明式组件(`<FormattedMessage>`、`<FormattedDate>`)。 |
|
|
167
|
+
| 2015 年 12 月 | `react-i18next` | Jan Mühlemann (`@jamuhl`) | 为 React 提供贴合组件声明习惯且支持响应式刷新状态的 `i18next` 绑定。 | 伴随 React 持续演进,从早期的 HOC 架构迭代至 `<Trans>` JSX 插值组件与 `useTranslation` Hook。 |
|
|
168
|
+
| 2018 年 1 月 | `@lingui/react` | Tomáš Ehrlich (`@tricoder42`) | 减少运行时 ICU 语法解析器对客户端包体积造成的性能负担。 | 利用 Babel/SWC 编译宏,在构建时将 `<Trans>` 和 `t` 预编译为体积小巧的索引数组。 |
|
|
169
|
+
| 2020 年 12 月 | `use-intl` | Jan Amann (`@amannn`) | 为 React 打造轻量、以 Hook 为核心并深度整合类型安全的现代化方案。 | 推出体验流畅的 `useTranslations` 与 `useFormatter` Hook,提供全面的 TypeScript 类型约束。 |
|
|
170
|
+
| 2021 年 2 月 | `@tolgee/react` | Jan Cizmar (`@jcizmar`) | 缩短开发者、翻译人员与产品设计之间的沟通与反馈链路。 | 支持浏览器内的上下文行内编辑,用户可通过 Alt 键点击文案即时修改并自动生成界面快照。 |
|
|
171
|
+
| 2024年8月 | `react-intlayer` | Aymeric Pineau (`@aymericzip`) | 专为 React 组件生命周期量身打造,摆脱中心化 JSON 字典、臃肿命名空间以及跨页面内容互相干扰的顽疾。 | 专为 React 渲染优化的 `useIntlayer` Hook,自动派生 TypeScript 严谨类型,组件级构建按需拆分,支持实时可视化 CMS 同步。 |
|
|
172
|
+
| 2024 年 7 月 | `gt-react` | Ernest McCarter (`@eoinest`) | 自动化人工导出翻译文件、交接流转及持续维护的繁复流程。 | 基于云原生体系,通过机器翻译流水线在 React 组件内直接实现由 AI 驱动的自动化本地化。 |
|
|
173
|
+
| 2025年6月 | `@wuchale/jsx` | Kidus Adugna (`@K1DV5`) | 免除在 JSX 中手动定义文案键名以及引入冗长翻译 Hook 的样板代码。 | 通过 AST 语法转换自动提取原始 JSX 文本节点,并将其就地编译为本地化后的等效代码。 |
|
|
174
174
|
|
|
175
175
|
</Tab>
|
|
176
176
|
|
|
177
177
|
<Tab label="Next.js" value="nextjs">
|
|
178
178
|
|
|
179
|
-
| 首次发布 | 工具类库 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
180
|
-
| ------------- | ------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
181
|
-
| 2018 年 11 月 | `next-i18next` | 在 Next.js Pages Router 中借助 `i18next` 支持 SSR 服务端渲染与 SSG 静态导出,避免客户端出现链式数据请求。 | 提供 `serverSideTranslations` 与 `appWithTranslation`,将本地化命名空间按需注入页面 Props。 |
|
|
182
|
-
|
|
|
183
|
-
| 2020
|
|
184
|
-
| 2022 年 7 月 | `next-international` | 在维持极低客户端打包体积的前提下,为 Next.js 提供严苛的 TypeScript 类型校验。 | 针对作用域明确的翻译键生成严格类型推导,并为 App Router 和 Pages Router 提供轻量化适配器。 |
|
|
185
|
-
|
|
|
186
|
-
| 2024
|
|
187
|
-
| 2024
|
|
179
|
+
| 首次发布 | 工具类库 | 作者 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
180
|
+
| ------------- | ------------------------------------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
181
|
+
| 2018 年 11 月 | `next-i18next` | Isaac Hinman (`@isaachinman`) | 在 Next.js Pages Router 中借助 `i18next` 支持 SSR 服务端渲染与 SSG 静态导出,避免客户端出现链式数据请求。 | 提供 `serverSideTranslations` 与 `appWithTranslation`,将本地化命名空间按需注入页面 Props。 |
|
|
182
|
+
| 2020年12月 | `next-translate` | Arvin Wiyono (`@arvinn`) / Vinissimus (`@vinissimus`) | 简化 Next.js Pages Router 项目中的国际化配置门槛并降低打包体积。 | 采用 Webpack Loader 插件架构,在构建阶段自动按页面仅注入该页所需的语言命名空间。 |
|
|
183
|
+
| 2020年12月 | `next-intl` | Jan Amann (`@amannn`) | 全面适配 Next.js App Router、React Server Components (RSC) 以及流式服务端渲染架构。 | 原生集成 Next.js App Router 中间件、Server Actions 以及异步 Server Components,在服务端完成处理而不向客户端强行发送 JS。 |
|
|
184
|
+
| 2022 年 7 月 | `next-international` | Tom Dussaix (`@tom-dussaix`) | 在维持极低客户端打包体积的前提下,为 Next.js 提供严苛的 TypeScript 类型校验。 | 针对作用域明确的翻译键生成严格类型推导,并为 App Router 和 Pages Router 提供轻量化适配器。 |
|
|
185
|
+
| 2023年10月 | `paraglide-next` (`@inlang/paraglide-next`) | Samuel Stroschein (`@samuelstroschein`) / Inlang (`@inlang`) | 将构建期预编译、无运行时代价的理念引入 Next.js App Router 与 Pages Router。 | 结合中间件路由与支持 Tree-shaking 的轻量消息函数,彻底避免在 RSC 及客户端包中运行时解析 JSON 数据。 |
|
|
186
|
+
| 2024年8月 | `next-intlayer` | Aymeric Pineau (`@aymericzip`) | 提供无需在跨组件层级时繁琐传递 `t()` 函数或字典 Props 的 Next.js 专用服务端组件适配层。 | 允许在同步 Server Components 中直接调用 `useIntlayer` 而无需 Prop-drilling,具备无串行等待的服务端渲染、国际化路由中间件以及可视化 CMS 同步能力。 |
|
|
187
|
+
| 2024年7月 | `gt-next` | Ernest McCarter (`@eoinest`) | 利用人工智能翻译技术,自动化生成 Next.js 多语言内容并处理动态本地化路由。 | 面向 App Router 深度集成,将云端机器翻译服务与 Next.js Edge 中间件及缓存架构相结合。 |
|
|
188
188
|
|
|
189
189
|
</Tab>
|
|
190
190
|
|
|
191
191
|
<Tab label="Vue 与 Nuxt" value="vue">
|
|
192
192
|
|
|
193
|
-
| 首次发布 | 工具类库 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
194
|
-
| ------------- | -------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
-
| 2014 年 5 月 | `vue-i18n` | 为 Vue 应用提供符合框架直觉且深度结合响应式特性的国际化方案。 | 深度集成 Vue 响应式系统,提供模板指令 (`v-t`)、`$t` 辅助函数,并支持在单文件组件内使用自定义 `<i18n>` 代码块。 |
|
|
196
|
-
| 2017 年 11 月 | `@nuxt/i18n` | 处理 Nuxt 项目中的多语言 URL 动态路由、SEO hreflang 规范标签以及 SSR 注水一致性。 | 全栈式路由模块,可自动生成带前缀或独立域名的本地化路由、SEO Meta 头信息,并支持语言分片懒加载。 |
|
|
197
|
-
|
|
|
198
|
-
| 2025
|
|
193
|
+
| 首次发布 | 工具类库 | 作者 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
194
|
+
| ------------- | -------------- | ------------------------------------------- | --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
+
| 2014 年 5 月 | `vue-i18n` | Kazupon (`@kazupon`) | 为 Vue 应用提供符合框架直觉且深度结合响应式特性的国际化方案。 | 深度集成 Vue 响应式系统,提供模板指令 (`v-t`)、`$t` 辅助函数,并支持在单文件组件内使用自定义 `<i18n>` 代码块。 |
|
|
196
|
+
| 2017 年 11 月 | `@nuxt/i18n` | Nuxt 社区 | 处理 Nuxt 项目中的多语言 URL 动态路由、SEO hreflang 规范标签以及 SSR 注水一致性。 | 全栈式路由模块,可自动生成带前缀或独立域名的本地化路由、SEO Meta 头信息,并支持语言分片懒加载。 |
|
|
197
|
+
| 2020年8月 | `fluent-vue` | Mozilla (`@mozilla`) / Demivan (`@demivan`) | 优雅应对 Vue 项目中多语言复杂的语法性、格位变化以及非对称语言表述结构。 | 将 Mozilla 的 Project Fluent 语法规范深度接入 Vue,无需再为复杂的语法变体编写冗长嵌套的判断分支。 |
|
|
198
|
+
| 2025年1月 | `vue-intlayer` | Aymeric Pineau (`@aymericzip`) | 专为 Vue 3 Composition API 与 Nuxt 打造的原生 Intlayer 方案,彻底避免全局命名空间污染。 | 专为 Vue 3 依赖追踪打造的高效 `useIntlayer` Composable,具备清晰的组件级隔离、完备的 TypeScript 自动补全能力并支持直接连接可视化编辑器。 |
|
|
199
199
|
|
|
200
200
|
</Tab>
|
|
201
201
|
|
|
202
202
|
<Tab label="Angular" value="angular">
|
|
203
203
|
|
|
204
|
-
| 首次发布 | 工具类库 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
205
|
-
| ------------ | ------------------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
|
|
206
|
-
| 2017 年 2 月 | `ngx-translate` | 无需针对每门语言单独打包多份构建产物,即可在 Angular 运行时实现动态多语言翻译。 | 推出 `TranslateService` 与 `translate` Pipe,支持异步动态载入语言包并即时切换当前语言。 |
|
|
207
|
-
| 2019 年 7 月 | `@ngneat/transloco` | 解决早期 Angular 国际化工具中普遍存在的性能瓶颈、缺乏模块作用域隔离以及功能缺失等问题。 | 提供结构型指令 (`*transloco`)、按需加载特性模块的作用域文案隔离、SSR 服务端支持以及自动化提取 CLI 工具。 |
|
|
208
|
-
| 2019 年 9 月 | `@angular/localize` | 现代化重构 Angular 内置的编译期 i18n 方案,避免每种语言都需要完整重新编译整个 TypeScript 项目。 | 引入带标签的模板字符串 `$localize`,由 Ivy 编译器引擎作为极速的构建后置步骤直接替换植入。 |
|
|
209
|
-
| 2021 年 2 月 | `@tolgee/ngx` | 将多人协同的界面上下文翻译与应用快照采集流程整合进 Angular 日常开发工作流。 | 提供与 Tolgee 直连的 Angular Pipe 与指令,方便直接在浏览器界面中查看并调整文案。 |
|
|
210
|
-
|
|
|
204
|
+
| 首次发布 | 工具类库 | 作者 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
205
|
+
| ------------ | ------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ |
|
|
206
|
+
| 2017 年 2 月 | `ngx-translate` | Olivier Combe (`@ocombe`) | 无需针对每门语言单独打包多份构建产物,即可在 Angular 运行时实现动态多语言翻译。 | 推出 `TranslateService` 与 `translate` Pipe,支持异步动态载入语言包并即时切换当前语言。 |
|
|
207
|
+
| 2019 年 7 月 | `@ngneat/transloco` | Netanel Basal (`@NetanelBasal`) & Shahar Kazaz (`@shahar_k`) | 解决早期 Angular 国际化工具中普遍存在的性能瓶颈、缺乏模块作用域隔离以及功能缺失等问题。 | 提供结构型指令 (`*transloco`)、按需加载特性模块的作用域文案隔离、SSR 服务端支持以及自动化提取 CLI 工具。 |
|
|
208
|
+
| 2019 年 9 月 | `@angular/localize` | Angular 团队 (@angular) | 现代化重构 Angular 内置的编译期 i18n 方案,避免每种语言都需要完整重新编译整个 TypeScript 项目。 | 引入带标签的模板字符串 `$localize`,由 Ivy 编译器引擎作为极速的构建后置步骤直接替换植入。 |
|
|
209
|
+
| 2021 年 2 月 | `@tolgee/ngx` | Jan Cizmar (`@jcizmar`) | 将多人协同的界面上下文翻译与应用快照采集流程整合进 Angular 日常开发工作流。 | 提供与 Tolgee 直连的 Angular Pipe 与指令,方便直接在浏览器界面中查看并调整文案。 |
|
|
210
|
+
| 2026年3月 | `angular-intlayer` | Aymeric Pineau (`@aymericzip`) | 专为现代 Angular 技术栈(Signals 响应式原语、Standalone 独立组件与 SSR)量身打造的原生 Intlayer 方案。 | 结合 Angular 变更检测特性的 Signal 响应式内容绑定,原生兼容 Standalone 依赖注入,并支持与可视化 CMS 保持实时同步。 |
|
|
211
211
|
|
|
212
212
|
</Tab>
|
|
213
213
|
|
|
214
214
|
<Tab label="Svelte 与 SvelteKit" value="svelte">
|
|
215
215
|
|
|
216
|
-
| 首次发布 | 工具类库 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
217
|
-
| ------------- | ----------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
218
|
-
| 2018 年 7 月 | `svelte-i18n` | 提供一套天然契合 Svelte 响应式 Stores 机制的声明式国际化库。 | 依托 Store 封装的 `$t` 查找函数,确保在语言切换时对 DOM 节点执行细粒度的高效就地更新。 |
|
|
219
|
-
| 2021 年 12 月 | `sveltekit-i18n` | 在 SvelteKit 框架中整洁处理服务端渲染 (SSR) 与基于页面路由的代码分片与文案加载。 | 采用模块化加载架构,仅针对当前激活的 SvelteKit 路由抓取必要的文案条目与格式化工具。 |
|
|
220
|
-
| 2021 年 11 月 | `@tolgee/svelte` | 让 Svelte 应用能够便捷实现基于界面运行上下文的可视化文案编辑。 | 提供深度集成 Tolgee 上下文编辑浮层和自动化界面截屏工具的 Svelte Store 绑定机制。 |
|
|
221
|
-
| 2025
|
|
222
|
-
| 2025 年 7 月 | `@wuchale/svelte` | 消除在 Svelte 组件中繁琐定义字典与频繁手动引入 `$t` 函数的固定模板负担。 | 提供专属 Svelte 预处理器,在构建期分析模板并直接把文本节点转换为零包装层的本地化产物。 |
|
|
216
|
+
| 首次发布 | 工具类库 | 作者 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
217
|
+
| ------------- | ----------------- | ------------------------------ | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
218
|
+
| 2018 年 7 月 | `svelte-i18n` | Kaisermann (`@kaisermann`) | 提供一套天然契合 Svelte 响应式 Stores 机制的声明式国际化库。 | 依托 Store 封装的 `$t` 查找函数,确保在语言切换时对 DOM 节点执行细粒度的高效就地更新。 |
|
|
219
|
+
| 2021 年 12 月 | `sveltekit-i18n` | Ivan Fevrier (`@ivanfevrier`) | 在 SvelteKit 框架中整洁处理服务端渲染 (SSR) 与基于页面路由的代码分片与文案加载。 | 采用模块化加载架构,仅针对当前激活的 SvelteKit 路由抓取必要的文案条目与格式化工具。 |
|
|
220
|
+
| 2021 年 11 月 | `@tolgee/svelte` | Jan Cizmar (`@jcizmar`) | 让 Svelte 应用能够便捷实现基于界面运行上下文的可视化文案编辑。 | 提供深度集成 Tolgee 上下文编辑浮层和自动化界面截屏工具的 Svelte Store 绑定机制。 |
|
|
221
|
+
| 2025年10月 | `svelte-intlayer` | Aymeric Pineau (`@aymericzip`) | 专为 Svelte 5 全新 Runes 机制与 SvelteKit 框架量身定制的高性能 Intlayer 实现方案。 | 深度结合 Svelte 5 Runes (`$state`) 的响应式内容绑定,组件级 `.content` 独立声明文件,免配置构建插件与可视化 CMS 界面。 |
|
|
222
|
+
| 2025 年 7 月 | `@wuchale/svelte` | Kidus Adugna (`@K1DV5`) | 消除在 Svelte 组件中繁琐定义字典与频繁手动引入 `$t` 函数的固定模板负担。 | 提供专属 Svelte 预处理器,在构建期分析模板并直接把文本节点转换为零包装层的本地化产物。 |
|
|
223
223
|
|
|
224
224
|
</Tab>
|
|
225
225
|
|
|
226
226
|
<Tab label="SolidJS" value="solid">
|
|
227
227
|
|
|
228
|
-
| 首次发布 | 工具类库 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
229
|
-
| ------------ | ------------------------ | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
230
|
-
| 2021 年 9 月 | `@solid-primitives/i18n` | 打造完美契合 SolidJS 超细粒度响应式更新范式的原生 i18n 基础原语。 | 基于 Signal 响应式原语的翻译解析机制,无需依赖虚拟 DOM 即可直接更新对应真实 DOM 节点,杜绝任何多余重渲染。 |
|
|
231
|
-
| 2025
|
|
232
|
-
| 2026 年 6 月 | `@lingui/solid` | 将编译期宏提取逻辑与完善的 ICU MessageFormat 语法解析能力扩展引入 SolidJS 领域。 | 针对 Solid 响应式架构精心优化的宏编译逻辑,在构建时将消息文本转换为运行时代价极低的精简结构。 |
|
|
228
|
+
| 首次发布 | 工具类库 | 作者 | 旨在解决的核心问题 | 关键创新亮点 |
|
|
229
|
+
| ------------ | ------------------------ | ------------------------------ | -------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
230
|
+
| 2021 年 9 月 | `@solid-primitives/i18n` | SolidJS 社区 | 打造完美契合 SolidJS 超细粒度响应式更新范式的原生 i18n 基础原语。 | 基于 Signal 响应式原语的翻译解析机制,无需依赖虚拟 DOM 即可直接更新对应真实 DOM 节点,杜绝任何多余重渲染。 |
|
|
231
|
+
| 2025年7月 | `solid-intlayer` | Aymeric Pineau (`@aymericzip`) | 专为 SolidJS 及 SolidStart 框架特性深度优化的原生高性能 Intlayer 方案。 | 针对 Solid 细粒度响应式原语量身设计的轻量内容绑定,消除虚拟 DOM 开销,提供完整的 TypeScript Schema 智能补全,并无缝集成可视化编辑器。 |
|
|
232
|
+
| 2026 年 6 月 | `@lingui/solid` | Tomáš Ehrlich (`@tricoder42`) | 将编译期宏提取逻辑与完善的 ICU MessageFormat 语法解析能力扩展引入 SolidJS 领域。 | 针对 Solid 响应式架构精心优化的宏编译逻辑,在构建时将消息文本转换为运行时代价极低的精简结构。 |
|
|
233
233
|
|
|
234
234
|
</Tab>
|
|
235
235
|
|
|
@@ -237,7 +237,7 @@ Jan Mühlemann 为快速成长的 React 社区带来了 `i18next` 适配,早
|
|
|
237
237
|
|
|
238
238
|
## JavaScript i18n 的四大架构发展阶段
|
|
239
239
|
|
|
240
|
-

|
|
241
241
|
|
|
242
242
|
回顾近十五年的技术探索,JavaScript 国际化的演化路径可划分为四个鲜明的架构纪元:
|
|
243
243
|
|
|
@@ -287,7 +287,7 @@ Jan Mühlemann 为快速成长的 React 社区带来了 `i18next` 适配,早
|
|
|
287
287
|
|
|
288
288
|
随着通用大模型将高质量翻译的综合成本降低至极低水平,市场上也涌现出新一代工具:
|
|
289
289
|
|
|
290
|
-
- 诸如
|
|
290
|
+
- 诸如 **lingo.dev** 或 **General Translation** (`gt-react`, `gt-next`) 等产品,尝试通过专属付费订阅与云端代理服务介入这一流程。
|
|
291
291
|
- 相比之下,**Intlayer** 选择在开源 CLI 中直接提供原生的 AI 自动化翻译支持,允许团队直接接入自有的 API 密钥(如 OpenAI、Anthropic、Mistral 或 Google Gemini)。没有中间商加价与订阅捆绑,纯粹按所选模型的底层实际调用消耗计费。
|
|
292
292
|
|
|
293
293
|
### 超越传统 i18n:面向未来的多语言内容体系
|