@intlayer/docs 9.5.4 → 9.5.5
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 +2 -1
- package/blog/ar/how_to_pick_react_i18n_library.md +28 -0
- package/blog/ar/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/de/how_to_pick_react_i18n_library.md +28 -0
- package/blog/de/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/en/how_to_pick_react_i18n_library.md +28 -0
- package/blog/en/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/en-GB/how_to_pick_react_i18n_library.md +28 -0
- package/blog/en-GB/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/es/how_to_pick_react_i18n_library.md +28 -0
- package/blog/es/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/fr/how_to_pick_react_i18n_library.md +28 -0
- package/blog/fr/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/hi/how_to_pick_react_i18n_library.md +28 -0
- package/blog/hi/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/id/how_to_pick_react_i18n_library.md +28 -0
- package/blog/id/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/it/how_to_pick_react_i18n_library.md +28 -0
- package/blog/it/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/ja/how_to_pick_react_i18n_library.md +28 -0
- package/blog/ja/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/ko/how_to_pick_react_i18n_library.md +28 -0
- package/blog/ko/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/pl/how_to_pick_react_i18n_library.md +28 -0
- package/blog/pl/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/pt/how_to_pick_react_i18n_library.md +28 -0
- package/blog/pt/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/ru/how_to_pick_react_i18n_library.md +28 -0
- package/blog/ru/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/tr/how_to_pick_react_i18n_library.md +28 -0
- package/blog/tr/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/uk/how_to_pick_react_i18n_library.md +28 -0
- package/blog/uk/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/vi/how_to_pick_react_i18n_library.md +28 -0
- package/blog/vi/how_to_pick_solid_i18n_library.md +19 -5
- package/blog/zh/how_to_pick_react_i18n_library.md +28 -0
- package/blog/zh/how_to_pick_solid_i18n_library.md +19 -5
- package/dist/cjs/generated/docs.entry.cjs +220 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +220 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +11 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/how_works_intlayer.md +86 -14
- package/docs/ar/intlayer_visual_editor.md +7 -0
- package/docs/ar/intlayer_with_astro.md +60 -36
- package/docs/ar/intlayer_with_astro_preact.md +7 -0
- package/docs/ar/intlayer_with_astro_react.md +7 -0
- package/docs/ar/intlayer_with_astro_solid.md +7 -0
- package/docs/ar/intlayer_with_astro_svelte.md +7 -0
- package/docs/ar/intlayer_with_astro_vanilla.md +7 -0
- package/docs/ar/intlayer_with_astro_vue.md +7 -0
- package/docs/ar/intlayer_with_nextjs_14.md +7 -0
- package/docs/ar/intlayer_with_nextjs_15.md +7 -0
- package/docs/ar/intlayer_with_nextjs_16.md +7 -0
- package/docs/ar/intlayer_with_react_router_v7.md +7 -0
- package/docs/ar/intlayer_with_remix_3.md +73 -112
- package/docs/ar/intlayer_with_tanstack+solid.md +7 -0
- package/docs/ar/intlayer_with_tanstack.md +7 -0
- package/docs/ar/intlayer_with_vite+preact.md +7 -0
- package/docs/ar/intlayer_with_vite+react.md +7 -0
- package/docs/ar/intlayer_with_vite+solid.md +7 -0
- package/docs/ar/packages/astro-intlayer/exports.md +161 -9
- package/docs/ar/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/ar/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/ar/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/ar/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/ar/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/ar/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/ar/packages/remix-intlayer/exports.md +80 -0
- package/docs/ar/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/ar/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/ar/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/ar/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/ar/readme.md +2 -1
- package/docs/de/how_works_intlayer.md +86 -14
- package/docs/de/intlayer_visual_editor.md +7 -0
- package/docs/de/intlayer_with_astro.md +60 -36
- package/docs/de/intlayer_with_astro_preact.md +7 -0
- package/docs/de/intlayer_with_astro_react.md +7 -0
- package/docs/de/intlayer_with_astro_solid.md +7 -0
- package/docs/de/intlayer_with_astro_svelte.md +7 -0
- package/docs/de/intlayer_with_astro_vanilla.md +7 -0
- package/docs/de/intlayer_with_astro_vue.md +7 -0
- package/docs/de/intlayer_with_nextjs_14.md +7 -0
- package/docs/de/intlayer_with_nextjs_15.md +7 -0
- package/docs/de/intlayer_with_nextjs_16.md +7 -0
- package/docs/de/intlayer_with_react_router_v7.md +7 -0
- package/docs/de/intlayer_with_remix_3.md +70 -109
- package/docs/de/intlayer_with_tanstack+solid.md +7 -0
- package/docs/de/intlayer_with_tanstack.md +7 -0
- package/docs/de/intlayer_with_vite+preact.md +7 -0
- package/docs/de/intlayer_with_vite+react.md +7 -0
- package/docs/de/intlayer_with_vite+solid.md +7 -0
- package/docs/de/packages/astro-intlayer/exports.md +164 -12
- package/docs/de/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/de/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/de/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/de/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/de/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/de/packages/remix-intlayer/Intlayer.md +77 -0
- package/docs/de/packages/remix-intlayer/exports.md +176 -0
- package/docs/de/packages/remix-intlayer/intlayerMiddleware.md +101 -0
- package/docs/de/packages/remix-intlayer/useDictionary.md +94 -0
- package/docs/de/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/de/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/de/readme.md +2 -1
- package/docs/en/how_works_intlayer.md +86 -14
- package/docs/en/intlayer_visual_editor.md +7 -0
- package/docs/en/intlayer_with_astro.md +63 -41
- package/docs/en/intlayer_with_astro_preact.md +7 -0
- package/docs/en/intlayer_with_astro_react.md +7 -0
- package/docs/en/intlayer_with_astro_solid.md +7 -0
- package/docs/en/intlayer_with_astro_svelte.md +7 -0
- package/docs/en/intlayer_with_astro_vanilla.md +7 -0
- package/docs/en/intlayer_with_astro_vue.md +7 -0
- package/docs/en/intlayer_with_nextjs_14.md +7 -0
- package/docs/en/intlayer_with_nextjs_15.md +7 -0
- package/docs/en/intlayer_with_nextjs_16.md +7 -0
- package/docs/en/intlayer_with_react_router_v7.md +7 -0
- package/docs/en/intlayer_with_remix_3.md +74 -122
- package/docs/en/intlayer_with_tanstack+solid.md +7 -0
- package/docs/en/intlayer_with_tanstack.md +7 -0
- package/docs/en/intlayer_with_vite+preact.md +7 -0
- package/docs/en/intlayer_with_vite+react.md +7 -0
- package/docs/en/intlayer_with_vite+solid.md +7 -0
- package/docs/en/introduction.md +2 -1
- package/docs/en/packages/astro-intlayer/exports.md +161 -9
- package/docs/en/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/en/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/en/packages/astro-intlayer/useDictionary.md +94 -0
- package/docs/en/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/en/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/en/packages/remix-intlayer/Intlayer.md +77 -0
- package/docs/en/packages/remix-intlayer/exports.md +176 -0
- package/docs/en/packages/remix-intlayer/intlayerMiddleware.md +101 -0
- package/docs/en/packages/remix-intlayer/useDictionary.md +94 -0
- package/docs/en/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/en/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/en/readme.md +2 -1
- package/docs/en-GB/how_works_intlayer.md +86 -14
- package/docs/en-GB/intlayer_visual_editor.md +7 -0
- package/docs/en-GB/intlayer_with_astro.md +60 -36
- package/docs/en-GB/intlayer_with_astro_preact.md +7 -0
- package/docs/en-GB/intlayer_with_astro_react.md +7 -0
- package/docs/en-GB/intlayer_with_astro_solid.md +7 -0
- package/docs/en-GB/intlayer_with_astro_svelte.md +7 -0
- package/docs/en-GB/intlayer_with_astro_vanilla.md +7 -0
- package/docs/en-GB/intlayer_with_astro_vue.md +7 -0
- package/docs/en-GB/intlayer_with_nextjs_14.md +7 -0
- package/docs/en-GB/intlayer_with_nextjs_15.md +7 -0
- package/docs/en-GB/intlayer_with_nextjs_16.md +7 -0
- package/docs/en-GB/intlayer_with_react_router_v7.md +7 -0
- package/docs/en-GB/intlayer_with_remix_3.md +66 -105
- package/docs/en-GB/intlayer_with_tanstack+solid.md +7 -0
- package/docs/en-GB/intlayer_with_tanstack.md +7 -0
- package/docs/en-GB/intlayer_with_vite+preact.md +7 -0
- package/docs/en-GB/intlayer_with_vite+react.md +7 -0
- package/docs/en-GB/intlayer_with_vite+solid.md +7 -0
- package/docs/en-GB/packages/astro-intlayer/exports.md +162 -10
- package/docs/en-GB/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/en-GB/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/en-GB/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/en-GB/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/en-GB/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/en-GB/packages/remix-intlayer/Intlayer.md +77 -0
- package/docs/en-GB/packages/remix-intlayer/exports.md +176 -0
- package/docs/en-GB/packages/remix-intlayer/intlayerMiddleware.md +101 -0
- package/docs/en-GB/packages/remix-intlayer/useDictionary.md +94 -0
- package/docs/en-GB/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/en-GB/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/en-GB/readme.md +2 -1
- package/docs/es/how_works_intlayer.md +86 -14
- package/docs/es/intlayer_visual_editor.md +7 -0
- package/docs/es/intlayer_with_astro.md +60 -36
- package/docs/es/intlayer_with_astro_preact.md +7 -0
- package/docs/es/intlayer_with_astro_react.md +7 -0
- package/docs/es/intlayer_with_astro_solid.md +7 -0
- package/docs/es/intlayer_with_astro_svelte.md +7 -0
- package/docs/es/intlayer_with_astro_vanilla.md +7 -0
- package/docs/es/intlayer_with_astro_vue.md +7 -0
- package/docs/es/intlayer_with_nextjs_14.md +7 -0
- package/docs/es/intlayer_with_nextjs_15.md +7 -0
- package/docs/es/intlayer_with_nextjs_16.md +7 -0
- package/docs/es/intlayer_with_react_router_v7.md +7 -0
- package/docs/es/intlayer_with_remix_3.md +73 -112
- package/docs/es/intlayer_with_tanstack+solid.md +7 -0
- package/docs/es/intlayer_with_tanstack.md +7 -0
- package/docs/es/intlayer_with_vite+preact.md +7 -0
- package/docs/es/intlayer_with_vite+react.md +7 -0
- package/docs/es/intlayer_with_vite+solid.md +7 -0
- package/docs/es/packages/astro-intlayer/exports.md +162 -10
- package/docs/es/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/es/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/es/packages/astro-intlayer/useDictionary.md +94 -0
- package/docs/es/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/es/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/es/packages/remix-intlayer/Intlayer.md +77 -0
- package/docs/es/packages/remix-intlayer/exports.md +176 -0
- package/docs/es/packages/remix-intlayer/intlayerMiddleware.md +101 -0
- package/docs/es/packages/remix-intlayer/useDictionary.md +94 -0
- package/docs/es/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/es/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/es/readme.md +2 -1
- package/docs/fr/how_works_intlayer.md +86 -14
- package/docs/fr/intlayer_visual_editor.md +7 -0
- package/docs/fr/intlayer_with_astro.md +60 -36
- package/docs/fr/intlayer_with_astro_preact.md +7 -0
- package/docs/fr/intlayer_with_astro_react.md +7 -0
- package/docs/fr/intlayer_with_astro_solid.md +7 -0
- package/docs/fr/intlayer_with_astro_svelte.md +7 -0
- package/docs/fr/intlayer_with_astro_vanilla.md +7 -0
- package/docs/fr/intlayer_with_astro_vue.md +7 -0
- package/docs/fr/intlayer_with_nextjs_14.md +7 -0
- package/docs/fr/intlayer_with_nextjs_15.md +7 -0
- package/docs/fr/intlayer_with_nextjs_16.md +7 -0
- package/docs/fr/intlayer_with_react_router_v7.md +7 -0
- package/docs/fr/intlayer_with_remix_3.md +74 -122
- package/docs/fr/intlayer_with_tanstack+solid.md +7 -0
- package/docs/fr/intlayer_with_tanstack.md +7 -0
- package/docs/fr/intlayer_with_vite+preact.md +7 -0
- package/docs/fr/intlayer_with_vite+react.md +7 -0
- package/docs/fr/intlayer_with_vite+solid.md +7 -0
- package/docs/fr/packages/astro-intlayer/exports.md +162 -10
- package/docs/fr/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/fr/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/fr/packages/astro-intlayer/useDictionary.md +94 -0
- package/docs/fr/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/fr/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/fr/packages/remix-intlayer/Intlayer.md +77 -0
- package/docs/fr/packages/remix-intlayer/exports.md +176 -0
- package/docs/fr/packages/remix-intlayer/intlayerMiddleware.md +101 -0
- package/docs/fr/packages/remix-intlayer/useDictionary.md +94 -0
- package/docs/fr/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/fr/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/fr/readme.md +2 -1
- package/docs/hi/how_works_intlayer.md +86 -14
- package/docs/hi/intlayer_visual_editor.md +7 -0
- package/docs/hi/intlayer_with_astro.md +61 -37
- package/docs/hi/intlayer_with_astro_preact.md +7 -0
- package/docs/hi/intlayer_with_astro_react.md +7 -0
- package/docs/hi/intlayer_with_astro_solid.md +7 -0
- package/docs/hi/intlayer_with_astro_svelte.md +7 -0
- package/docs/hi/intlayer_with_astro_vanilla.md +7 -0
- package/docs/hi/intlayer_with_astro_vue.md +7 -0
- package/docs/hi/intlayer_with_nextjs_14.md +7 -0
- package/docs/hi/intlayer_with_nextjs_15.md +7 -0
- package/docs/hi/intlayer_with_nextjs_16.md +7 -0
- package/docs/hi/intlayer_with_react_router_v7.md +7 -0
- package/docs/hi/intlayer_with_remix_3.md +73 -112
- package/docs/hi/intlayer_with_tanstack+solid.md +7 -0
- package/docs/hi/intlayer_with_tanstack.md +7 -0
- package/docs/hi/intlayer_with_vite+preact.md +7 -0
- package/docs/hi/intlayer_with_vite+react.md +7 -0
- package/docs/hi/intlayer_with_vite+solid.md +7 -0
- package/docs/hi/packages/astro-intlayer/exports.md +165 -13
- package/docs/hi/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/hi/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/hi/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/hi/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/hi/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/hi/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/hi/packages/remix-intlayer/exports.md +80 -0
- package/docs/hi/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/hi/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/hi/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/hi/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/hi/readme.md +2 -1
- package/docs/id/how_works_intlayer.md +86 -14
- package/docs/id/intlayer_visual_editor.md +7 -0
- package/docs/id/intlayer_with_astro.md +60 -36
- package/docs/id/intlayer_with_astro_preact.md +7 -0
- package/docs/id/intlayer_with_astro_react.md +7 -0
- package/docs/id/intlayer_with_astro_solid.md +7 -0
- package/docs/id/intlayer_with_astro_svelte.md +7 -0
- package/docs/id/intlayer_with_astro_vanilla.md +7 -0
- package/docs/id/intlayer_with_astro_vue.md +7 -0
- package/docs/id/intlayer_with_nextjs_14.md +7 -0
- package/docs/id/intlayer_with_nextjs_15.md +7 -0
- package/docs/id/intlayer_with_nextjs_16.md +7 -0
- package/docs/id/intlayer_with_react_router_v7.md +7 -0
- package/docs/id/intlayer_with_remix_3.md +101 -148
- package/docs/id/intlayer_with_tanstack+solid.md +7 -0
- package/docs/id/intlayer_with_tanstack.md +7 -0
- package/docs/id/intlayer_with_vite+preact.md +7 -0
- package/docs/id/intlayer_with_vite+react.md +7 -0
- package/docs/id/intlayer_with_vite+solid.md +7 -0
- package/docs/id/packages/astro-intlayer/exports.md +163 -11
- package/docs/id/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/id/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/id/packages/astro-intlayer/useDictionary.md +94 -0
- package/docs/id/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/id/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/id/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/id/packages/remix-intlayer/exports.md +80 -0
- package/docs/id/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/id/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/id/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/id/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/id/readme.md +2 -1
- package/docs/it/how_works_intlayer.md +86 -14
- package/docs/it/intlayer_visual_editor.md +7 -0
- package/docs/it/intlayer_with_astro.md +60 -36
- package/docs/it/intlayer_with_astro_preact.md +7 -0
- package/docs/it/intlayer_with_astro_react.md +7 -0
- package/docs/it/intlayer_with_astro_solid.md +7 -0
- package/docs/it/intlayer_with_astro_svelte.md +7 -0
- package/docs/it/intlayer_with_astro_vanilla.md +7 -0
- package/docs/it/intlayer_with_astro_vue.md +7 -0
- package/docs/it/intlayer_with_nextjs_14.md +7 -0
- package/docs/it/intlayer_with_nextjs_15.md +7 -0
- package/docs/it/intlayer_with_nextjs_16.md +7 -0
- package/docs/it/intlayer_with_react_router_v7.md +7 -0
- package/docs/it/intlayer_with_remix_3.md +70 -109
- package/docs/it/intlayer_with_tanstack+solid.md +7 -0
- package/docs/it/intlayer_with_tanstack.md +7 -0
- package/docs/it/intlayer_with_vite+preact.md +7 -0
- package/docs/it/intlayer_with_vite+react.md +7 -0
- package/docs/it/intlayer_with_vite+solid.md +7 -0
- package/docs/it/packages/astro-intlayer/exports.md +161 -9
- package/docs/it/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/it/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/it/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/it/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/it/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/it/packages/remix-intlayer/Intlayer.md +77 -0
- package/docs/it/packages/remix-intlayer/exports.md +176 -0
- package/docs/it/packages/remix-intlayer/intlayerMiddleware.md +101 -0
- package/docs/it/packages/remix-intlayer/useDictionary.md +94 -0
- package/docs/it/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/it/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/it/readme.md +2 -1
- package/docs/ja/how_works_intlayer.md +86 -14
- package/docs/ja/intlayer_visual_editor.md +7 -0
- package/docs/ja/intlayer_with_astro.md +61 -37
- package/docs/ja/intlayer_with_astro_preact.md +7 -0
- package/docs/ja/intlayer_with_astro_react.md +7 -0
- package/docs/ja/intlayer_with_astro_solid.md +7 -0
- package/docs/ja/intlayer_with_astro_svelte.md +7 -0
- package/docs/ja/intlayer_with_astro_vanilla.md +7 -0
- package/docs/ja/intlayer_with_astro_vue.md +7 -0
- package/docs/ja/intlayer_with_nextjs_14.md +7 -0
- package/docs/ja/intlayer_with_nextjs_15.md +7 -0
- package/docs/ja/intlayer_with_nextjs_16.md +7 -0
- package/docs/ja/intlayer_with_react_router_v7.md +7 -0
- package/docs/ja/intlayer_with_remix_3.md +73 -112
- package/docs/ja/intlayer_with_tanstack+solid.md +7 -0
- package/docs/ja/intlayer_with_tanstack.md +7 -0
- package/docs/ja/intlayer_with_vite+preact.md +7 -0
- package/docs/ja/intlayer_with_vite+react.md +7 -0
- package/docs/ja/intlayer_with_vite+solid.md +7 -0
- package/docs/ja/packages/astro-intlayer/exports.md +163 -11
- package/docs/ja/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/ja/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/ja/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/ja/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/ja/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/ja/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/ja/packages/remix-intlayer/exports.md +80 -0
- package/docs/ja/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/ja/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/ja/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/ja/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/ja/readme.md +2 -1
- package/docs/ko/how_works_intlayer.md +86 -14
- package/docs/ko/intlayer_visual_editor.md +7 -0
- package/docs/ko/intlayer_with_astro.md +61 -37
- package/docs/ko/intlayer_with_astro_preact.md +7 -0
- package/docs/ko/intlayer_with_astro_react.md +7 -0
- package/docs/ko/intlayer_with_astro_solid.md +7 -0
- package/docs/ko/intlayer_with_astro_svelte.md +7 -0
- package/docs/ko/intlayer_with_astro_vanilla.md +7 -0
- package/docs/ko/intlayer_with_astro_vue.md +7 -0
- package/docs/ko/intlayer_with_nextjs_14.md +7 -0
- package/docs/ko/intlayer_with_nextjs_15.md +7 -0
- package/docs/ko/intlayer_with_nextjs_16.md +7 -0
- package/docs/ko/intlayer_with_react_router_v7.md +7 -0
- package/docs/ko/intlayer_with_remix_3.md +73 -112
- package/docs/ko/intlayer_with_tanstack+solid.md +7 -0
- package/docs/ko/intlayer_with_tanstack.md +7 -0
- package/docs/ko/intlayer_with_vite+preact.md +7 -0
- package/docs/ko/intlayer_with_vite+react.md +7 -0
- package/docs/ko/intlayer_with_vite+solid.md +7 -0
- package/docs/ko/packages/astro-intlayer/exports.md +163 -11
- package/docs/ko/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/ko/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/ko/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/ko/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/ko/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/ko/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/ko/packages/remix-intlayer/exports.md +80 -0
- package/docs/ko/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/ko/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/ko/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/ko/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/ko/readme.md +2 -1
- package/docs/pl/how_works_intlayer.md +86 -14
- package/docs/pl/intlayer_visual_editor.md +7 -0
- package/docs/pl/intlayer_with_astro.md +61 -37
- package/docs/pl/intlayer_with_astro_preact.md +7 -0
- package/docs/pl/intlayer_with_astro_react.md +7 -0
- package/docs/pl/intlayer_with_astro_solid.md +7 -0
- package/docs/pl/intlayer_with_astro_svelte.md +7 -0
- package/docs/pl/intlayer_with_astro_vanilla.md +7 -0
- package/docs/pl/intlayer_with_astro_vue.md +7 -0
- package/docs/pl/intlayer_with_nextjs_14.md +7 -0
- package/docs/pl/intlayer_with_nextjs_15.md +7 -0
- package/docs/pl/intlayer_with_nextjs_16.md +7 -0
- package/docs/pl/intlayer_with_react_router_v7.md +7 -0
- package/docs/pl/intlayer_with_remix_3.md +101 -148
- package/docs/pl/intlayer_with_tanstack+solid.md +7 -0
- package/docs/pl/intlayer_with_tanstack.md +7 -0
- package/docs/pl/intlayer_with_vite+preact.md +7 -0
- package/docs/pl/intlayer_with_vite+react.md +7 -0
- package/docs/pl/intlayer_with_vite+solid.md +7 -0
- package/docs/pl/packages/astro-intlayer/exports.md +162 -10
- package/docs/pl/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/pl/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/pl/packages/astro-intlayer/useDictionary.md +94 -0
- package/docs/pl/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/pl/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/pl/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/pl/packages/remix-intlayer/exports.md +80 -0
- package/docs/pl/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/pl/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/pl/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/pl/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/pl/readme.md +2 -1
- package/docs/pt/how_works_intlayer.md +86 -14
- package/docs/pt/intlayer_visual_editor.md +7 -0
- package/docs/pt/intlayer_with_astro.md +61 -37
- package/docs/pt/intlayer_with_astro_preact.md +7 -0
- package/docs/pt/intlayer_with_astro_react.md +7 -0
- package/docs/pt/intlayer_with_astro_solid.md +7 -0
- package/docs/pt/intlayer_with_astro_svelte.md +7 -0
- package/docs/pt/intlayer_with_astro_vanilla.md +7 -0
- package/docs/pt/intlayer_with_astro_vue.md +7 -0
- package/docs/pt/intlayer_with_nextjs_14.md +7 -0
- package/docs/pt/intlayer_with_nextjs_15.md +7 -0
- package/docs/pt/intlayer_with_nextjs_16.md +7 -0
- package/docs/pt/intlayer_with_react_router_v7.md +7 -0
- package/docs/pt/intlayer_with_remix_3.md +73 -112
- package/docs/pt/intlayer_with_tanstack+solid.md +7 -0
- package/docs/pt/intlayer_with_tanstack.md +7 -0
- package/docs/pt/intlayer_with_vite+preact.md +7 -0
- package/docs/pt/intlayer_with_vite+react.md +7 -0
- package/docs/pt/intlayer_with_vite+solid.md +7 -0
- package/docs/pt/packages/astro-intlayer/exports.md +162 -10
- package/docs/pt/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/pt/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/pt/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/pt/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/pt/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/pt/packages/remix-intlayer/Intlayer.md +77 -0
- package/docs/pt/packages/remix-intlayer/exports.md +176 -0
- package/docs/pt/packages/remix-intlayer/intlayerMiddleware.md +101 -0
- package/docs/pt/packages/remix-intlayer/useDictionary.md +94 -0
- package/docs/pt/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/pt/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/pt/readme.md +2 -1
- package/docs/ru/how_works_intlayer.md +86 -14
- package/docs/ru/intlayer_visual_editor.md +7 -0
- package/docs/ru/intlayer_with_astro.md +61 -37
- package/docs/ru/intlayer_with_astro_preact.md +7 -0
- package/docs/ru/intlayer_with_astro_react.md +7 -0
- package/docs/ru/intlayer_with_astro_solid.md +7 -0
- package/docs/ru/intlayer_with_astro_svelte.md +7 -0
- package/docs/ru/intlayer_with_astro_vanilla.md +7 -0
- package/docs/ru/intlayer_with_astro_vue.md +7 -0
- package/docs/ru/intlayer_with_nextjs_14.md +7 -0
- package/docs/ru/intlayer_with_nextjs_15.md +7 -0
- package/docs/ru/intlayer_with_nextjs_16.md +7 -0
- package/docs/ru/intlayer_with_react_router_v7.md +7 -0
- package/docs/ru/intlayer_with_remix_3.md +73 -112
- package/docs/ru/intlayer_with_tanstack+solid.md +7 -0
- package/docs/ru/intlayer_with_tanstack.md +7 -0
- package/docs/ru/intlayer_with_vite+preact.md +7 -0
- package/docs/ru/intlayer_with_vite+react.md +7 -0
- package/docs/ru/intlayer_with_vite+solid.md +7 -0
- package/docs/ru/packages/astro-intlayer/exports.md +164 -12
- package/docs/ru/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/ru/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/ru/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/ru/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/ru/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/ru/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/ru/packages/remix-intlayer/exports.md +80 -0
- package/docs/ru/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/ru/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/ru/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/ru/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/ru/readme.md +2 -1
- package/docs/tr/how_works_intlayer.md +86 -14
- package/docs/tr/intlayer_visual_editor.md +7 -0
- package/docs/tr/intlayer_with_astro.md +60 -36
- package/docs/tr/intlayer_with_astro_preact.md +7 -0
- package/docs/tr/intlayer_with_astro_react.md +7 -0
- package/docs/tr/intlayer_with_astro_solid.md +7 -0
- package/docs/tr/intlayer_with_astro_svelte.md +7 -0
- package/docs/tr/intlayer_with_astro_vanilla.md +7 -0
- package/docs/tr/intlayer_with_astro_vue.md +7 -0
- package/docs/tr/intlayer_with_nextjs_14.md +7 -0
- package/docs/tr/intlayer_with_nextjs_15.md +7 -0
- package/docs/tr/intlayer_with_nextjs_16.md +7 -0
- package/docs/tr/intlayer_with_react_router_v7.md +7 -0
- package/docs/tr/intlayer_with_remix_3.md +101 -148
- package/docs/tr/intlayer_with_tanstack+solid.md +7 -0
- package/docs/tr/intlayer_with_tanstack.md +7 -0
- package/docs/tr/intlayer_with_vite+preact.md +7 -0
- package/docs/tr/intlayer_with_vite+react.md +7 -0
- package/docs/tr/intlayer_with_vite+solid.md +7 -0
- package/docs/tr/packages/astro-intlayer/exports.md +165 -13
- package/docs/tr/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/tr/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/tr/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/tr/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/tr/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/tr/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/tr/packages/remix-intlayer/exports.md +80 -0
- package/docs/tr/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/tr/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/tr/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/tr/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/tr/readme.md +2 -1
- package/docs/uk/how_works_intlayer.md +86 -14
- package/docs/uk/intlayer_visual_editor.md +7 -0
- package/docs/uk/intlayer_with_astro.md +61 -37
- package/docs/uk/intlayer_with_astro_preact.md +7 -0
- package/docs/uk/intlayer_with_astro_react.md +7 -0
- package/docs/uk/intlayer_with_astro_solid.md +7 -0
- package/docs/uk/intlayer_with_astro_svelte.md +7 -0
- package/docs/uk/intlayer_with_astro_vanilla.md +7 -0
- package/docs/uk/intlayer_with_astro_vue.md +7 -0
- package/docs/uk/intlayer_with_nextjs_14.md +7 -0
- package/docs/uk/intlayer_with_nextjs_15.md +7 -0
- package/docs/uk/intlayer_with_nextjs_16.md +7 -0
- package/docs/uk/intlayer_with_react_router_v7.md +7 -0
- package/docs/uk/intlayer_with_remix_3.md +101 -148
- package/docs/uk/intlayer_with_tanstack+solid.md +7 -0
- package/docs/uk/intlayer_with_tanstack.md +7 -0
- package/docs/uk/intlayer_with_vite+preact.md +7 -0
- package/docs/uk/intlayer_with_vite+react.md +7 -0
- package/docs/uk/intlayer_with_vite+solid.md +7 -0
- package/docs/uk/packages/astro-intlayer/exports.md +162 -10
- package/docs/uk/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/uk/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/uk/packages/astro-intlayer/useDictionary.md +94 -0
- package/docs/uk/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/uk/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/uk/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/uk/packages/remix-intlayer/exports.md +80 -0
- package/docs/uk/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/uk/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/uk/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/uk/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/uk/readme.md +2 -1
- package/docs/vi/how_works_intlayer.md +86 -14
- package/docs/vi/intlayer_visual_editor.md +7 -0
- package/docs/vi/intlayer_with_astro.md +60 -36
- package/docs/vi/intlayer_with_astro_preact.md +7 -0
- package/docs/vi/intlayer_with_astro_react.md +7 -0
- package/docs/vi/intlayer_with_astro_solid.md +7 -0
- package/docs/vi/intlayer_with_astro_svelte.md +7 -0
- package/docs/vi/intlayer_with_astro_vanilla.md +7 -0
- package/docs/vi/intlayer_with_astro_vue.md +7 -0
- package/docs/vi/intlayer_with_nextjs_14.md +7 -0
- package/docs/vi/intlayer_with_nextjs_15.md +7 -0
- package/docs/vi/intlayer_with_nextjs_16.md +7 -0
- package/docs/vi/intlayer_with_react_router_v7.md +7 -0
- package/docs/vi/intlayer_with_remix_3.md +101 -148
- package/docs/vi/intlayer_with_tanstack+solid.md +7 -0
- package/docs/vi/intlayer_with_tanstack.md +7 -0
- package/docs/vi/intlayer_with_vite+preact.md +7 -0
- package/docs/vi/intlayer_with_vite+react.md +7 -0
- package/docs/vi/intlayer_with_vite+solid.md +7 -0
- package/docs/vi/packages/astro-intlayer/exports.md +167 -15
- package/docs/vi/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/vi/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/vi/packages/astro-intlayer/useDictionary.md +94 -0
- package/docs/vi/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/vi/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/vi/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/vi/packages/remix-intlayer/exports.md +80 -0
- package/docs/vi/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/vi/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/vi/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/vi/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/vi/readme.md +2 -1
- package/docs/zh/how_works_intlayer.md +86 -14
- package/docs/zh/intlayer_visual_editor.md +7 -0
- package/docs/zh/intlayer_with_astro.md +61 -37
- package/docs/zh/intlayer_with_astro_preact.md +7 -0
- package/docs/zh/intlayer_with_astro_react.md +7 -0
- package/docs/zh/intlayer_with_astro_solid.md +7 -0
- package/docs/zh/intlayer_with_astro_svelte.md +7 -0
- package/docs/zh/intlayer_with_astro_vanilla.md +7 -0
- package/docs/zh/intlayer_with_astro_vue.md +7 -0
- package/docs/zh/intlayer_with_nextjs_14.md +7 -0
- package/docs/zh/intlayer_with_nextjs_15.md +7 -0
- package/docs/zh/intlayer_with_nextjs_16.md +7 -0
- package/docs/zh/intlayer_with_react_router_v7.md +7 -0
- package/docs/zh/intlayer_with_remix_3.md +74 -112
- package/docs/zh/intlayer_with_tanstack+solid.md +7 -0
- package/docs/zh/intlayer_with_tanstack.md +7 -0
- package/docs/zh/intlayer_with_vite+preact.md +7 -0
- package/docs/zh/intlayer_with_vite+react.md +7 -0
- package/docs/zh/intlayer_with_vite+solid.md +7 -0
- package/docs/zh/packages/astro-intlayer/exports.md +166 -14
- package/docs/zh/packages/astro-intlayer/intlayer.md +76 -0
- package/docs/zh/packages/astro-intlayer/onRequest.md +76 -0
- package/docs/zh/packages/astro-intlayer/useDictionary.md +95 -0
- package/docs/zh/packages/astro-intlayer/useIntlayer.md +98 -0
- package/docs/zh/packages/astro-intlayer/useLocale.md +126 -0
- package/docs/zh/packages/remix-intlayer/Intlayer.md +55 -0
- package/docs/zh/packages/remix-intlayer/exports.md +80 -0
- package/docs/zh/packages/remix-intlayer/intlayerMiddleware.md +55 -0
- package/docs/zh/packages/remix-intlayer/useDictionary.md +95 -0
- package/docs/zh/packages/remix-intlayer/useIntlayer.md +94 -0
- package/docs/zh/packages/remix-intlayer/useLocale.md +104 -0
- package/docs/zh/readme.md +2 -1
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +223 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-19
|
|
3
|
+
updatedAt: 2026-09-19
|
|
4
|
+
title: توثيق خطاف useDictionary | remix-intlayer
|
|
5
|
+
description: تعرّف على كيفية استخدام خطاف useDictionary في تطبيقات Remix 3 لتحليل كائنات القاموس وفقًا للغة الطلب الحالية.
|
|
6
|
+
keywords:
|
|
7
|
+
- useDictionary
|
|
8
|
+
- dictionary
|
|
9
|
+
- remix
|
|
10
|
+
- remix-3
|
|
11
|
+
- Intlayer
|
|
12
|
+
- intlayer
|
|
13
|
+
- التدويل
|
|
14
|
+
- توثيق
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- packages
|
|
18
|
+
- remix-intlayer
|
|
19
|
+
- useDictionary
|
|
20
|
+
history:
|
|
21
|
+
- version: 9.5.5
|
|
22
|
+
date: 2026-09-19
|
|
23
|
+
changes: "توثيق أولي لخطاف useDictionary"
|
|
24
|
+
author: aymericzip
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# توثيق خطاف useDictionary
|
|
28
|
+
|
|
29
|
+
يقوم خطاف `useDictionary` بتحويل كائن قاموس مستورد أو مضمن وإرجاع محتواه المحلل وفقًا للغة الطلب الحالية في تطبيقات Remix 3.
|
|
30
|
+
|
|
31
|
+
على عكس `useIntlayer` الذي يبحث عن القواميس بواسطة مفتاحها النصي من سجل القواميس العام، يقبل `useDictionary` كائن القاموس مباشرة.
|
|
32
|
+
|
|
33
|
+
## الاستخدام
|
|
34
|
+
|
|
35
|
+
```ts fileName="src/views/home.ts"
|
|
36
|
+
import { useDictionary } from "remix-intlayer";
|
|
37
|
+
import homeContent from "./home.content";
|
|
38
|
+
|
|
39
|
+
export const HomeView = () => {
|
|
40
|
+
const content = useDictionary(homeContent);
|
|
41
|
+
|
|
42
|
+
return `
|
|
43
|
+
<div>
|
|
44
|
+
<h1>${content.title}</h1>
|
|
45
|
+
<p>${content.subtitle}</p>
|
|
46
|
+
</div>
|
|
47
|
+
`;
|
|
48
|
+
};
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
يمكنك أيضًا تمرير قواميس مضمنة محددة باستخدام `t()`:
|
|
52
|
+
|
|
53
|
+
```ts
|
|
54
|
+
import { useDictionary } from "remix-intlayer";
|
|
55
|
+
import { t } from "intlayer";
|
|
56
|
+
|
|
57
|
+
export const FooterView = () => {
|
|
58
|
+
const content = useDictionary({
|
|
59
|
+
key: "footer",
|
|
60
|
+
content: {
|
|
61
|
+
copyright: t({
|
|
62
|
+
ar: "جميع الحقوق محفوظة.",
|
|
63
|
+
en: "All rights reserved.",
|
|
64
|
+
fr: "Tous droits réservés.",
|
|
65
|
+
es: "Todos los derechos reservados.",
|
|
66
|
+
}),
|
|
67
|
+
},
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
return `<footer>${content.copyright}</footer>`;
|
|
71
|
+
};
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## المعاملات
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
useDictionary(dictionary, localeOrSelector?)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
1. **`dictionary`**: كائن قاموس أو مجموعة قواميس مؤهلة.
|
|
81
|
+
2. **`localeOrSelector`** (اختياري): لغة محددة أو كائن محدد (`{ item }`، `{ variant }`، مع `locale` اختياريًا). له الأولوية على لغة الطلب عند توفيره.
|
|
82
|
+
|
|
83
|
+
## الوصف
|
|
84
|
+
|
|
85
|
+
يقوم الخطاف بالمهام التالية:
|
|
86
|
+
|
|
87
|
+
1. **اكتشاف اللغة**: يقرأ لغة الطلب النشطة من مخزن `AsyncLocalStorage` الذي تم إنشاؤه بواسطة البرمجية الوسيطة `intlayer()`.
|
|
88
|
+
2. **تحليل المحتوى**: يقيّم الترجمات (`t()`)، والتعدادات، والشروط، والهياكل المتداخلة وفقًا للغة المحددة.
|
|
89
|
+
3. **معالجة المحددات**: يطبق أي محددات عناصر أو متغيرات محددة في المعاملات.
|
|
90
|
+
|
|
91
|
+
## المستندات ذات الصلة
|
|
92
|
+
|
|
93
|
+
- [البرمجية الوسيطة `intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/intlayerMiddleware.md)
|
|
94
|
+
- [خطاف `useIntlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/useIntlayer.md)
|
|
95
|
+
- [خطاف `useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/useLocale.md)
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-19
|
|
3
|
+
updatedAt: 2026-09-19
|
|
4
|
+
title: توثيق خطاف useIntlayer | remix-intlayer
|
|
5
|
+
description: تعرّف على كيفية استخدام خطاف useIntlayer في تطبيقات Remix 3 للوصول إلى المحتوى المترجم حسب المفتاح.
|
|
6
|
+
keywords:
|
|
7
|
+
- useIntlayer
|
|
8
|
+
- dictionary
|
|
9
|
+
- remix
|
|
10
|
+
- remix-3
|
|
11
|
+
- Intlayer
|
|
12
|
+
- intlayer
|
|
13
|
+
- التدويل
|
|
14
|
+
- توثيق
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- packages
|
|
18
|
+
- remix-intlayer
|
|
19
|
+
- useIntlayer
|
|
20
|
+
history:
|
|
21
|
+
- version: 9.5.5
|
|
22
|
+
date: 2026-09-19
|
|
23
|
+
changes: "توثيق أولي لخطاف useIntlayer"
|
|
24
|
+
author: aymericzip
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# توثيق خطاف useIntlayer
|
|
28
|
+
|
|
29
|
+
يتيح لك خطاف `useIntlayer` استرداد المحتوى المترجم من قاموس Intlayer حسب المفتاح في تطبيقات Remix 3.
|
|
30
|
+
|
|
31
|
+
يقوم تلقائيًا بقراءة اللغة النشطة من سياق الطلب الحالي (عبر `AsyncLocalStorage`)، لذلك لا تحتاج إلى تمرير اللغة يدويًا عبر معالجات المسارات أو قوالب العرض أو المكونات.
|
|
32
|
+
|
|
33
|
+
## الاستخدام
|
|
34
|
+
|
|
35
|
+
### في معالجات المسارات
|
|
36
|
+
|
|
37
|
+
```ts fileName="src/server.ts"
|
|
38
|
+
import { createRouter } from "remix/router";
|
|
39
|
+
import { intlayer, useIntlayer } from "remix-intlayer";
|
|
40
|
+
|
|
41
|
+
const router = createRouter({
|
|
42
|
+
middleware: [intlayer()],
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
router.get("/api/welcome", () => {
|
|
46
|
+
const content = useIntlayer("home");
|
|
47
|
+
|
|
48
|
+
return Response.json({
|
|
49
|
+
title: content.title,
|
|
50
|
+
subtitle: content.subtitle,
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### في قوالب العرض والمكونات
|
|
56
|
+
|
|
57
|
+
```tsx fileName="src/views/home.ts"
|
|
58
|
+
import { useIntlayer } from "remix-intlayer";
|
|
59
|
+
|
|
60
|
+
export const HomeView = () => {
|
|
61
|
+
const content = useIntlayer("home");
|
|
62
|
+
|
|
63
|
+
return `
|
|
64
|
+
<main>
|
|
65
|
+
<h1>${content.title}</h1>
|
|
66
|
+
<p>${content.subtitle}</p>
|
|
67
|
+
</main>
|
|
68
|
+
`;
|
|
69
|
+
};
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## المعاملات
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
useIntlayer(key, localeOrSelector?)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
1. **`key`**: المفتاح الفريد للقاموس (كما هو محدد في ملفات تعريف `.content.ts`).
|
|
79
|
+
2. **`localeOrSelector`** (اختياري): لغة محددة أو كائن محدد (`{ item }`، `{ variant }`، مع `locale` اختياريًا). عند تمريره، فإنه يتجاوز اللغة المكتشفة من سياق الطلب.
|
|
80
|
+
|
|
81
|
+
## الوصف
|
|
82
|
+
|
|
83
|
+
يقوم الخطاف بتنفيذ المهام التالية:
|
|
84
|
+
|
|
85
|
+
1. **اكتشاف لغة السياق**: يكتشف اللغة الحالية من نطاق `AsyncLocalStorage` المرتبط بالطلب والذي أنشأته البرمجية الوسيطة `intlayer()`.
|
|
86
|
+
2. **جلب القاموس**: يسترد القاموس المترجم مسبقًا المطابق للمفتاح المقدم.
|
|
87
|
+
3. **معالجة الترجمات**: يحل الترجمات والتعدادات وعناصر markdown والمحتوى المشروط للغة المحددة.
|
|
88
|
+
4. **معالجة الاحتياط (Fallback)**: إذا تم استدعاؤه خارج سياق طلب HTTP نشط (مثل المهام الخلفية أو اختبارات الوحدة بدون برمجية وسيطة)، فإنه يرجع تلقائيًا وبأمان إلى `defaultLocale` المكون.
|
|
89
|
+
|
|
90
|
+
## المستندات ذات الصلة
|
|
91
|
+
|
|
92
|
+
- [البرمجية الوسيطة `intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/intlayerMiddleware.md)
|
|
93
|
+
- [خطاف `useDictionary`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/useDictionary.md)
|
|
94
|
+
- [خطاف `useLocale`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/useLocale.md)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-09-19
|
|
3
|
+
updatedAt: 2026-09-19
|
|
4
|
+
title: توثيق خطاف useLocale | remix-intlayer
|
|
5
|
+
description: تعرّف على كيفية استخدام خطاف useLocale في تطبيقات Remix 3 للحصول على لغة الطلب الحالية واللغة الافتراضية واللغات المتاحة.
|
|
6
|
+
keywords:
|
|
7
|
+
- useLocale
|
|
8
|
+
- locale
|
|
9
|
+
- remix
|
|
10
|
+
- remix-3
|
|
11
|
+
- Intlayer
|
|
12
|
+
- intlayer
|
|
13
|
+
- التدويل
|
|
14
|
+
- توثيق
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- packages
|
|
18
|
+
- remix-intlayer
|
|
19
|
+
- useLocale
|
|
20
|
+
history:
|
|
21
|
+
- version: 9.5.5
|
|
22
|
+
date: 2026-09-19
|
|
23
|
+
changes: "توثيق أولي لخطاف useLocale"
|
|
24
|
+
author: aymericzip
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
# توثيق خطاف useLocale
|
|
28
|
+
|
|
29
|
+
يوفر خطاف `useLocale` من `remix-intlayer` إمكانية الوصول إلى لغة طلب HTTP قيد المعالجة حاليًا، بالإضافة إلى اللغة الافتراضية واللغات المتاحة التي تم تكوينها في المشروع.
|
|
30
|
+
|
|
31
|
+
## الاستخدام
|
|
32
|
+
|
|
33
|
+
في مكون Remix (على سبيل المثال محول اللغة):
|
|
34
|
+
|
|
35
|
+
```tsx fileName="src/components/LocaleSwitcher.tsx"
|
|
36
|
+
import { type FC } from "react";
|
|
37
|
+
import { Link } from "@remix-run/react";
|
|
38
|
+
import { useLocale } from "remix-intlayer";
|
|
39
|
+
import { getLocalizedUrl, getPathWithoutLocale } from "intlayer";
|
|
40
|
+
|
|
41
|
+
export const LocaleSwitcher: FC = () => {
|
|
42
|
+
const { locale, availableLocales } = useLocale();
|
|
43
|
+
const pathWithoutLocale = getPathWithoutLocale();
|
|
44
|
+
|
|
45
|
+
return (
|
|
46
|
+
<nav>
|
|
47
|
+
<ul>
|
|
48
|
+
{availableLocales.map((localeItem) => (
|
|
49
|
+
<li key={localeItem} className="p-1">
|
|
50
|
+
<Link
|
|
51
|
+
href={getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
52
|
+
aria-current={localeItem === locale ? "page" : undefined}
|
|
53
|
+
>
|
|
54
|
+
{localeItem.toUpperCase()}
|
|
55
|
+
</Link>
|
|
56
|
+
</li>
|
|
57
|
+
))}
|
|
58
|
+
</ul>
|
|
59
|
+
</nav>
|
|
60
|
+
);
|
|
61
|
+
};
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
في معالج المسار:
|
|
65
|
+
|
|
66
|
+
```ts fileName="src/server.ts"
|
|
67
|
+
import { createRouter } from "remix/router";
|
|
68
|
+
import { intlayer, useLocale } from "remix-intlayer";
|
|
69
|
+
|
|
70
|
+
const router = createRouter({
|
|
71
|
+
middleware: [intlayer()],
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
router.get("/api/locale-info", () => {
|
|
75
|
+
const { locale, defaultLocale, availableLocales } = useLocale();
|
|
76
|
+
|
|
77
|
+
return Response.json({
|
|
78
|
+
locale,
|
|
79
|
+
defaultLocale,
|
|
80
|
+
availableLocales,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## القيم المرجعة
|
|
86
|
+
|
|
87
|
+
يُرجع الخطاف كائنًا من النوع `UseLocaleResult`:
|
|
88
|
+
|
|
89
|
+
| الخاصية | النوع | الوصف |
|
|
90
|
+
| ------------------ | ------------------- | -------------------------------------------------------------------- |
|
|
91
|
+
| `locale` | `DeclaredLocales` | اللغة المحددة للطلب الحالي. |
|
|
92
|
+
| `defaultLocale` | `DeclaredLocales` | اللغة الافتراضية الاحتياطية التي تم تكوينها في `intlayer.config.ts`. |
|
|
93
|
+
| `availableLocales` | `DeclaredLocales[]` | مصفوفة بجميع اللغات المتاحة المكونة في `intlayer.config.ts`. |
|
|
94
|
+
|
|
95
|
+
## الوصف
|
|
96
|
+
|
|
97
|
+
1. **التعيين على مستوى الطلب**: في طلب نشط تديره البرمجية الوسيطة `intlayer()`، يقرأ `useLocale` اللغة المحددة من وحدة تخزين الطلب.
|
|
98
|
+
2. **الاحتياط السلس (Fallback)**: إذا تم استدعاؤه خارج سياق الطلب (كما هو الحال أثناء نصوص التهيئة البرمجية أو مجموعات الاختبار)، فإنه يرجع افتراضيًا إلى `defaultLocale` المكون.
|
|
99
|
+
|
|
100
|
+
## المستندات ذات الصلة
|
|
101
|
+
|
|
102
|
+
- [البرمجية الوسيطة `intlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/intlayerMiddleware.md)
|
|
103
|
+
- [خطاف `useIntlayer`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/useIntlayer.md)
|
|
104
|
+
- [خطاف `useDictionary`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ar/packages/remix-intlayer/useDictionary.md)
|
package/docs/ar/readme.md
CHANGED
|
@@ -199,7 +199,8 @@ const HomePage = () => {
|
|
|
199
199
|
<li><a href="https://intlayer.org/doc/environment/create-react-app" rel=''>React CRA</a></li>
|
|
200
200
|
<li><a href="https://intlayer.org/doc/environment/vite-and-react" rel=''>Vite + React</a></li>
|
|
201
201
|
<li><a href="https://intlayer.org/doc/environment/vite-and-react" rel=''>Vite + React باستخدام المترجم</a></li>
|
|
202
|
-
<li><a href="https://intlayer.org/doc/environment/vite-and-react/
|
|
202
|
+
<li><a href="https://intlayer.org/doc/environment/vite-and-react/react-router-v7" rel=''>React-router-v7</a></li>
|
|
203
|
+
<li><a href="https://intlayer.org/doc/environment/remix-3" rel=''>Remix 3</a></li>
|
|
203
204
|
<li><a href="https://intlayer.org/doc/environment/tanstack-start" rel=''>Tanstack start</a>
|
|
204
205
|
<ul>
|
|
205
206
|
<li><a href="https://intlayer.org/doc/environment/tanstack-start/solid" rel=''>Solid</a></li>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-12
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-19
|
|
4
4
|
title: Wie Intlayer funktioniert
|
|
5
5
|
description: Erfahren Sie, wie Intlayer intern funktioniert. Verstehen Sie die Architektur und die Komponenten, die Intlayer leistungsstark machen.
|
|
6
6
|
keywords:
|
|
@@ -135,49 +135,105 @@ Intlayer besteht aus mehreren Paketen, die jeweils eine spezifische Rolle im Üb
|
|
|
135
135
|
|
|
136
136
|
Das `intlayer`-Paket wird in Anwendungen verwendet, um Inhalte in Inhaltsdateien zu deklarieren.
|
|
137
137
|
|
|
138
|
-
###
|
|
138
|
+
### Frontend-Frameworks
|
|
139
|
+
|
|
140
|
+
<Tabs group="framework">
|
|
141
|
+
<Tab label="React" value="react">
|
|
139
142
|
|
|
140
143
|
Das `react-intlayer`-Paket wird verwendet, um Intlayer-Wörterbücher zu interpretieren und in React-Anwendungen nutzbar zu machen.
|
|
141
144
|
|
|
142
|
-
|
|
145
|
+
</Tab>
|
|
146
|
+
<Tab label="Next.js" value="nextjs">
|
|
143
147
|
|
|
144
148
|
Das `next-intlayer`-Paket wird als Schicht über `react-intlayer` verwendet, um Intlayer-Wörterbücher in Next.js-Anwendungen nutzbar zu machen. Es integriert wesentliche Funktionen, um Intlayer in einer Next.js-Umgebung zum Laufen zu bringen, wie Übersetzungsmiddleware, Routing oder die Konfiguration der Datei `next.config.js`.
|
|
145
149
|
|
|
146
|
-
|
|
150
|
+
</Tab>
|
|
151
|
+
<Tab label="Vue" value="vue">
|
|
147
152
|
|
|
148
153
|
Das `vue-intlayer`-Paket wird verwendet, um Intlayer-Wörterbücher zu interpretieren und in Vue-Anwendungen nutzbar zu machen.
|
|
149
154
|
|
|
150
|
-
|
|
155
|
+
</Tab>
|
|
156
|
+
<Tab label="Nuxt" value="nuxt">
|
|
151
157
|
|
|
152
158
|
Das `nuxt-intlayer`-Paket ist ein Nuxt-Modul, um Intlayer-Wörterbücher in Nuxt-Anwendungen nutzbar zu machen. Es integriert wesentliche Funktionen, damit Intlayer in einer Nuxt-Umgebung funktioniert, wie z. B. Übersetzungs-Middleware, Routing oder die Konfiguration der `nuxt.config.js`-Datei.
|
|
153
159
|
|
|
154
|
-
|
|
160
|
+
</Tab>
|
|
161
|
+
<Tab label="Svelte" value="svelte">
|
|
155
162
|
|
|
156
163
|
Das `svelte-intlayer`-Paket wird verwendet, um Intlayer-Wörterbücher zu interpretieren und in Svelte-Anwendungen nutzbar zu machen.
|
|
157
164
|
|
|
158
|
-
|
|
165
|
+
</Tab>
|
|
166
|
+
<Tab label="Solid" value="solid">
|
|
159
167
|
|
|
160
168
|
Das `solid-intlayer`-Paket wird verwendet, um Intlayer-Wörterbücher zu interpretieren und in Solid.js-Anwendungen nutzbar zu machen.
|
|
161
169
|
|
|
162
|
-
|
|
170
|
+
</Tab>
|
|
171
|
+
<Tab label="Preact" value="preact">
|
|
163
172
|
|
|
164
173
|
Das `preact-intlayer`-Paket wird verwendet, um Intlayer-Wörterbücher zu interpretieren und in Preact-Anwendungen nutzbar zu machen.
|
|
165
174
|
|
|
166
|
-
|
|
175
|
+
</Tab>
|
|
176
|
+
<Tab label="Angular" value="angular">
|
|
167
177
|
|
|
168
178
|
Das `angular-intlayer`-Paket wird verwendet, um Intlayer-Wörterbücher zu interpretieren und in Angular-Anwendungen nutzbar zu machen.
|
|
169
179
|
|
|
170
|
-
|
|
180
|
+
</Tab>
|
|
181
|
+
<Tab label="Astro" value="astro">
|
|
171
182
|
|
|
172
|
-
Das `
|
|
183
|
+
Das `astro-intlayer`-Paket stellt die notwendigen Werkzeuge bereit, um Intlayer in Astro-Anwendungen zu integrieren. Es konfiguriert sprachenbasiertes Routing und die Verwaltung von Wörterbüchern.
|
|
184
|
+
|
|
185
|
+
</Tab>
|
|
186
|
+
<Tab label="Remix" value="remix">
|
|
187
|
+
|
|
188
|
+
Das `remix-intlayer`-Paket stellt die notwendigen Werkzeuge bereit, um Intlayer in Remix-Anwendungen zu integrieren. Es konfiguriert sprachenbasiertes Routing, serverseitigen Kontext und die Verwaltung von Wörterbüchern.
|
|
173
189
|
|
|
174
|
-
|
|
190
|
+
</Tab>
|
|
191
|
+
<Tab label="React Native" value="react-native">
|
|
175
192
|
|
|
176
193
|
Das `react-native-intlayer`-Paket bietet Tools, die Plugins für Intlayer integrieren, um mit dem Metro-Bundler zu arbeiten.
|
|
177
194
|
|
|
178
|
-
|
|
195
|
+
</Tab>
|
|
196
|
+
<Tab label="Lit" value="lit">
|
|
197
|
+
|
|
198
|
+
Das `lit-intlayer`-Paket bietet Tools und Komponenten zur Interpretation und Verwendung von Intlayer-Wörterbüchern in Lit-Anwendungen.
|
|
199
|
+
|
|
200
|
+
</Tab>
|
|
201
|
+
<Tab label="Vanilla JS" value="vanilla">
|
|
202
|
+
|
|
203
|
+
Das `vanilla-intlayer`-Paket bietet Tools zur Integration von Intlayer in Vanilla-JavaScript-, HTML- oder PHP-Anwendungen.
|
|
204
|
+
|
|
205
|
+
</Tab>
|
|
206
|
+
</Tabs>
|
|
207
|
+
|
|
208
|
+
### Backend-Frameworks
|
|
209
|
+
|
|
210
|
+
<Tabs group="backend">
|
|
211
|
+
<Tab label="Express" value="express">
|
|
212
|
+
|
|
213
|
+
Das `express-intlayer`-Paket wird verwendet, um Intlayer auf einem Express.js-Backend zu nutzen.
|
|
214
|
+
|
|
215
|
+
</Tab>
|
|
216
|
+
<Tab label="Fastify" value="fastify">
|
|
217
|
+
|
|
218
|
+
Das `fastify-intlayer`-Paket stellt ein Plugin für Fastify-Anwendungen bereit, um Internationalisierung zu unterstützen. Es erkennt die Locale des Benutzers und erweitert das Request-Objekt.
|
|
179
219
|
|
|
180
|
-
|
|
220
|
+
</Tab>
|
|
221
|
+
<Tab label="Hono" value="hono">
|
|
222
|
+
|
|
223
|
+
Das Paket `hono-intlayer` bietet eine Middleware für Hono-Anwendungen zur Handhabung der Internationalisierung. Sie erkennt die Sprache des Benutzers und füllt das Kontextobjekt.
|
|
224
|
+
|
|
225
|
+
</Tab>
|
|
226
|
+
<Tab label="Elysia" value="elysia">
|
|
227
|
+
|
|
228
|
+
Das `elysia-intlayer`-Paket stellt ein Plugin für Elysia-Anwendungen bereit, um Internationalisierung zu unterstützen. Es erkennt die Locale des Benutzers und injiziert ein `intlayer`-Objekt in den Route-Kontext.
|
|
229
|
+
|
|
230
|
+
</Tab>
|
|
231
|
+
<Tab label="AdonisJS" value="adonis">
|
|
232
|
+
|
|
233
|
+
Das Paket `adonis-intlayer` bietet eine Middleware für AdonisJS-Anwendungen zur Handhabung der Internationalisierung. Es erkennt die Locale des Benutzers und stellt Übersetzungsfunktionen bereit.
|
|
234
|
+
|
|
235
|
+
</Tab>
|
|
236
|
+
</Tabs>
|
|
181
237
|
|
|
182
238
|
### vite-intlayer
|
|
183
239
|
|
|
@@ -187,6 +243,10 @@ Beinhaltet das Vite-Plugin zur Integration von Intlayer mit dem [Vite-Bundler](h
|
|
|
187
243
|
|
|
188
244
|
Beinhaltet die `react-scripts-intlayer` Befehle und Plugins zur Integration von Intlayer in Anwendungen, die auf Create React App basieren. Diese Plugins basieren auf [craco](https://craco.js.org/) und enthalten zusätzliche Konfigurationen für den [Webpack](https://webpack.js.org/) Bundler.
|
|
189
245
|
|
|
246
|
+
### eslint-plugin-intlayer
|
|
247
|
+
|
|
248
|
+
Das `eslint-plugin-intlayer`-Paket bietet ESLint- und oxlint-Regeln, um unübersetzte Zeichenketten zu erkennen, Wörterbuchdefinitionen zu validieren und i18n-Best-Practices durchzusetzen.
|
|
249
|
+
|
|
190
250
|
### intlayer-editor
|
|
191
251
|
|
|
192
252
|
Das `intlayer-editor` Paket wird verwendet, um die Nutzung des visuellen Editors zu ermöglichen. Dieses optionale Paket kann in Anwendungen installiert werden und wird vom `react-intlayer` Paket verwendet.
|
|
@@ -220,6 +280,18 @@ Das `@intlayer/cli` Paket ist ein NPM-Paket, das verwendet wird, um Skripte im Z
|
|
|
220
280
|
|
|
221
281
|
Das `@intlayer/mcp` Paket stellt einen MCP (Model Context Protocol) Server bereit, der KI-gestützte IDE-Unterstützung speziell für das Intlayer-Ökosystem liefert. Es lädt automatisch die Dokumentation und integriert sich in die Intlayer CLI.
|
|
222
282
|
|
|
283
|
+
### @intlayer/lsp
|
|
284
|
+
|
|
285
|
+
Das `@intlayer/lsp`-Paket bietet einen auf Intlayer zugeschnittenen Language Server Protocol (LSP)-Server. Es bringt IDE-Funktionen wie Gehe zu Definition, Referenzen finden, Hover-Vorschauen, Autovervollständigung von Wörterbuchschlüsseln und Diagnosewarnungen.
|
|
286
|
+
|
|
287
|
+
### @intlayer/ai
|
|
288
|
+
|
|
289
|
+
Das `@intlayer/ai`-Paket bietet SDK-Funktionen für Intlayer-Anwendungen, die automatisierte Übersetzungen und KI-gestützte Inhaltserstellung ermöglichen.
|
|
290
|
+
|
|
291
|
+
### @intlayer/analytics
|
|
292
|
+
|
|
293
|
+
Das `@intlayer/analytics`-Paket bietet Tools zum Sammeln von Metriken zu Inhaltsimpressionen, Seiten-/Locale- und Knotenebenen-Analysen und unterstützt A/B-Tests von Inhalten.
|
|
294
|
+
|
|
223
295
|
### @intlayer/dictionaries-entry
|
|
224
296
|
|
|
225
297
|
Das `@intlayer/dictionaries-entry` Paket gibt den Einstiegspfad der Intlayer-Wörterbücher zurück: die zusammengeführten Wörterbücher aus dem Stammverzeichnis sowie die nicht zusammengeführten, Remote-, dynamischen und Fetch-Wörterbücher aus den Unterpfaden `/unmerged`, `/remote`, `/dynamic` und `/fetch`. Da eine Suche im Dateisystem vom Browser aus nicht möglich ist, kann der Einstiegspfad der Wörterbücher mit Bundlern wie Webpack oder Rollup nicht ermittelt werden. Das Paket und seine Unterpfade sind so konzipiert, dass sie als Aliase verwendet werden können, um eine Optimierung des Bundlings über verschiedene Bundler wie Vite, Webpack und Turbopack zu ermöglichen.
|
|
@@ -278,6 +278,13 @@ Der Editor zeigt Ihre Anwendung in einem iframe an, sodass Ihre Content Security
|
|
|
278
278
|
|
|
279
279
|
Er ist für Entwicklung und Staging ausgelegt, wo ein Neubau nach einer Bearbeitung akzeptabel ist. Um Inhalte auf einer Live-Website ohne Deployment zu bearbeiten, verwenden Sie stattdessen das [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/intlayer_CMS.md) und seine entfernten Wörterbücher.
|
|
280
280
|
|
|
281
|
+
</Question>
|
|
282
|
+
<Question title="Welche Auswirkungen hat der visuelle Editor auf die Performance? Ist er überdimensioniert, wenn ich ihn nicht benötige?">
|
|
283
|
+
|
|
284
|
+
Der visuelle Editor von Intlayer verursacht **keine Kosten** für Ihre Anwendung, wenn er nicht eingerichtet ist. Die zusätzliche Logik wird nur geladen, wenn sie explizit aktiviert und benötigt wird.
|
|
285
|
+
|
|
286
|
+
Selbst wenn er aktiviert ist, ist der Overhead extrem gering (+5 KB, wird nur bei Aktivierung dynamisch geladen), da der Großteil der Logik vom Server-Editor auf [app.intlayer.org](https://app.intlayer.org) oder über das Paket `intlayer-editor` verarbeitet wird. Wenn Sie lediglich eine einfache Übersetzungslösung ohne visuelle Bearbeitung benötigen, verursacht Intlayer keinerlei zusätzlichen Aufwand für Ihre App.
|
|
287
|
+
|
|
281
288
|
</Question>
|
|
282
289
|
<Question title="Ist der visuelle Editor kostenlos?">
|
|
283
290
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-03-07
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-09-19
|
|
4
4
|
title: "Astro i18n - Vollständiger Leitfaden zur Übersetzung Ihrer App"
|
|
5
5
|
description: "Kein i18next mehr. Der 2026-Leitfaden zum Erstellen einer mehrsprachigen (i18n) Astro-App. Übersetzen Sie mit KI-Agenten und optimieren Sie Bundle-Größe, SEO und Performance."
|
|
6
6
|
keywords:
|
|
@@ -18,6 +18,9 @@ slugs:
|
|
|
18
18
|
applicationTemplate: https://github.com/aymericzip/intlayer-astro-template
|
|
19
19
|
applicationShowcase: https://intlayer-astro-template.vercel.app
|
|
20
20
|
history:
|
|
21
|
+
- version: 9.5.5
|
|
22
|
+
date: 2026-09-19
|
|
23
|
+
changes: "useIntlayer / useLocale Hooks und die Astro.locals Middleware zu astro-intlayer hinzugefügt"
|
|
21
24
|
- version: 8.9.0
|
|
22
25
|
date: 2026-05-04
|
|
23
26
|
changes: "Aktualisieren der Solid useIntlayer API-Nutzung auf direkten Eigenschaftszugriff"
|
|
@@ -152,7 +155,7 @@ bun add intlayer astro-intlayer
|
|
|
152
155
|
Das Kernpaket, das i18n-Tools für Konfigurationsmanagement, Übersetzungen, [Inhaltsdeklaration](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/dictionary/content_file.md), Transpilation und [CLI-Befehle](https://github.com/aymericzip/intlayer/blob/main/docs/docs/de/cli/index.md) bereitstellt.
|
|
153
156
|
|
|
154
157
|
- **astro-intlayer**
|
|
155
|
-
Enthält das Astro-Integrations-Plugin
|
|
158
|
+
Enthält das Astro-Integrations-Plugin zur Einbindung von Intlayer in den [Vite-Bundler](https://vite.dev/guide/why.html#why-bundle-for-production), eine Middleware, die das Gebietsschema jeder Anfrage in `Astro.locals.intlayer` auflöst, sowie die Hooks `useIntlayer` / `useDictionary` / `useLocale`. Derselbe Importpfad löst im `.astro`-Frontmatter zur Server-Implementierung und in `<script>`-Blöcken zur Client-Implementierung (unterstützt durch `vanilla-intlayer`) auf.
|
|
156
159
|
|
|
157
160
|
</Step>
|
|
158
161
|
<Step number={2} title="Konfigurieren Sie Ihr Projekt">
|
|
@@ -229,26 +232,28 @@ export default appContent;
|
|
|
229
232
|
</Step>
|
|
230
233
|
<Step number={5} title="Inhalt in Astro verwenden">
|
|
231
234
|
|
|
232
|
-
Sie
|
|
235
|
+
Verwenden Sie Ihre Wörterbücher in `.astro`-Dateien mit den von `astro-intlayer` exportierten Hooks. Sie teilen die Signaturen von `react-intlayer`: `useIntlayer("key")` gibt den Inhalt eines Wörterbuchs zurück und `useLocale()` das aktuelle Gebietsschema, ohne dass Argumente übergeben werden müssen.
|
|
236
|
+
|
|
237
|
+
Das Gebietsschema stammt von der `astro-intlayer`-Middleware, die die Integration vor Ihrer eigenen `src/middleware.ts` registriert. Sie löst es für jede Anfrage auf, aus dem URL-Präfix, dann dem vom Client gespeicherten Gebietsschema (Cookie oder Header), dann `Accept-Language`, und speichert es in `Astro.locals.intlayer`. Vorgerenderte Seiten verwenden nur die URL, da sie einmal für jeden Besucher gerendert werden.
|
|
238
|
+
|
|
239
|
+
Sie sollten auch SEO-Metadaten wie hreflang und kanonische Links zu jeder Seite hinzufügen und einen Sprachumschalter einbinden, damit Benutzer die Sprache wechseln können.
|
|
233
240
|
|
|
234
241
|
```astro fileName="src/pages/index.astro"
|
|
235
242
|
---
|
|
243
|
+
import { useIntlayer, useLocale } from "astro-intlayer";
|
|
236
244
|
import {
|
|
237
|
-
getIntlayer,
|
|
238
|
-
getLocaleFromPath,
|
|
239
245
|
getLocalizedUrl,
|
|
240
246
|
defaultLocale,
|
|
241
247
|
localeMap,
|
|
242
248
|
getHTMLTextDir,
|
|
243
|
-
type LocalesValues,
|
|
244
249
|
} from "intlayer";
|
|
245
250
|
import LocaleSwitcher from "../components/LocaleSwitcher.astro";
|
|
246
251
|
|
|
247
|
-
//
|
|
248
|
-
const locale =
|
|
252
|
+
// Vom Middleware aufgelöstes Gebietsschema (z. B. /de/about -> 'de')
|
|
253
|
+
const { locale } = useLocale();
|
|
249
254
|
|
|
250
|
-
//
|
|
251
|
-
const { title } =
|
|
255
|
+
// Inhalt des 'app'-Wörterbuchs für dieses Gebietsschema
|
|
256
|
+
const { title } = useIntlayer("app");
|
|
252
257
|
---
|
|
253
258
|
|
|
254
259
|
<!doctype html>
|
|
@@ -300,6 +305,8 @@ const { title } = getIntlayer("app", locale);
|
|
|
300
305
|
</html>
|
|
301
306
|
```
|
|
302
307
|
|
|
308
|
+
> `Astro.locals.intlayer` stellt auch `locale`, `defaultLocale` und `availableLocales` für Ihre eigenen Middlewares und Endpunkte bereit. Übergeben Sie ein Gebietsschema oder einen Selektor als zweites Argument (`useIntlayer("app", "fr")`, `useIntlayer("faq", { item: 2 })`), um das Anfrage-Gebietsschema für einen Aufruf zu überschreiben.
|
|
309
|
+
|
|
303
310
|
</Step>
|
|
304
311
|
<Step number={6} title="Lokalisiertes Routing">
|
|
305
312
|
|
|
@@ -324,44 +331,51 @@ Um Benutzern den Wechsel zwischen Sprachen zu ermöglichen, können Sie eine `Lo
|
|
|
324
331
|
|
|
325
332
|
```astro fileName="src/components/LocaleSwitcher.astro"
|
|
326
333
|
---
|
|
327
|
-
import {
|
|
328
|
-
|
|
329
|
-
getLocaleName,
|
|
330
|
-
getLocalizedUrl,
|
|
331
|
-
getLocaleFromPath,
|
|
332
|
-
getPathWithoutLocale,
|
|
333
|
-
type LocalesValues,
|
|
334
|
-
} from "intlayer";
|
|
334
|
+
import { useLocale } from "astro-intlayer";
|
|
335
|
+
import { getLocaleName, getLocalizedUrl, getPathWithoutLocale } from "intlayer";
|
|
335
336
|
|
|
336
|
-
const locale =
|
|
337
|
+
const { locale, availableLocales } = useLocale();
|
|
337
338
|
const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
|
|
338
339
|
---
|
|
339
340
|
|
|
340
|
-
<nav>
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
341
|
+
<nav aria-label="Languages">
|
|
342
|
+
<ul>
|
|
343
|
+
{
|
|
344
|
+
availableLocales.map((localeItem) => (
|
|
345
|
+
<li key={localeItem} class="p-1">
|
|
346
|
+
<a
|
|
347
|
+
href={getLocalizedUrl(pathWithoutLocale, localeItem)}
|
|
348
|
+
data-locale={localeItem}
|
|
349
|
+
aria-current={localeItem === locale ? "page" : undefined}
|
|
350
|
+
>
|
|
351
|
+
{getLocaleName(localeItem)}
|
|
352
|
+
</a>
|
|
353
|
+
</li>
|
|
354
|
+
))
|
|
355
|
+
}
|
|
356
|
+
</ul>
|
|
352
357
|
</nav>
|
|
353
358
|
|
|
354
359
|
<script>
|
|
355
|
-
|
|
360
|
+
// Im Browser löst derselbe Import zur Client-Implementierung auf
|
|
361
|
+
import { useLocale } from "astro-intlayer";
|
|
362
|
+
import { getLocalizedUrl, type LocalesValues } from "intlayer";
|
|
363
|
+
|
|
364
|
+
// Speichert die Auswahl im Locale-Cookie und navigiert dann zur lokalisierten URL
|
|
365
|
+
const { setLocale } = useLocale({
|
|
366
|
+
onLocaleChange: (newLocale) => {
|
|
367
|
+
window.location.href = getLocalizedUrl(window.location.pathname, newLocale);
|
|
368
|
+
},
|
|
369
|
+
});
|
|
356
370
|
|
|
357
371
|
const localeLinks = document.querySelectorAll("[data-locale]");
|
|
358
372
|
|
|
359
373
|
localeLinks.forEach((link) => {
|
|
360
|
-
link.addEventListener("click", (
|
|
374
|
+
link.addEventListener("click", (event) => {
|
|
361
375
|
const locale = link.getAttribute("data-locale") as LocalesValues;
|
|
362
376
|
|
|
363
|
-
|
|
364
|
-
|
|
377
|
+
event.preventDefault();
|
|
378
|
+
setLocale(locale);
|
|
365
379
|
});
|
|
366
380
|
});
|
|
367
381
|
</script>
|
|
@@ -371,6 +385,13 @@ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
|
|
|
371
385
|
display: flex;
|
|
372
386
|
gap: 1rem;
|
|
373
387
|
}
|
|
388
|
+
ul {
|
|
389
|
+
display: flex;
|
|
390
|
+
list-style: none;
|
|
391
|
+
padding: 0;
|
|
392
|
+
margin: 0;
|
|
393
|
+
gap: 0.5rem;
|
|
394
|
+
}
|
|
374
395
|
a[aria-current="page"] {
|
|
375
396
|
font-weight: bold;
|
|
376
397
|
text-decoration: underline;
|
|
@@ -379,7 +400,10 @@ const pathWithoutLocale = getPathWithoutLocale(Astro.url.pathname);
|
|
|
379
400
|
```
|
|
380
401
|
|
|
381
402
|
> **Hinweis zur Persistenz:**
|
|
382
|
-
>
|
|
403
|
+
> `setLocale` aus dem clientseitigen `useLocale` speichert die Sprachpräferenz des Benutzers in einem Cookie. Dadurch kann sich die Intlayer-Middleware die Auswahl merken und den Benutzer bei zukünftigen Besuchen automatisch zu seiner bevorzugten Sprache weiterleiten.
|
|
404
|
+
>
|
|
405
|
+
> **Server- / Client-Interkompatibilität:**
|
|
406
|
+
> `astro-intlayer` löst im Frontmatter (beim Lesen von `Astro.locals`) zu seinen Server-Hooks auf und in `<script>`-Blöcken sowie Inseln (Islands) zu den Client-Hooks von `vanilla-intlayer`, mit identischen Namen und Inhaltsstrukturen. `setLocale` und `onChange` wirken nur auf dem Client, rufen Sie dort einmal `installIntlayer()` auf, um den Client-Store zu initialisieren. `astro-intlayer/client` stellt den Client-Einstiegspunkt explizit bereit.
|
|
383
407
|
|
|
384
408
|
</Step>
|
|
385
409
|
<Step number={8} title="Sitemap und Robots.txt">
|