@intlayer/docs 9.5.3 → 9.5.4
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-01-02
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-09-16
|
|
4
4
|
title: react-i18next vs react-intl vs Intlayer
|
|
5
5
|
description: Інтеграція react-i18next з next-intl та Intlayer для інтернаціоналізації (i18n) React-додатка
|
|
6
6
|
keywords:
|
|
@@ -106,6 +106,10 @@ author: aymericzip
|
|
|
106
106
|
|
|
107
107
|
**Чому це важливо:** Менші бандли і менше невикористаних рядків покращують час запуску та продуктивність навігації.
|
|
108
108
|
|
|
109
|
+
Графік нижче оцінює обсяг контенту для теоретичного застосунку, в якому від 1 до 10 сторінок і від 1 до 10 мов, приблизно по 30 КБ тексту на сторінку. Динамічне завантаження за локаллю прибирає вісь мов, обмеження контенту компонентом або маршрутом прибирає вісь сторінок, і лише їх поєднання зберігає обсяг стабільним.
|
|
110
|
+
|
|
111
|
+

|
|
112
|
+
|
|
109
113
|
### 6) DX, інструменти та супровід
|
|
110
114
|
|
|
111
115
|
- **react-intl / react-i18next**: Широка екосистема спільноти; для редакційних робочих процесів ви зазвичай використовуєте зовнішні платформи локалізації.
|
|
@@ -49,7 +49,7 @@ Các giải pháp đã thay đổi đáng kể. Chúng ta đã đi từ các đ
|
|
|
49
49
|
|
|
50
50
|
Bài viết này xem xét quá trình phát triển đó từ khoảng năm 2011 đến năm 2026: những gì mỗi thế hệ công cụ đã cố gắng giải quyết, những gì hiệu quả, những gì thất bại, và cách kiến trúc ứng dụng frontend đã định hình cách chúng ta xử lý i18n ngày nay.
|
|
51
51
|
|
|
52
|
-

|
|
53
53
|
|
|
54
54
|
## Mục lục
|
|
55
55
|
|
|
@@ -149,87 +149,87 @@ Các tab sau đây trình bày cách mỗi framework và hệ sinh thái giải
|
|
|
149
149
|
|
|
150
150
|
<Tab label="Core JavaScript" value="javascript">
|
|
151
151
|
|
|
152
|
-
| Bản phát hành đầu | Thư viện | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
153
|
-
| ----------------- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
154
|
-
| Tháng 1 năm 2012 | `i18next` | Tiêu chuẩn hóa việc tra cứu từ điển lúc runtime cho trình duyệt và Node.js mà không bị ràng buộc framework. | Kiến trúc runtime linh hoạt tách biệt việc dịch cốt lõi khỏi bộ tải, bộ nhận diện và bộ nhớ đệm. |
|
|
155
|
-
| Tháng 2 năm 2021 | `typesafe-i18n` | Ngăn chặn các lỗi runtime âm thầm do các chuỗi khóa không có kiểu dữ liệu gây ra. | Các hàm dịch có kiểu dữ liệu đầy đủ được tạo trực tiếp từ các đối tượng dịch mà không cần phụ thuộc runtime. |
|
|
156
|
-
| Tháng 10 năm 2023 | `paraglide` (`@inlang/paraglide-js`) | Loại bỏ việc tra cứu từ điển runtime, các bộ phân tích nặng nề và sự phình to của bundle. | Biên dịch thông điệp thành các module ECMAScript hỗ trợ tree-shaking và các hàm JS thuần túy. |
|
|
157
|
-
| Tháng
|
|
158
|
-
| Tháng 6 năm 2025 | `wuchale` | Loại bỏ sự phiền toái khi phải trích xuất thủ công các chuỗi văn bản và đặt tên khóa dịch trong quá trình phát triển. | Tiền xử lý cấp độ AST tự động phát hiện văn bản inline và biên dịch thành các hàm bản địa hóa không cần wrapper khi build. |
|
|
152
|
+
| Bản phát hành đầu | Thư viện | Tác giả | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
153
|
+
| ----------------- | ------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
154
|
+
| Tháng 1 năm 2012 | `i18next` | Jan Mühlemann (`@jamuhl`) | Tiêu chuẩn hóa việc tra cứu từ điển lúc runtime cho trình duyệt và Node.js mà không bị ràng buộc framework. | Kiến trúc runtime linh hoạt tách biệt việc dịch cốt lõi khỏi bộ tải, bộ nhận diện và bộ nhớ đệm. |
|
|
155
|
+
| Tháng 2 năm 2021 | `typesafe-i18n` | Ivan Hofer (`@ivanhofer`) | Ngăn chặn các lỗi runtime âm thầm do các chuỗi khóa không có kiểu dữ liệu gây ra. | Các hàm dịch có kiểu dữ liệu đầy đủ được tạo trực tiếp từ các đối tượng dịch mà không cần phụ thuộc runtime. |
|
|
156
|
+
| Tháng 10 năm 2023 | `paraglide` (`@inlang/paraglide-js`) | Samuel Stroschein (`@samuelstroschein`) / Inlang (`@inlang`) | Loại bỏ việc tra cứu từ điển runtime, các bộ phân tích nặng nề và sự phình to của bundle. | Biên dịch thông điệp thành các module ECMAScript hỗ trợ tree-shaking và các hàm JS thuần túy. |
|
|
157
|
+
| Tháng 8 năm 2024 | `intlayer` | Aymeric Pineau (`@aymericzip`) | Thay thế các namespace khó duy trì, tránh rò rỉ nội dung giữa các trang, và khắc phục tình trạng thiếu an toàn kiểu dữ liệu trong kỷ nguyên TypeScript. | Đặt tệp `.content` trực tiếp tại nơi các hàm được gọi, tự động tạo kiểu TypeScript, và tích hợp sẵn CMS trực quan cùng công cụ CLI dịch thuật AI. |
|
|
158
|
+
| Tháng 6 năm 2025 | `wuchale` | Kidus Adugna (`@K1DV5`) | Loại bỏ sự phiền toái khi phải trích xuất thủ công các chuỗi văn bản và đặt tên khóa dịch trong quá trình phát triển. | Tiền xử lý cấp độ AST tự động phát hiện văn bản inline và biên dịch thành các hàm bản địa hóa không cần wrapper khi build. |
|
|
159
159
|
|
|
160
160
|
</Tab>
|
|
161
161
|
|
|
162
162
|
<Tab label="React" value="react">
|
|
163
163
|
|
|
164
|
-
| Bản phát hành đầu | Thư viện | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
165
|
-
| ----------------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
166
|
-
| Tháng 6 năm 2014 | `react-intl` | Tiêu chuẩn hóa định dạng số, ngày tháng, tiền tệ và số nhiều phức tạp trong React. | Các component khai báo (`<FormattedMessage>`, `<FormattedDate>`) hiện thực hóa các tiêu chuẩn ICU MessageFormat và ECMA-402. |
|
|
167
|
-
| Tháng 12 năm 2015 | `react-i18next` | Cung cấp liên kết chuẩn React cho `i18next` với khả năng re-render phản ứng. | Phát triển cùng React từ Higher-Order Components đến nội suy JSX `<Trans>` và hook `useTranslation`. |
|
|
168
|
-
| Tháng 1 năm 2018 | `@lingui/react` | Giảm bớt dung lượng bundle JavaScript gây ra bởi các bộ phân tích ICU lúc runtime. | Macro Babel/SWC lúc biên dịch giúp đóng gói `<Trans>` và `t` thành các mảng chỉ mục nhỏ gọn khi build. |
|
|
169
|
-
| Tháng 12 năm 2020 | `use-intl` | Mang lại giải pháp nhẹ nhàng, ưu tiên hook và an toàn kiểu dữ liệu thay thế cho các thư viện React i18n cũ. | Các hook `useTranslations` và `useFormatter` trực quan cùng khả năng tích hợp TypeScript sâu sắc. |
|
|
170
|
-
| Tháng 2 năm 2021 | `@tolgee/react` | Loại bỏ vòng phản hồi chậm trễ giữa các nhà phát triển, biên dịch viên và nhà thiết kế. | Chỉnh sửa trực tiếp trong ngữ cảnh trình duyệt, cho phép người dùng Alt-click vào văn bản để sửa bản dịch tại chỗ và chụp ảnh màn hình. |
|
|
171
|
-
| Tháng
|
|
172
|
-
| Tháng 7 năm 2024 | `gt-react` | Tự động hóa việc xuất tệp thủ công, bàn giao biên dịch viên và bảo trì bản dịch. | Bản địa hóa AI tự động trên nền tảng cloud trực tiếp bên trong các component React với quy trình dịch máy. |
|
|
173
|
-
| Tháng
|
|
164
|
+
| Bản phát hành đầu | Thư viện | Tác giả | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
165
|
+
| ----------------- | ---------------- | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
166
|
+
| Tháng 6 năm 2014 | `react-intl` | Yahoo! / FormatJS | Tiêu chuẩn hóa định dạng số, ngày tháng, tiền tệ và số nhiều phức tạp trong React. | Các component khai báo (`<FormattedMessage>`, `<FormattedDate>`) hiện thực hóa các tiêu chuẩn ICU MessageFormat và ECMA-402. |
|
|
167
|
+
| Tháng 12 năm 2015 | `react-i18next` | Jan Mühlemann (`@jamuhl`) | Cung cấp liên kết chuẩn React cho `i18next` với khả năng re-render phản ứng. | Phát triển cùng React từ Higher-Order Components đến nội suy JSX `<Trans>` và hook `useTranslation`. |
|
|
168
|
+
| Tháng 1 năm 2018 | `@lingui/react` | Tomáš Ehrlich (`@tricoder42`) | Giảm bớt dung lượng bundle JavaScript gây ra bởi các bộ phân tích ICU lúc runtime. | Macro Babel/SWC lúc biên dịch giúp đóng gói `<Trans>` và `t` thành các mảng chỉ mục nhỏ gọn khi build. |
|
|
169
|
+
| Tháng 12 năm 2020 | `use-intl` | Jan Amann (`@amannn`) | Mang lại giải pháp nhẹ nhàng, ưu tiên hook và an toàn kiểu dữ liệu thay thế cho các thư viện React i18n cũ. | Các hook `useTranslations` và `useFormatter` trực quan cùng khả năng tích hợp TypeScript sâu sắc. |
|
|
170
|
+
| Tháng 2 năm 2021 | `@tolgee/react` | Jan Cizmar (`@jcizmar`) | Loại bỏ vòng phản hồi chậm trễ giữa các nhà phát triển, biên dịch viên và nhà thiết kế. | Chỉnh sửa trực tiếp trong ngữ cảnh trình duyệt, cho phép người dùng Alt-click vào văn bản để sửa bản dịch tại chỗ và chụp ảnh màn hình. |
|
|
171
|
+
| Tháng 8 năm 2024 | `react-intlayer` | Aymeric Pineau (`@aymericzip`) | Cung cấp triển khai Intlayer hiệu năng cao dành riêng cho vòng đời component của React, loại bỏ các từ điển JSON tập trung và namespace cồng kềnh. | Hook `useIntlayer` hiệu năng cao cho quá trình render của React, tự động tạo kiểu TypeScript, tree-shaking theo từng component, và đồng bộ hóa CMS trực quan. |
|
|
172
|
+
| Tháng 7 năm 2024 | `gt-react` | Ernest McCarter (`@eoinest`) | Tự động hóa việc xuất tệp thủ công, bàn giao biên dịch viên và bảo trì bản dịch. | Bản địa hóa AI tự động trên nền tảng cloud trực tiếp bên trong các component React với quy trình dịch máy. |
|
|
173
|
+
| Tháng 6 năm 2025 | `@wuchale/jsx` | Kidus Adugna (`@K1DV5`) | Loại bỏ việc đặt tên khóa thủ công và các hook dịch khuôn mẫu trong JSX của React. | Chuyển đổi AST tự động trích xuất các node văn bản JSX thô và biên dịch thành các kết quả bản địa hóa tương đương. |
|
|
174
174
|
|
|
175
175
|
</Tab>
|
|
176
176
|
|
|
177
177
|
<Tab label="Next.js" value="nextjs">
|
|
178
178
|
|
|
179
|
-
| Bản phát hành đầu | Thư viện | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
180
|
-
| ----------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
181
|
-
| Tháng 11 năm 2018 | `next-i18next` | Hỗ trợ SSR và SSG với `i18next` trong Next.js Pages Router mà không gây ra hiện tượng waterfall phía client. | `serverSideTranslations` và `appWithTranslation` chuyển các namespace bản địa hóa vào props của trang. |
|
|
182
|
-
| Tháng 12 năm
|
|
183
|
-
| Tháng
|
|
184
|
-
| Tháng 7 năm 2022 | `next-international` | Tối đa hóa an toàn kiểu dữ liệu TypeScript với chi phí bundle client tối thiểu cho Next.js. | Tạo kiểu nghiêm ngặt cho các khóa có phạm vi với các adapter gọn nhẹ cho App Router và Pages Router. |
|
|
185
|
-
| Tháng
|
|
186
|
-
| Tháng
|
|
187
|
-
| Tháng
|
|
179
|
+
| Bản phát hành đầu | Thư viện | Tác giả | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
180
|
+
| ----------------- | ------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
181
|
+
| Tháng 11 năm 2018 | `next-i18next` | Isaac Hinman (`@isaachinman`) | Hỗ trợ SSR và SSG với `i18next` trong Next.js Pages Router mà không gây ra hiện tượng waterfall phía client. | `serverSideTranslations` và `appWithTranslation` chuyển các namespace bản địa hóa vào props của trang. |
|
|
182
|
+
| Tháng 12 năm 2020 | `next-translate` | Arvin Wiyono (`@arvinn`) / Vinissimus (`@vinissimus`) | Đơn giản hóa cấu hình và giảm kích thước bundle trong các ứng dụng Next.js Pages Router. | Plugin Webpack loader tự động chỉ chèn các namespace bản dịch cần thiết cho từng trang. |
|
|
183
|
+
| Tháng 12 năm 2020 | `next-intl` | Jan Amann (`@amannn`) | Thiết kế lại i18n cho Next.js với App Router, React Server Components (RSC) và streaming SSR. | Tích hợp nguyên bản với middleware của Next.js App Router, Server Actions và Server Components bất đồng bộ mà không cần JS ở client. |
|
|
184
|
+
| Tháng 7 năm 2022 | `next-international` | Tom Dussaix (`@tom-dussaix`) | Tối đa hóa an toàn kiểu dữ liệu TypeScript với chi phí bundle client tối thiểu cho Next.js. | Tạo kiểu nghiêm ngặt cho các khóa có phạm vi với các adapter gọn nhẹ cho App Router và Pages Router. |
|
|
185
|
+
| Tháng 10 năm 2023 | `paraglide-next` (`@inlang/paraglide-next`) | Samuel Stroschein (`@samuelstroschein`) / Inlang (`@inlang`) | Đưa các thông điệp biên dịch không cần runtime vào Next.js App Router và Pages Router. | Định tuyến middleware kết hợp với các hàm thông điệp hỗ trợ tree-shaking, tránh việc phân tích JSON runtime trong RSC và bundle client. |
|
|
186
|
+
| Tháng 8 năm 2024 | `next-intlayer` | Aymeric Pineau (`@aymericzip`) | Cung cấp adapter Server Component hiệu năng cao cho Next.js App Router và Pages Router mà không cần truyền hàm `t()` dưới dạng props. | Adapter Server Component nguyên bản cho phép gọi trực tiếp `useIntlayer` trong các Server Component đồng bộ (như Navbar) mà không cần prop-drilling, kết hợp render máy chủ tức thì và CMS trực quan. |
|
|
187
|
+
| Tháng 7 năm 2024 | `gt-next` | Ernest McCarter (`@eoinest`) | Tự động hóa việc tạo nội dung đa ngôn ngữ và định tuyến bản địa hóa động trong Next.js bằng dịch thuật AI. | Tích hợp App Router kết hợp dịch máy dựa trên đám mây với edge middleware và các lớp bộ nhớ đệm của Next.js. |
|
|
188
188
|
|
|
189
189
|
</Tab>
|
|
190
190
|
|
|
191
191
|
<Tab label="Vue & Nuxt" value="vue">
|
|
192
192
|
|
|
193
|
-
| Bản phát hành đầu | Thư viện | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
194
|
-
| ----------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
195
|
-
| Tháng 5 năm 2014 | `vue-i18n` | Cung cấp giải pháp quốc tế hóa phản ứng chuẩn mực cho các ứng dụng Vue. | Tích hợp tính phản ứng sâu sắc, chỉ thị mẫu (`v-t`), helper `$t`, và các khối tùy chỉnh `<i18n>` trong Single-File Component. |
|
|
196
|
-
| Tháng 11 năm 2017 | `@nuxt/i18n` | Xử lý định tuyến URL bản địa hóa, thẻ SEO hreflang và hydrat hóa SSR trong Nuxt. | Module định tuyến full-stack tạo các route bản địa hóa, tiêu đề meta SEO và tải phân đoạn lười (lazy-loading). |
|
|
197
|
-
| Tháng 8 năm
|
|
198
|
-
| Tháng
|
|
193
|
+
| Bản phát hành đầu | Thư viện | Tác giả | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
194
|
+
| ----------------- | -------------- | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
195
|
+
| Tháng 5 năm 2014 | `vue-i18n` | Kazupon (`@kazupon`) | Cung cấp giải pháp quốc tế hóa phản ứng chuẩn mực cho các ứng dụng Vue. | Tích hợp tính phản ứng sâu sắc, chỉ thị mẫu (`v-t`), helper `$t`, và các khối tùy chỉnh `<i18n>` trong Single-File Component. |
|
|
196
|
+
| Tháng 11 năm 2017 | `@nuxt/i18n` | Cộng đồng Nuxt | Xử lý định tuyến URL bản địa hóa, thẻ SEO hreflang và hydrat hóa SSR trong Nuxt. | Module định tuyến full-stack tạo các route bản địa hóa, tiêu đề meta SEO và tải phân đoạn lười (lazy-loading). |
|
|
197
|
+
| Tháng 8 năm 2020 | `fluent-vue` | Mozilla (`@mozilla`) / Demivan (`@demivan`) | Xử lý giống ngữ pháp phức tạp, biến cách và cấu trúc ngôn ngữ bất đối xứng trong Vue. | Tích hợp cú pháp Mozilla Project Fluent vào Vue, tránh các đoạn mã điều kiện phức tạp cho các biến thể ngôn ngữ. |
|
|
198
|
+
| Tháng 1 năm 2025 | `vue-intlayer` | Aymeric Pineau (`@aymericzip`) | Cung cấp triển khai Intlayer hiệu năng cao được thiết kế cho Vue 3 Composition API và Nuxt mà không gây xung đột namespace toàn cục. | Composable `useIntlayer` được tùy biến cho việc theo dõi phản ứng của Vue 3, định phạm vi component trực tiếp, tự động hoàn thiện TypeScript và biên tập viên trực quan. |
|
|
199
199
|
|
|
200
200
|
</Tab>
|
|
201
201
|
|
|
202
202
|
<Tab label="Angular" value="angular">
|
|
203
203
|
|
|
204
|
-
| Bản phát hành đầu | Thư viện | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
205
|
-
| ----------------- | ------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
206
|
-
| Tháng 2 năm 2017 | `ngx-translate` | Cung cấp bản dịch động lúc runtime trong Angular mà không cần triển khai các gói bundle riêng biệt cho từng ngôn ngữ. | `TranslateService` và pipe `translate` cho phép tải bản dịch động và chuyển đổi ngôn ngữ lúc runtime. |
|
|
207
|
-
| Tháng 7 năm 2019 | `@ngneat/transloco` | Giải quyết các điểm nghẽn hiệu năng, thiếu tính phân tách phạm vi và các tính năng còn thiếu trong các thư viện Angular cũ. | Chỉ thị cấu trúc (`*transloco`), bản dịch có phạm vi cho các module lazy-loaded, hỗ trợ SSR và công cụ trích xuất CLI. |
|
|
208
|
-
| Tháng 9 năm 2019 | `@angular/localize` | Hiện đại hóa hệ thống i18n tích hợp sẵn của Angular để tránh phải biên dịch lại TypeScript cho từng ngôn ngữ. | Tagged template literals với `$localize` được chèn dưới dạng bước xử lý nhanh sau khi build trong Ivy engine. |
|
|
209
|
-
| Tháng 2 năm 2021 | `@tolgee/ngx` | Tích hợp dịch thuật cộng tác theo ngữ cảnh và chụp ảnh màn hình vào quy trình phát triển Angular. | Các pipe và directive của Angular kết nối trực tiếp với Tolgee để bản địa hóa trực tiếp trên trình duyệt. |
|
|
210
|
-
| Tháng
|
|
204
|
+
| Bản phát hành đầu | Thư viện | Tác giả | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
205
|
+
| ----------------- | ------------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
206
|
+
| Tháng 2 năm 2017 | `ngx-translate` | Olivier Combe (`@ocombe`) | Cung cấp bản dịch động lúc runtime trong Angular mà không cần triển khai các gói bundle riêng biệt cho từng ngôn ngữ. | `TranslateService` và pipe `translate` cho phép tải bản dịch động và chuyển đổi ngôn ngữ lúc runtime. |
|
|
207
|
+
| Tháng 7 năm 2019 | `@ngneat/transloco` | Netanel Basal (`@NetanelBasal`) & Shahar Kazaz (`@shahar_k`) | Giải quyết các điểm nghẽn hiệu năng, thiếu tính phân tách phạm vi và các tính năng còn thiếu trong các thư viện Angular cũ. | Chỉ thị cấu trúc (`*transloco`), bản dịch có phạm vi cho các module lazy-loaded, hỗ trợ SSR và công cụ trích xuất CLI. |
|
|
208
|
+
| Tháng 9 năm 2019 | `@angular/localize` | Đội ngũ Angular (@angular) | Hiện đại hóa hệ thống i18n tích hợp sẵn của Angular để tránh phải biên dịch lại TypeScript cho từng ngôn ngữ. | Tagged template literals với `$localize` được chèn dưới dạng bước xử lý nhanh sau khi build trong Ivy engine. |
|
|
209
|
+
| Tháng 2 năm 2021 | `@tolgee/ngx` | Jan Cizmar (`@jcizmar`) | Tích hợp dịch thuật cộng tác theo ngữ cảnh và chụp ảnh màn hình vào quy trình phát triển Angular. | Các pipe và directive của Angular kết nối trực tiếp với Tolgee để bản địa hóa trực tiếp trên trình duyệt. |
|
|
210
|
+
| Tháng 3 năm 2026 | `angular-intlayer` | Aymeric Pineau (`@aymericzip`) | Cung cấp triển khai Intlayer hiệu năng cao dành riêng cho Angular hiện đại (Signals, component độc lập và SSR). | Tích hợp nội dung phản ứng dựa trên Signal cho cơ chế phát hiện thay đổi của Angular hiện đại, tiêm phụ thuộc độc lập và đồng bộ hóa CMS trực quan. |
|
|
211
211
|
|
|
212
212
|
</Tab>
|
|
213
213
|
|
|
214
214
|
<Tab label="Svelte & SvelteKit" value="svelte">
|
|
215
215
|
|
|
216
|
-
| Bản phát hành đầu | Thư viện | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
217
|
-
| ----------------- | ----------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
218
|
-
| Tháng 7 năm 2018 | `svelte-i18n` | Cung cấp thư viện quốc tế hóa phản ứng phù hợp với các reactive store của Svelte. | Tra cứu `$t` dựa trên store đảm bảo cập nhật DOM chi tiết và chính xác khi thay đổi locale. |
|
|
219
|
-
| Tháng 12 năm 2021 | `sveltekit-i18n` | Xử lý tải bản dịch theo tuyến đường và SSR một cách gọn gàng trong các ứng dụng SvelteKit. | Kiến trúc bộ tải module chỉ lấy các bản dịch và trình định dạng cần thiết cho tuyến đường SvelteKit đang hoạt động. |
|
|
220
|
-
| Tháng 11 năm 2021 | `@tolgee/svelte` | Cho phép bản địa hóa theo ngữ cảnh trong các ứng dụng Svelte. | Liên kết store Svelte tích hợp với giao diện dịch thuật ngữ cảnh Tolgee và tự động tạo ảnh chụp màn hình. |
|
|
221
|
-
| Tháng
|
|
222
|
-
| Tháng 7 năm 2025 | `@wuchale/svelte` | Loại bỏ mã khai báo từ điển và nhập các hàm `$t` trong các component Svelte. | Bộ tiền xử lý Svelte phân tích cú pháp template lúc build và biên dịch các node văn bản thành kết quả bản địa hóa không cần wrapper. |
|
|
216
|
+
| Bản phát hành đầu | Thư viện | Tác giả | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
217
|
+
| ----------------- | ----------------- | ------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
218
|
+
| Tháng 7 năm 2018 | `svelte-i18n` | Kaisermann (`@kaisermann`) | Cung cấp thư viện quốc tế hóa phản ứng phù hợp với các reactive store của Svelte. | Tra cứu `$t` dựa trên store đảm bảo cập nhật DOM chi tiết và chính xác khi thay đổi locale. |
|
|
219
|
+
| Tháng 12 năm 2021 | `sveltekit-i18n` | Ivan Fevrier (`@ivanfevrier`) | Xử lý tải bản dịch theo tuyến đường và SSR một cách gọn gàng trong các ứng dụng SvelteKit. | Kiến trúc bộ tải module chỉ lấy các bản dịch và trình định dạng cần thiết cho tuyến đường SvelteKit đang hoạt động. |
|
|
220
|
+
| Tháng 11 năm 2021 | `@tolgee/svelte` | Jan Cizmar (`@jcizmar`) | Cho phép bản địa hóa theo ngữ cảnh trong các ứng dụng Svelte. | Liên kết store Svelte tích hợp với giao diện dịch thuật ngữ cảnh Tolgee và tự động tạo ảnh chụp màn hình. |
|
|
221
|
+
| Tháng 10 năm 2025 | `svelte-intlayer` | Aymeric Pineau (`@aymericzip`) | Cung cấp triển khai Intlayer hiệu năng cao được thiết kế riêng cho Svelte 5 và SvelteKit. | Liên kết nội dung phản ứng phù hợp với Svelte 5 Runes (`$state`), khai báo `.content` theo component, và chỉnh sửa CMS trực quan. |
|
|
222
|
+
| Tháng 7 năm 2025 | `@wuchale/svelte` | Kidus Adugna (`@K1DV5`) | Loại bỏ mã khai báo từ điển và nhập các hàm `$t` trong các component Svelte. | Bộ tiền xử lý Svelte phân tích cú pháp template lúc build và biên dịch các node văn bản thành kết quả bản địa hóa không cần wrapper. |
|
|
223
223
|
|
|
224
224
|
</Tab>
|
|
225
225
|
|
|
226
226
|
<Tab label="SolidJS" value="solid">
|
|
227
227
|
|
|
228
|
-
| Bản phát hành đầu | Thư viện | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
229
|
-
| ----------------- | ------------------------ | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
230
|
-
| Tháng 9 năm 2021 | `@solid-primitives/i18n` | Cung cấp một primitive i18n chuẩn mực phù hợp với tính phản ứng tinh chỉnh của SolidJS. | Bộ giải quyết bản dịch phản ứng dựa trên Signal cập nhật các node DOM mà không cần Virtual DOM hay re-render thừa thãi. |
|
|
231
|
-
| Tháng
|
|
232
|
-
| Tháng 6 năm 2026 | `@lingui/solid` | Mở rộng khả năng trích xuất macro lúc biên dịch và hỗ trợ ICU MessageFormat sang SolidJS. | Các chuyển đổi macro thích ứng với tính phản ứng của Solid, biên dịch thông điệp thành các cấu trúc runtime nhỏ gọn. |
|
|
228
|
+
| Bản phát hành đầu | Thư viện | Tác giả | Mục tiêu giải quyết | Đổi mới quan trọng |
|
|
229
|
+
| ----------------- | ------------------------ | ------------------------------ | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
230
|
+
| Tháng 9 năm 2021 | `@solid-primitives/i18n` | Cộng đồng SolidJS | Cung cấp một primitive i18n chuẩn mực phù hợp với tính phản ứng tinh chỉnh của SolidJS. | Bộ giải quyết bản dịch phản ứng dựa trên Signal cập nhật các node DOM mà không cần Virtual DOM hay re-render thừa thãi. |
|
|
231
|
+
| Tháng 7 năm 2025 | `solid-intlayer` | Aymeric Pineau (`@aymericzip`) | Cung cấp triển khai Intlayer hiệu năng cao được thiết kế riêng cho SolidJS và SolidStart. | Liên kết nội dung tương thích với Signal mà không tốn chi phí Virtual DOM, tự động gợi ý kiểu TypeScript và tích hợp trình soạn thảo trực quan. |
|
|
232
|
+
| Tháng 6 năm 2026 | `@lingui/solid` | Tomáš Ehrlich (`@tricoder42`) | Mở rộng khả năng trích xuất macro lúc biên dịch và hỗ trợ ICU MessageFormat sang SolidJS. | Các chuyển đổi macro thích ứng với tính phản ứng của Solid, biên dịch thông điệp thành các cấu trúc runtime nhỏ gọn. |
|
|
233
233
|
|
|
234
234
|
</Tab>
|
|
235
235
|
|
|
@@ -237,7 +237,7 @@ Các tab sau đây trình bày cách mỗi framework và hệ sinh thái giải
|
|
|
237
237
|
|
|
238
238
|
## Bốn kỷ nguyên kiến trúc của JavaScript i18n
|
|
239
239
|
|
|
240
|
-

|
|
241
241
|
|
|
242
242
|
Nhìn lại mười lăm năm phát triển, chúng ta có thể phân loại lịch sử quốc tế hóa JavaScript thành bốn kỷ nguyên kiến trúc rõ rệt:
|
|
243
243
|
|
|
@@ -287,7 +287,7 @@ Trong hơn một thập kỷ, các nền tảng thương mại đã xây dựng
|
|
|
287
287
|
|
|
288
288
|
Khi các Mô hình Ngôn ngữ Lớn (LLM) hiện đại hạ giá thành dịch thuật xuống chỉ còn một phần nhỏ của một xu đồng thời tăng độ chính xác về mặt ngôn ngữ, một thế hệ công cụ thương mại mới đã xuất hiện nhằm chiếm lĩnh thị trường này:
|
|
289
289
|
|
|
290
|
-
- Các nền tảng như
|
|
290
|
+
- Các nền tảng như **lingo.dev** hoặc **General Translation** (`gt-react`, `gt-next`) đã cố gắng đón đầu làn sóng AI bằng cách đưa ra các gói đăng ký thuê bao mới cùng các dịch vụ đám mây trung gian độc quyền.
|
|
291
291
|
- Ngược lại, **Intlayer** cung cấp khả năng dịch AI tự động trực tiếp thông qua CLI của mình, cho phép các đội ngũ kỹ sư kết nối khóa API của chính họ (như OpenAI, Anthropic, Mistral, hoặc Google Gemini). Hoàn toàn không có phí phụ thu, không chiết khấu, không ràng buộc nhà cung cấp, hoạt động hoàn toàn dựa trên chi phí gốc trực tiếp từ nhà cung cấp AI mà bạn lựa chọn.
|
|
292
292
|
|
|
293
293
|
### Hơn cả i18n: Một hệ thống nội dung đa ngôn ngữ toàn diện
|