@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 年までの技術進化を総括します。各世代のツールが何を解決しようとし、何が成功し、どこで壁にぶつかったのか、そしてフロントエンドアーキテクチャの変遷が現代の i18n にどう結実しているのかを紐解きます。
|
|
51
51
|
|
|
52
|
-

|
|
53
53
|
|
|
54
54
|
## 目次
|
|
55
55
|
|
|
@@ -149,87 +149,87 @@ ICU メッセージ構文の解釈や正規表現による変数展開を実行
|
|
|
149
149
|
|
|
150
150
|
<Tab label="Core 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`) | 実行時の辞書引き、重い構文解析器、バンドル肥大化を解消する。 | メッセージを Tree-shaking 可能な ECMAScript モジュールおよび素の 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`) | 実行時の辞書引き、重い構文解析器、バンドル肥大化を解消する。 | メッセージを Tree-shaking 可能な ECMAScript モジュールおよび素の 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 の変遷に追従し、Higher-Order Components から `<Trans>` JSX 補間および `useTranslation` フックへ刷新。 |
|
|
168
|
-
| 2018 年 1 月 | `@lingui/react` | 実行時の ICU 解析器がクライアントバンドルに与える容量負荷を軽減する。 | Babel/SWC マクロを活用し、ビルド時に `<Trans>` や `t` をコンパクトなインデックス配列へと事前変換。 |
|
|
169
|
-
| 2020 年 12 月 | `use-intl` | 従来の React i18n ライブラリに代わる、軽量でフック中心、かつ型安全な代替手段を提供する。 | 人間工学に基づいた使いやすい `useTranslations` や `useFormatter` フックと、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 の変遷に追従し、Higher-Order Components から `<Trans>` JSX 補間および `useTranslation` フックへ刷新。 |
|
|
168
|
+
| 2018 年 1 月 | `@lingui/react` | Tomáš Ehrlich (`@tricoder42`) | 実行時の ICU 解析器がクライアントバンドルに与える容量負荷を軽減する。 | Babel/SWC マクロを活用し、ビルド時に `<Trans>` や `t` をコンパクトなインデックス配列へと事前変換。 |
|
|
169
|
+
| 2020 年 12 月 | `use-intl` | Jan Amann (`@amannn`) | 従来の React i18n ライブラリに代わる、軽量でフック中心、かつ型安全な代替手段を提供する。 | 人間工学に基づいた使いやすい `useTranslations` や `useFormatter` フックと、TypeScript との深い統合。 |
|
|
170
|
+
| 2021 年 2 月 | `@tolgee/react` | Jan Cizmar (`@jcizmar`) | 開発者、翻訳者、デザイナー間のコミュニケーションの遅延を解消する。 | ブラウザ上で Alt キーを押しながらテキストをクリックして直接翻訳を更新し、画面キャプチャを自動取得できるインコンテキスト編集。 |
|
|
171
|
+
| 2024年8月 | `react-intlayer` | Aymeric Pineau (`@aymericzip`) | 中央集権的な JSON 辞書や管理困難な名前空間を排除し、React コンポーネントのライフサイクルに最適化された高速な環境を実現する。 | React レンダリングに最適化した `useIntlayer` フック、自動生成される厳格な型推論、コンポーネント単位の Tree-shaking、コンテキスト肥大化のないビジュアル CMS。 |
|
|
172
|
+
| 2024 年 7 月 | `gt-react` | Ernest McCarter (`@eoinest`) | 翻訳ファイルの手動エクスポートや翻訳データの継続的メンテナンスを自動化する。 | クラウド翻訳パイプラインと連携し、React コンポーネント内で直接 AI 自動翻訳を完結させる。 |
|
|
173
|
+
| 2025年6月 | `@wuchale/jsx` | Kidus Adugna (`@K1DV5`) | JSX を記述する際のキー命名作業や冗長な翻訳フックの記述を不要にする。 | 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 を実現する。 | ページ単位の Props を通じてローカライズ済みデータを引き渡す `serverSideTranslations` および `appWithTranslation`。 |
|
|
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 を実現する。 | ページ単位の Props を通じてローカライズ済みデータを引き渡す `serverSideTranslations` および `appWithTranslation`。 |
|
|
182
|
+
| 2020年12月 | `next-translate` | Arvin Wiyono (`@arvinn`) / Vinissimus (`@vinissimus`) | Pages Router アプリケーションにおける設定の簡素化とバンドル軽量化を図る。 | 各ページで実際に必要な翻訳名前空間のみをビルド時に自動注入する Webpack ローダープラグイン。 |
|
|
183
|
+
| 2020年12月 | `next-intl` | Jan Amann (`@amannn`) | Next.js App Router、React Server Components (RSC)、ストリーミング SSR に最適化した国際化アーキテクチャを再構築する。 | 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 としてバケツリレーする不便さを解消する。 | 同期的な Server Components 内で Prop-drilling なしに `useIntlayer` を直接呼び出し可能。待ち時間なしのサーバー描画、専用ルーティング、CMS 即時同期を提供。 |
|
|
187
|
+
| 2024年7月 | `gt-next` | Ernest McCarter (`@eoinest`) | AI 翻訳エンジンを活用し、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` 関数、単一ファイルコンポーネント (SFC) 内の独自 `<i18n>` ブロック。 |
|
|
196
|
-
| 2017 年 11 月 | `@nuxt/i18n` | Nuxt における言語付き URL ルーティング、SEO hreflang タグ、SSR ハイドレーションを包括的に処理する。 | プレフィックスや独自ドメインに基づくルーティングの自動生成、SEO メタタグ制御、翻訳データの遅延読み込みを兼ね備えたフルスタックモジュール。 |
|
|
197
|
-
|
|
|
198
|
-
| 2025
|
|
193
|
+
| 初期リリース | ライブラリ | 作成者 | 解決を目指した課題 | 主な技術的ブレイクスルー |
|
|
194
|
+
| ------------- | -------------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
195
|
+
| 2014 年 5 月 | `vue-i18n` | Kazupon (`@kazupon`) | Vue アプリケーション向けに、直感的でリアクティブな国際化の仕組みを提供する。 | Vue のリアクティビティへの完全な適合、テンプレートディレクティブ (`v-t`)、`$t` 関数、単一ファイルコンポーネント (SFC) 内の独自 `<i18n>` ブロック。 |
|
|
196
|
+
| 2017 年 11 月 | `@nuxt/i18n` | Nuxt コミュニティ | Nuxt における言語付き URL ルーティング、SEO hreflang タグ、SSR ハイドレーションを包括的に処理する。 | プレフィックスや独自ドメインに基づくルーティングの自動生成、SEO メタタグ制御、翻訳データの遅延読み込みを兼ね備えたフルスタックモジュール。 |
|
|
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` パイプ。 |
|
|
207
|
-
| 2019 年 7 月 | `@ngneat/transloco` | 従来の Angular 用ライブラリに存在した性能面のボトルネック、スコープ分離の難しさ、機能不足を解決する。 | 構造ディレクティブ (`*transloco`)、遅延読み込みモジュール向けの翻訳分離、SSR サポート、文案抽出 CLI。 |
|
|
208
|
-
| 2019 年 9 月 | `@angular/localize` | 言語ごとに TypeScript コードを完全再コンパイルする無駄を省き、Angular 組み込みのコンパイル時 i18n を刷新する。 | Ivy コンパイラによる高速なビルド後処理ステップとして置換される、タグ付きテンプレートリテラル `$localize`。 |
|
|
209
|
-
| 2021 年 2 月 | `@tolgee/ngx` | 画面の文脈に応じた翻訳修正とスクリーンショット自動記録を Angular の開発フローに組み込む。 | ブラウザ画面上で直接テキストを修正できる Tolgee 直結の Angular パイプおよびディレクティブ。 |
|
|
210
|
-
|
|
|
204
|
+
| 初期リリース | ライブラリ | 作成者 | 解決を目指した課題 | 主な技術的ブレイクスルー |
|
|
205
|
+
| ------------ | ------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
206
|
+
| 2017 年 2 月 | `ngx-translate` | Olivier Combe (`@ocombe`) | 言語ごとに別個の成果物をビルド・デプロイすることなく、Angular 内で動的な実行時翻訳を可能にする。 | 翻訳の動的フェッチと実行時の即時言語切り替えを支える `TranslateService` および `translate` パイプ。 |
|
|
207
|
+
| 2019 年 7 月 | `@ngneat/transloco` | Netanel Basal (`@NetanelBasal`) & Shahar Kazaz (`@shahar_k`) | 従来の Angular 用ライブラリに存在した性能面のボトルネック、スコープ分離の難しさ、機能不足を解決する。 | 構造ディレクティブ (`*transloco`)、遅延読み込みモジュール向けの翻訳分離、SSR サポート、文案抽出 CLI。 |
|
|
208
|
+
| 2019 年 9 月 | `@angular/localize` | Angular チーム (@angular) | 言語ごとに TypeScript コードを完全再コンパイルする無駄を省き、Angular 組み込みのコンパイル時 i18n を刷新する。 | Ivy コンパイラによる高速なビルド後処理ステップとして置換される、タグ付きテンプレートリテラル `$localize`。 |
|
|
209
|
+
| 2021 年 2 月 | `@tolgee/ngx` | Jan Cizmar (`@jcizmar`) | 画面の文脈に応じた翻訳修正とスクリーンショット自動記録を Angular の開発フローに組み込む。 | ブラウザ画面上で直接テキストを修正できる Tolgee 直結の Angular パイプおよびディレクティブ。 |
|
|
210
|
+
| 2026年3月 | `angular-intlayer` | Aymeric Pineau (`@aymericzip`) | モダン Angular(Signals、Standalone コンポーネント、SSR)に特化したネイティブな Intlayer ソリューションを提供する。 | Angular の変更検知に最適化した Signal ベースのリアクティブバインディング、Standalone DI、ビジュアル 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 のリアクティブな Store 概念に自然に溶け込む国際化ライブラリを提供する。 | 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 のリアクティブな Store 概念に自然に溶け込む国際化ライブラリを提供する。 | 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 プリミティブを提供する。 | 仮想 DOM や無駄な再レンダリングを介さず、DOM ノードを直接書き換える Signal ベースの翻訳リゾルバー。 |
|
|
231
|
-
| 2025
|
|
232
|
-
| 2026 年 6 月 | `@lingui/solid` | ビルド時のマクロ抽出機能と ICU MessageFormat の表現力を SolidJS に拡張する。 | Solid のリアクティビティに適合させたマクロ変換処理により、メッセージを実行時負荷の極めて小さい軽量構造へ変換。 |
|
|
228
|
+
| 初期リリース | ライブラリ | 作成者 | 解決を目指した課題 | 主な技術的ブレイクスルー |
|
|
229
|
+
| ------------ | ------------------------ | ------------------------------ | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
230
|
+
| 2021 年 9 月 | `@solid-primitives/i18n` | SolidJS コミュニティ | SolidJS の極めて細粒度なリアクティビティに最適化された i18n プリミティブを提供する。 | 仮想 DOM や無駄な再レンダリングを介さず、DOM ノードを直接書き換える Signal ベースの翻訳リゾルバー。 |
|
|
231
|
+
| 2025年7月 | `solid-intlayer` | Aymeric Pineau (`@aymericzip`) | SolidJS および SolidStart の設計理念に沿った高性能な Intlayer ソリューションを提供する。 | 仮想 DOM のオーバーヘッドを一切排除した Signal 最適化バインディング、厳密な TypeScript スキーマ補完、ビジュアルエディター連携。 |
|
|
232
|
+
| 2026 年 6 月 | `@lingui/solid` | Tomáš Ehrlich (`@tricoder42`) | ビルド時のマクロ抽出機能と ICU MessageFormat の表現力を SolidJS に拡張する。 | Solid のリアクティビティに適合させたマクロ変換処理により、メッセージを実行時負荷の極めて小さい軽量構造へ変換。 |
|
|
233
233
|
|
|
234
234
|
</Tab>
|
|
235
235
|
|
|
@@ -237,7 +237,7 @@ ICU メッセージ構文の解釈や正規表現による変数展開を実行
|
|
|
237
237
|
|
|
238
238
|
## JavaScript i18n における 4 つのアーキテクチャ世代
|
|
239
239
|
|
|
240
|
-

|
|
241
241
|
|
|
242
242
|
15 年間の進化を鳥瞰すると、JavaScript における国際化のアプローチは大きく 4 つの世代に分類できます。
|
|
243
243
|
|
|
@@ -287,7 +287,7 @@ ICU メッセージ構文の解釈や正規表現による変数展開を実行
|
|
|
287
287
|
|
|
288
288
|
大規模言語モデルの進化によって、高い翻訳精度を保ちながら 1 回あたりのコストが極小化されたことで、新たな世代のツールが登場しました。
|
|
289
289
|
|
|
290
|
-
-
|
|
290
|
+
- **lingo.dev** や **General Translation** (`gt-react`, `gt-next`) などは、独自の有料サブスクリプションや中継クラウド基盤を通じて AI 翻訳を提供しています。
|
|
291
291
|
- これに対し、**Intlayer** は CLI ツールを通じて AI 自動翻訳機能をオープンソースとして直接提供しています。チームは自分たちの API キー(OpenAI、Anthropic、Mistral、Google Gemini など)を接続するだけで利用でき、手数料やベンダーロックインなしに、各プロバイダーの実費のみで翻訳パイプラインを運用できます。
|
|
292
292
|
|
|
293
293
|
### 単なる i18n を超えて:包括的な多言語コンテンツ基盤へ
|