@intlayer/docs 8.4.9 → 8.5.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/dist/cjs/generated/docs.entry.cjs +40 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +40 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/dictionary/html.md +22 -22
- package/docs/ar/dictionary/markdown.md +18 -18
- package/docs/ar/intlayer_with_analog.md +2 -13
- package/docs/ar/intlayer_with_angular.md +1 -12
- package/docs/ar/intlayer_with_nextjs_14.md +1 -1
- package/docs/ar/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ar/intlayer_with_react_router_v7.md +6 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/ar/intlayer_with_storybook.md +2 -5
- package/docs/ar/intlayer_with_svelte_kit.md +9 -5
- package/docs/ar/intlayer_with_vite+lit.md +738 -0
- package/docs/ar/intlayer_with_vite+react.md +16 -4
- package/docs/ar/intlayer_with_vite+solid.md +1 -1
- package/docs/ar/intlayer_with_vite+svelte.md +13 -6
- package/docs/ar/intlayer_with_vite+vanilla.md +722 -0
- package/docs/ar/intlayer_with_vite+vue.md +21 -5
- package/docs/ar/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/ar/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/ar/releases/v8.md +27 -27
- package/docs/bn/intlayer_with_storybook.md +2 -5
- package/docs/bn/intlayer_with_vite+lit.md +738 -0
- package/docs/bn/intlayer_with_vite+vanilla.md +722 -0
- package/docs/cs/intlayer_with_storybook.md +2 -5
- package/docs/cs/intlayer_with_vite+lit.md +738 -0
- package/docs/cs/intlayer_with_vite+vanilla.md +722 -0
- package/docs/de/dictionary/html.md +146 -24
- package/docs/de/dictionary/markdown.md +143 -25
- package/docs/de/intlayer_with_analog.md +2 -13
- package/docs/de/intlayer_with_angular.md +1 -12
- package/docs/de/intlayer_with_nextjs_14.md +1 -1
- package/docs/de/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/de/intlayer_with_react_router_v7.md +6 -1
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/de/intlayer_with_storybook.md +2 -5
- package/docs/de/intlayer_with_svelte_kit.md +9 -5
- package/docs/de/intlayer_with_vite+lit.md +747 -0
- package/docs/de/intlayer_with_vite+react.md +16 -4
- package/docs/de/intlayer_with_vite+solid.md +1 -1
- package/docs/de/intlayer_with_vite+svelte.md +19 -6
- package/docs/de/intlayer_with_vite+vanilla.md +722 -0
- package/docs/de/intlayer_with_vite+vue.md +21 -5
- package/docs/de/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/de/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/de/releases/v8.md +27 -27
- package/docs/en/compiler.md +4 -1
- package/docs/en/configuration.md +4 -1
- package/docs/en/dictionary/html.md +146 -24
- package/docs/en/dictionary/markdown.md +143 -21
- package/docs/en/intlayer_with_analog.md +3 -14
- package/docs/en/intlayer_with_angular.md +1 -12
- package/docs/en/intlayer_with_nextjs_14.md +1 -1
- package/docs/en/intlayer_with_nextjs_16.md +12 -3
- package/docs/en/intlayer_with_nextjs_compiler.md +16 -4
- package/docs/en/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en/intlayer_with_react_router_v7.md +17 -4
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +18 -4
- package/docs/en/intlayer_with_storybook.md +2 -5
- package/docs/en/intlayer_with_svelte_kit.md +21 -8
- package/docs/en/intlayer_with_tanstack.md +12 -3
- package/docs/en/intlayer_with_vite+lit.md +750 -0
- package/docs/en/intlayer_with_vite+preact.md +31 -3
- package/docs/en/intlayer_with_vite+react.md +28 -7
- package/docs/en/intlayer_with_vite+react_compiler.md +4 -1
- package/docs/en/intlayer_with_vite+solid.md +31 -3
- package/docs/en/intlayer_with_vite+svelte.md +30 -9
- package/docs/en/intlayer_with_vite+vanilla.md +725 -0
- package/docs/en/intlayer_with_vite+vue.md +28 -7
- package/docs/en/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/en/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/en/readme.md +1 -0
- package/docs/en/releases/v8.md +27 -27
- package/docs/en-GB/compiler.md +4 -1
- package/docs/en-GB/configuration.md +4 -1
- package/docs/en-GB/dictionary/html.md +22 -22
- package/docs/en-GB/dictionary/markdown.md +18 -18
- package/docs/en-GB/intlayer_with_analog.md +2 -13
- package/docs/en-GB/intlayer_with_angular.md +1 -12
- package/docs/en-GB/intlayer_with_nextjs_14.md +1 -1
- package/docs/en-GB/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/en-GB/intlayer_with_react_router_v7.md +6 -1
- package/docs/en-GB/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/en-GB/intlayer_with_storybook.md +2 -5
- package/docs/en-GB/intlayer_with_svelte_kit.md +9 -5
- package/docs/en-GB/intlayer_with_vite+lit.md +750 -0
- package/docs/en-GB/intlayer_with_vite+react.md +15 -3
- package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
- package/docs/en-GB/intlayer_with_vite+svelte.md +17 -5
- package/docs/en-GB/intlayer_with_vite+vanilla.md +725 -0
- package/docs/en-GB/intlayer_with_vite+vue.md +16 -4
- package/docs/en-GB/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/en-GB/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/en-GB/releases/v8.md +27 -27
- package/docs/es/dictionary/html.md +147 -25
- package/docs/es/dictionary/markdown.md +143 -25
- package/docs/es/intlayer_with_analog.md +2 -13
- package/docs/es/intlayer_with_angular.md +1 -12
- package/docs/es/intlayer_with_nextjs_14.md +1 -1
- package/docs/es/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/es/intlayer_with_react_router_v7.md +6 -1
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/es/intlayer_with_storybook.md +2 -5
- package/docs/es/intlayer_with_svelte_kit.md +9 -5
- package/docs/es/intlayer_with_vite+lit.md +747 -0
- package/docs/es/intlayer_with_vite+react.md +16 -4
- package/docs/es/intlayer_with_vite+solid.md +1 -1
- package/docs/es/intlayer_with_vite+svelte.md +16 -6
- package/docs/es/intlayer_with_vite+vanilla.md +722 -0
- package/docs/es/intlayer_with_vite+vue.md +21 -5
- package/docs/es/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/es/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/es/releases/v8.md +27 -27
- package/docs/fr/dictionary/html.md +146 -24
- package/docs/fr/dictionary/markdown.md +143 -25
- package/docs/fr/intlayer_with_analog.md +2 -13
- package/docs/fr/intlayer_with_angular.md +1 -12
- package/docs/fr/intlayer_with_nextjs_14.md +1 -1
- package/docs/fr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/fr/intlayer_with_react_router_v7.md +6 -1
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/fr/intlayer_with_storybook.md +2 -5
- package/docs/fr/intlayer_with_svelte_kit.md +9 -5
- package/docs/fr/intlayer_with_vite+lit.md +747 -0
- package/docs/fr/intlayer_with_vite+react.md +16 -4
- package/docs/fr/intlayer_with_vite+solid.md +1 -1
- package/docs/fr/intlayer_with_vite+svelte.md +19 -6
- package/docs/fr/intlayer_with_vite+vanilla.md +722 -0
- package/docs/fr/intlayer_with_vite+vue.md +21 -5
- package/docs/fr/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/fr/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/fr/releases/v8.md +27 -27
- package/docs/hi/dictionary/html.md +22 -22
- package/docs/hi/dictionary/markdown.md +18 -18
- package/docs/hi/intlayer_with_analog.md +2 -13
- package/docs/hi/intlayer_with_angular.md +1 -12
- package/docs/hi/intlayer_with_nextjs_14.md +1 -1
- package/docs/hi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/hi/intlayer_with_react_router_v7.md +6 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/hi/intlayer_with_storybook.md +2 -5
- package/docs/hi/intlayer_with_svelte_kit.md +9 -5
- package/docs/hi/intlayer_with_vite+lit.md +738 -0
- package/docs/hi/intlayer_with_vite+react.md +16 -4
- package/docs/hi/intlayer_with_vite+solid.md +1 -1
- package/docs/hi/intlayer_with_vite+svelte.md +13 -6
- package/docs/hi/intlayer_with_vite+vanilla.md +722 -0
- package/docs/hi/intlayer_with_vite+vue.md +21 -5
- package/docs/hi/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/hi/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/hi/releases/v8.md +27 -27
- package/docs/id/dictionary/html.md +22 -22
- package/docs/id/dictionary/markdown.md +18 -18
- package/docs/id/intlayer_with_analog.md +2 -13
- package/docs/id/intlayer_with_angular.md +1 -12
- package/docs/id/intlayer_with_nextjs_14.md +1 -1
- package/docs/id/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/id/intlayer_with_react_router_v7.md +6 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/id/intlayer_with_storybook.md +2 -5
- package/docs/id/intlayer_with_svelte_kit.md +9 -5
- package/docs/id/intlayer_with_vite+lit.md +738 -0
- package/docs/id/intlayer_with_vite+react.md +16 -4
- package/docs/id/intlayer_with_vite+solid.md +1 -1
- package/docs/id/intlayer_with_vite+svelte.md +13 -6
- package/docs/id/intlayer_with_vite+vanilla.md +722 -0
- package/docs/id/intlayer_with_vite+vue.md +16 -4
- package/docs/id/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/id/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/id/releases/v8.md +27 -27
- package/docs/it/dictionary/html.md +146 -24
- package/docs/it/dictionary/markdown.md +143 -21
- package/docs/it/intlayer_with_analog.md +2 -13
- package/docs/it/intlayer_with_angular.md +1 -12
- package/docs/it/intlayer_with_nextjs_14.md +1 -1
- package/docs/it/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/it/intlayer_with_react_router_v7.md +6 -1
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/it/intlayer_with_storybook.md +2 -5
- package/docs/it/intlayer_with_svelte_kit.md +9 -5
- package/docs/it/intlayer_with_vite+lit.md +747 -0
- package/docs/it/intlayer_with_vite+react.md +16 -4
- package/docs/it/intlayer_with_vite+solid.md +1 -1
- package/docs/it/intlayer_with_vite+svelte.md +13 -6
- package/docs/it/intlayer_with_vite+vanilla.md +722 -0
- package/docs/it/intlayer_with_vite+vue.md +21 -5
- package/docs/it/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/it/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/it/releases/v8.md +27 -27
- package/docs/ja/dictionary/html.md +148 -27
- package/docs/ja/dictionary/markdown.md +139 -24
- package/docs/ja/intlayer_with_analog.md +2 -13
- package/docs/ja/intlayer_with_angular.md +1 -12
- package/docs/ja/intlayer_with_nextjs_14.md +1 -1
- package/docs/ja/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ja/intlayer_with_react_router_v7.md +6 -1
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/ja/intlayer_with_storybook.md +2 -5
- package/docs/ja/intlayer_with_vite+lit.md +747 -0
- package/docs/ja/intlayer_with_vite+solid.md +1 -1
- package/docs/ja/intlayer_with_vite+svelte.md +13 -6
- package/docs/ja/intlayer_with_vite+vanilla.md +722 -0
- package/docs/ja/intlayer_with_vite+vue.md +21 -5
- package/docs/ja/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/ja/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/ja/releases/v8.md +27 -27
- package/docs/ko/dictionary/html.md +149 -28
- package/docs/ko/dictionary/markdown.md +143 -25
- package/docs/ko/intlayer_with_analog.md +2 -13
- package/docs/ko/intlayer_with_angular.md +1 -12
- package/docs/ko/intlayer_with_nextjs_14.md +1 -1
- package/docs/ko/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ko/intlayer_with_react_router_v7.md +6 -1
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/ko/intlayer_with_storybook.md +2 -5
- package/docs/ko/intlayer_with_svelte_kit.md +9 -5
- package/docs/ko/intlayer_with_vite+lit.md +747 -0
- package/docs/ko/intlayer_with_vite+react.md +16 -4
- package/docs/ko/intlayer_with_vite+solid.md +1 -1
- package/docs/ko/intlayer_with_vite+svelte.md +13 -6
- package/docs/ko/intlayer_with_vite+vanilla.md +722 -0
- package/docs/ko/intlayer_with_vite+vue.md +21 -5
- package/docs/ko/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/ko/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/ko/releases/v8.md +27 -27
- package/docs/nl/intlayer_with_storybook.md +2 -5
- package/docs/nl/intlayer_with_vite+lit.md +738 -0
- package/docs/nl/intlayer_with_vite+vanilla.md +722 -0
- package/docs/pl/dictionary/html.md +146 -24
- package/docs/pl/dictionary/markdown.md +143 -25
- package/docs/pl/intlayer_with_analog.md +2 -13
- package/docs/pl/intlayer_with_angular.md +1 -12
- package/docs/pl/intlayer_with_nextjs_14.md +1 -1
- package/docs/pl/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pl/intlayer_with_react_router_v7.md +6 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/pl/intlayer_with_storybook.md +2 -5
- package/docs/pl/intlayer_with_svelte_kit.md +9 -5
- package/docs/pl/intlayer_with_vite+lit.md +738 -0
- package/docs/pl/intlayer_with_vite+react.md +16 -4
- package/docs/pl/intlayer_with_vite+solid.md +1 -1
- package/docs/pl/intlayer_with_vite+svelte.md +13 -6
- package/docs/pl/intlayer_with_vite+vanilla.md +722 -0
- package/docs/pl/intlayer_with_vite+vue.md +16 -4
- package/docs/pl/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/pl/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/pl/releases/v8.md +27 -27
- package/docs/pt/dictionary/html.md +127 -24
- package/docs/pt/dictionary/markdown.md +143 -25
- package/docs/pt/intlayer_with_analog.md +2 -13
- package/docs/pt/intlayer_with_angular.md +1 -12
- package/docs/pt/intlayer_with_nextjs_14.md +1 -1
- package/docs/pt/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/pt/intlayer_with_react_router_v7.md +6 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/pt/intlayer_with_storybook.md +2 -5
- package/docs/pt/intlayer_with_svelte_kit.md +9 -5
- package/docs/pt/intlayer_with_vite+lit.md +747 -0
- package/docs/pt/intlayer_with_vite+react.md +16 -4
- package/docs/pt/intlayer_with_vite+solid.md +1 -1
- package/docs/pt/intlayer_with_vite+svelte.md +16 -6
- package/docs/pt/intlayer_with_vite+vanilla.md +722 -0
- package/docs/pt/intlayer_with_vite+vue.md +21 -5
- package/docs/pt/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/pt/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/pt/releases/v8.md +27 -27
- package/docs/ru/dictionary/html.md +148 -27
- package/docs/ru/dictionary/markdown.md +143 -23
- package/docs/ru/intlayer_with_analog.md +2 -13
- package/docs/ru/intlayer_with_angular.md +1 -12
- package/docs/ru/intlayer_with_nextjs_14.md +1 -1
- package/docs/ru/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/ru/intlayer_with_react_router_v7.md +6 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/ru/intlayer_with_storybook.md +2 -5
- package/docs/ru/intlayer_with_svelte_kit.md +9 -5
- package/docs/ru/intlayer_with_vite+lit.md +747 -0
- package/docs/ru/intlayer_with_vite+react.md +16 -4
- package/docs/ru/intlayer_with_vite+solid.md +1 -1
- package/docs/ru/intlayer_with_vite+svelte.md +13 -6
- package/docs/ru/intlayer_with_vite+vanilla.md +722 -0
- package/docs/ru/intlayer_with_vite+vue.md +21 -5
- package/docs/ru/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/ru/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/ru/releases/v8.md +27 -27
- package/docs/tr/dictionary/html.md +129 -27
- package/docs/tr/dictionary/markdown.md +143 -23
- package/docs/tr/intlayer_with_analog.md +2 -13
- package/docs/tr/intlayer_with_angular.md +1 -12
- package/docs/tr/intlayer_with_nextjs_14.md +1 -1
- package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/tr/intlayer_with_react_router_v7.md +6 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/tr/intlayer_with_storybook.md +2 -5
- package/docs/tr/intlayer_with_svelte_kit.md +9 -5
- package/docs/tr/intlayer_with_vite+lit.md +738 -0
- package/docs/tr/intlayer_with_vite+react.md +16 -4
- package/docs/tr/intlayer_with_vite+solid.md +1 -1
- package/docs/tr/intlayer_with_vite+svelte.md +13 -6
- package/docs/tr/intlayer_with_vite+vanilla.md +722 -0
- package/docs/tr/intlayer_with_vite+vue.md +16 -4
- package/docs/tr/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/tr/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/tr/releases/v8.md +27 -27
- package/docs/uk/dictionary/html.md +22 -22
- package/docs/uk/dictionary/markdown.md +18 -18
- package/docs/uk/intlayer_with_analog.md +2 -13
- package/docs/uk/intlayer_with_angular.md +1 -12
- package/docs/uk/intlayer_with_nextjs_14.md +1 -1
- package/docs/uk/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/uk/intlayer_with_react_router_v7.md +5 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/uk/intlayer_with_storybook.md +2 -5
- package/docs/uk/intlayer_with_svelte_kit.md +9 -5
- package/docs/uk/intlayer_with_vite+lit.md +738 -0
- package/docs/uk/intlayer_with_vite+react.md +16 -4
- package/docs/uk/intlayer_with_vite+solid.md +1 -1
- package/docs/uk/intlayer_with_vite+svelte.md +18 -6
- package/docs/uk/intlayer_with_vite+vanilla.md +722 -0
- package/docs/uk/intlayer_with_vite+vue.md +16 -4
- package/docs/uk/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/uk/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/uk/releases/v8.md +27 -27
- package/docs/ur/intlayer_with_storybook.md +2 -5
- package/docs/ur/intlayer_with_vite+lit.md +738 -0
- package/docs/ur/intlayer_with_vite+vanilla.md +722 -0
- package/docs/vi/dictionary/html.md +22 -22
- package/docs/vi/dictionary/markdown.md +18 -18
- package/docs/vi/intlayer_with_analog.md +2 -13
- package/docs/vi/intlayer_with_angular.md +1 -12
- package/docs/vi/intlayer_with_nextjs_14.md +1 -1
- package/docs/vi/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/vi/intlayer_with_react_router_v7.md +6 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/vi/intlayer_with_storybook.md +2 -5
- package/docs/vi/intlayer_with_svelte_kit.md +9 -5
- package/docs/vi/intlayer_with_vite+lit.md +738 -0
- package/docs/vi/intlayer_with_vite+react.md +16 -4
- package/docs/vi/intlayer_with_vite+solid.md +1 -1
- package/docs/vi/intlayer_with_vite+svelte.md +17 -5
- package/docs/vi/intlayer_with_vite+vanilla.md +722 -0
- package/docs/vi/intlayer_with_vite+vue.md +16 -4
- package/docs/vi/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/vi/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/vi/releases/v8.md +27 -27
- package/docs/zh/dictionary/html.md +148 -27
- package/docs/zh/dictionary/markdown.md +143 -21
- package/docs/zh/intlayer_with_analog.md +2 -13
- package/docs/zh/intlayer_with_angular.md +1 -12
- package/docs/zh/intlayer_with_nextjs_14.md +1 -1
- package/docs/zh/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/zh/intlayer_with_react_router_v7.md +6 -1
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +6 -1
- package/docs/zh/intlayer_with_storybook.md +2 -5
- package/docs/zh/intlayer_with_svelte_kit.md +9 -5
- package/docs/zh/intlayer_with_vite+lit.md +747 -0
- package/docs/zh/intlayer_with_vite+react.md +16 -4
- package/docs/zh/intlayer_with_vite+solid.md +1 -1
- package/docs/zh/intlayer_with_vite+svelte.md +16 -6
- package/docs/zh/intlayer_with_vite+vanilla.md +722 -0
- package/docs/zh/intlayer_with_vite+vue.md +16 -4
- package/docs/zh/packages/react-intlayer/MarkdownRenderer.md +1 -1
- package/docs/zh/packages/svelte-intlayer/useRewriteURL.md +1 -1
- package/docs/zh/releases/v8.md +27 -27
- package/package.json +8 -8
- package/src/generated/docs.entry.ts +40 -0
|
@@ -0,0 +1,722 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-03-23
|
|
3
|
+
updatedAt: 2026-03-23
|
|
4
|
+
title: i18n Vite + Vanilla JS - 2026'da bir Vanilla JS uygulaması nasıl çevrilir
|
|
5
|
+
description: Vite ve Vanilla JS web sitenizi nasıl çok dilli hale getireceğinizi keşfedin. Uluslararasılaştırma (i18n) ve çeviri için belgeleri takip edin.
|
|
6
|
+
keywords:
|
|
7
|
+
- Uluslararasılaştırma
|
|
8
|
+
- Belgeler
|
|
9
|
+
- Intlayer
|
|
10
|
+
- Vite
|
|
11
|
+
- Vanilla JS
|
|
12
|
+
- JavaScript
|
|
13
|
+
- TypeScript
|
|
14
|
+
- HTML
|
|
15
|
+
slugs:
|
|
16
|
+
- doc
|
|
17
|
+
- environment
|
|
18
|
+
- vite-and-vanilla
|
|
19
|
+
applicationTemplate: https://github.com/aymericzip/intlayer-vite-vanilla-template
|
|
20
|
+
history:
|
|
21
|
+
- version: 8.4.10
|
|
22
|
+
date: 2026-03-23
|
|
23
|
+
changes: "Init history"
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# Intlayer kullanarak Vite ve Vanilla JS web sitenizi çevirin | Uluslararasılaştırma (i18n)
|
|
27
|
+
|
|
28
|
+
## İçindekiler
|
|
29
|
+
|
|
30
|
+
<TOC/>
|
|
31
|
+
|
|
32
|
+
## Intlayer nedir?
|
|
33
|
+
|
|
34
|
+
**Intlayer**, modern web uygulamalarında çok dilli desteği basitleştirmek için tasarlanmış yenilikçi, açık kaynaklı bir uluslararasılaştırma (i18n) kütüphanesidir.
|
|
35
|
+
|
|
36
|
+
Intlayer ile şunları yapabilirsiniz:
|
|
37
|
+
|
|
38
|
+
- Bileşen düzeyinde bildirimsel sözlükler kullanarak **çevirileri kolayca yönetin**.
|
|
39
|
+
- Metadataları, rotaları ve içeriği **dinamik olarak yerelleştirin**.
|
|
40
|
+
- Otomatik olarak oluşturulan türlerle **TypeScript desteği sağlayın**, bu da otomatik tamamlamayı ve hata algılamayı iyileştirir.
|
|
41
|
+
- Dinamik yerel ayar algılama ve değiştirme gibi **gelişmiş özelliklerden yararlanın**.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Bir Vite ve Vanilla JS Uygulamasında Intlayer Kurulumu İçin Adım Adım Kılavuz
|
|
46
|
+
|
|
47
|
+
### Adım 1: Bağımlılıkları Yükleyin
|
|
48
|
+
|
|
49
|
+
npm kullanarak gerekli paketleri yükleyin:
|
|
50
|
+
|
|
51
|
+
```bash packageManager="npm"
|
|
52
|
+
npm install intlayer vanilla-intlayer
|
|
53
|
+
npm install vite-intlayer --save-dev
|
|
54
|
+
npx intlayer init
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
```bash packageManager="pnpm"
|
|
58
|
+
pnpm add intlayer vanilla-intlayer
|
|
59
|
+
pnpm add vite-intlayer --save-dev
|
|
60
|
+
pnpm intlayer init
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```bash packageManager="yarn"
|
|
64
|
+
yarn add intlayer vanilla-intlayer
|
|
65
|
+
yarn add vite-intlayer --save-dev
|
|
66
|
+
yarn intlayer init
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```bash packageManager="bun"
|
|
70
|
+
bun add intlayer vanilla-intlayer
|
|
71
|
+
bun add vite-intlayer --dev
|
|
72
|
+
bunx intlayer init
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- **intlayer**
|
|
76
|
+
Yapılandırma yönetimi, çeviri, [içerik bildirimi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/dictionary/content_file.md), transpilasyon ve [CLI komutları](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/index.md) için uluslararasılaştırma araçları sağlayan temel paket.
|
|
77
|
+
|
|
78
|
+
- **vanilla-intlayer**
|
|
79
|
+
Intlayer'ı saf JavaScript / TypeScript uygulamalarıyla entegre eden paket. Bir pub/sub singleton (`IntlayerClient`) ve geri çağırma tabanlı yardımcılar (`useIntlayer`, `useLocale`, vb.) sağlar, böylece uygulamanızın herhangi bir bölümü bir UI çerçevesine bağlı kalmadan yerel ayar değişikliklerine tepki verebilir.
|
|
80
|
+
|
|
81
|
+
- **vite-intlayer**
|
|
82
|
+
Intlayer'ı [Vite paketleyici](https://vite.dev/guide/why.html#why-bundle-for-production) ile entegre etmek için Vite eklentisini ve kullanıcının tercih ettiği yerel ayarı algılamak, çerezleri yönetmek ve URL yönlendirmesini işlemek için ara yazılımı içerir.
|
|
83
|
+
|
|
84
|
+
### Adım 2: Projenizin Yapılandırılması
|
|
85
|
+
|
|
86
|
+
Ugulamanızın dillerini yapılandırmak için bir yapılandırma dosyası oluşturun:
|
|
87
|
+
|
|
88
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
89
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
90
|
+
|
|
91
|
+
const config: IntlayerConfig = {
|
|
92
|
+
internationalization: {
|
|
93
|
+
locales: [
|
|
94
|
+
Locales.ENGLISH,
|
|
95
|
+
Locales.FRENCH,
|
|
96
|
+
Locales.SPANISH,
|
|
97
|
+
// Diğer yerel ayarlarınız
|
|
98
|
+
],
|
|
99
|
+
defaultLocale: Locales.ENGLISH,
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
export default config;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
107
|
+
import { Locales } from "intlayer";
|
|
108
|
+
|
|
109
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
110
|
+
const config = {
|
|
111
|
+
internationalization: {
|
|
112
|
+
locales: [
|
|
113
|
+
Locales.ENGLISH,
|
|
114
|
+
Locales.FRENCH,
|
|
115
|
+
Locales.SPANISH,
|
|
116
|
+
// Diğer yerel ayarlarınız
|
|
117
|
+
],
|
|
118
|
+
defaultLocale: Locales.ENGLISH,
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export default config;
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
126
|
+
const { Locales } = require("intlayer");
|
|
127
|
+
|
|
128
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
129
|
+
const config = {
|
|
130
|
+
internationalization: {
|
|
131
|
+
locales: [
|
|
132
|
+
Locales.ENGLISH,
|
|
133
|
+
Locales.FRENCH,
|
|
134
|
+
Locales.SPANISH,
|
|
135
|
+
// Diğer yerel ayarlarınız
|
|
136
|
+
],
|
|
137
|
+
defaultLocale: Locales.ENGLISH,
|
|
138
|
+
},
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
module.exports = config;
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
> Bu yapılandırma dosyası aracılığıyla, yerelleştirilmiş URL'leri, ara yazılım yönlendirmesini, çerez adlarını, içerik bildirimlerinizin konumunu ve uzantısını ayarlayabilir, konsoldaki Intlayer günlüklerini devre dışı bırakabilir ve daha fazlasını yapabilirsiniz. Mevcut parametrelerin tam listesi için [yapılandırma belgelerine](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/configuration.md) bakın.
|
|
145
|
+
|
|
146
|
+
### Adım 3: Intlayer'ı Vite Yapılandırmanıza Entegre Edin
|
|
147
|
+
|
|
148
|
+
Yapılandırmanıza intlayer eklentisini ekleyin.
|
|
149
|
+
|
|
150
|
+
```typescript fileName="vite.config.ts" codeFormat="typescript"
|
|
151
|
+
import { defineConfig } from "vite";
|
|
152
|
+
import { intlayer } from "vite-intlayer";
|
|
153
|
+
|
|
154
|
+
// https://vitejs.dev/config/
|
|
155
|
+
export default defineConfig({
|
|
156
|
+
plugins: [intlayer()],
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
```javascript fileName="vite.config.mjs" codeFormat="esm"
|
|
161
|
+
import { defineConfig } from "vite";
|
|
162
|
+
import { intlayer } from "vite-intlayer";
|
|
163
|
+
|
|
164
|
+
// https://vitejs.dev/config/
|
|
165
|
+
export default defineConfig({
|
|
166
|
+
plugins: [intlayer()],
|
|
167
|
+
});
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
```javascript fileName="vite.config.cjs" codeFormat="commonjs"
|
|
171
|
+
const { defineConfig } = require("vite");
|
|
172
|
+
const { intlayer } = require("vite-intlayer");
|
|
173
|
+
|
|
174
|
+
// https://vitejs.dev/config/
|
|
175
|
+
module.exports = defineConfig({
|
|
176
|
+
plugins: [intlayer()],
|
|
177
|
+
});
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
> `intlayer()` Vite eklentisi, Intlayer'ı Vite ile entegre etmek için kullanılır. İçerik bildirimi dosyalarının oluşturulmasını sağlar ve bunları geliştirme modunda izler. Vite uygulaması içinde Intlayer ortam değişkenlerini tanımlar. Ayrıca, performansı optimize etmek için takma adlar (aliases) sağlar.
|
|
181
|
+
|
|
182
|
+
### Adım 4: Giriş noktanızda Intlayer'ı başlatın
|
|
183
|
+
|
|
184
|
+
Küresel yerel ayar singleton'ının hazır olması için herhangi bir içerik işlenmeden **önce** `installIntlayer()` işlevini çağırın.
|
|
185
|
+
|
|
186
|
+
```typescript fileName="src/main.ts" codeFormat="typescript"
|
|
187
|
+
import { installIntlayer } from "vanilla-intlayer";
|
|
188
|
+
|
|
189
|
+
// Herhangi bir i18n içeriği işlenmeden önce çağrılmalıdır.
|
|
190
|
+
installIntlayer();
|
|
191
|
+
|
|
192
|
+
// Uygulama modüllerinizi içe aktarın ve çalıştırın.
|
|
193
|
+
import "./app.js";
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Ayrıca `md()` içerik bildirimlerini (Markdown) kullanıyorsanız, markdown oluşturucuyu da yükleyin:
|
|
197
|
+
|
|
198
|
+
```typescript fileName="src/main.ts" codeFormat="typescript"
|
|
199
|
+
import { installIntlayer, installIntlayerMarkdown } from "vanilla-intlayer";
|
|
200
|
+
|
|
201
|
+
installIntlayer();
|
|
202
|
+
installIntlayerMarkdown();
|
|
203
|
+
|
|
204
|
+
import "./app.js";
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Adım 5: İçeriğinizi Bildirin
|
|
208
|
+
|
|
209
|
+
Çevirileri depolamak için içerik bildirimlerinizi oluşturun ve yönetin:
|
|
210
|
+
|
|
211
|
+
```typescript fileName="src/app.content.ts" contentDeclarationFormat="typescript"
|
|
212
|
+
import { insert, t, type Dictionary } from "intlayer";
|
|
213
|
+
|
|
214
|
+
const appContent = {
|
|
215
|
+
key: "app",
|
|
216
|
+
content: {
|
|
217
|
+
title: "Vite + Vanilla",
|
|
218
|
+
|
|
219
|
+
viteLogoLabel: t({
|
|
220
|
+
en: "Vite Logo",
|
|
221
|
+
fr: "Logo Vite",
|
|
222
|
+
es: "Logo Vite",
|
|
223
|
+
}),
|
|
224
|
+
|
|
225
|
+
count: insert(
|
|
226
|
+
t({
|
|
227
|
+
en: "count is {{count}}",
|
|
228
|
+
fr: "le compte est {{count}}",
|
|
229
|
+
es: "el recuento es {{count}}",
|
|
230
|
+
})
|
|
231
|
+
),
|
|
232
|
+
|
|
233
|
+
readTheDocs: t({
|
|
234
|
+
en: "Click on the Vite logo to learn more",
|
|
235
|
+
fr: "Cliquez sur le logo Vite pour en savoir plus",
|
|
236
|
+
es: "Daha fazlasını öğrenmek için Vite logosuna tıklayın",
|
|
237
|
+
}),
|
|
238
|
+
},
|
|
239
|
+
} satisfies Dictionary;
|
|
240
|
+
|
|
241
|
+
export default appContent;
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
```javascript fileName="src/app.content.mjs" contentDeclarationFormat="esm"
|
|
245
|
+
import { insert, t } from "intlayer";
|
|
246
|
+
|
|
247
|
+
/** @type {import('intlayer').Dictionary} */
|
|
248
|
+
const appContent = {
|
|
249
|
+
key: "app",
|
|
250
|
+
content: {
|
|
251
|
+
title: "Vite + Vanilla",
|
|
252
|
+
|
|
253
|
+
viteLogoLabel: t({
|
|
254
|
+
en: "Vite Logo",
|
|
255
|
+
fr: "Logo Vite",
|
|
256
|
+
es: "Logo Vite",
|
|
257
|
+
}),
|
|
258
|
+
|
|
259
|
+
count: insert(
|
|
260
|
+
t({
|
|
261
|
+
en: "count is {{count}}",
|
|
262
|
+
fr: "le compte est {{count}}",
|
|
263
|
+
es: "el recuento es {{count}}",
|
|
264
|
+
})
|
|
265
|
+
),
|
|
266
|
+
|
|
267
|
+
readTheDocs: t({
|
|
268
|
+
en: "Click on the Vite logo to learn more",
|
|
269
|
+
fr: "Cliquez sur le logo Vite pour en savoir plus",
|
|
270
|
+
es: "Daha fazlasını öğrenmek için Vite logosuna tıklayın",
|
|
271
|
+
}),
|
|
272
|
+
},
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
export default appContent;
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
```javascript fileName="src/app.content.cjs" contentDeclarationFormat="commonjs"
|
|
279
|
+
const { insert, t } = require("intlayer");
|
|
280
|
+
|
|
281
|
+
/** @type {import('intlayer').Dictionary} */
|
|
282
|
+
const appContent = {
|
|
283
|
+
key: "app",
|
|
284
|
+
content: {
|
|
285
|
+
title: "Vite + Vanilla",
|
|
286
|
+
|
|
287
|
+
viteLogoLabel: t({
|
|
288
|
+
en: "Vite Logo",
|
|
289
|
+
fr: "Logo Vite",
|
|
290
|
+
es: "Logo Vite",
|
|
291
|
+
}),
|
|
292
|
+
|
|
293
|
+
count: insert(
|
|
294
|
+
t({
|
|
295
|
+
en: "count is {{count}}",
|
|
296
|
+
fr: "le compte est {{count}}",
|
|
297
|
+
es: "el recuento es {{count}}",
|
|
298
|
+
})
|
|
299
|
+
),
|
|
300
|
+
|
|
301
|
+
readTheDocs: t({
|
|
302
|
+
en: "Click on the Vite logo to learn more",
|
|
303
|
+
fr: "Cliquez sur le logo Vite pour en savoir plus",
|
|
304
|
+
es: "Daha fazlasını öğrenmek için Vite logosuna tıklayın",
|
|
305
|
+
}),
|
|
306
|
+
},
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
module.exports = appContent;
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
```json fileName="src/app.content.json" contentDeclarationFormat="json"
|
|
313
|
+
{
|
|
314
|
+
"$schema": "https://intlayer.org/schema.json",
|
|
315
|
+
"key": "app",
|
|
316
|
+
"content": {
|
|
317
|
+
"title": "Vite + Vanilla",
|
|
318
|
+
"viteLogoLabel": {
|
|
319
|
+
"nodeType": "translation",
|
|
320
|
+
"translation": {
|
|
321
|
+
"en": "Vite Logo",
|
|
322
|
+
"fr": "Logo Vite",
|
|
323
|
+
"es": "Logo Vite"
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
"count": {
|
|
327
|
+
"nodeType": "insertion",
|
|
328
|
+
"insertion": {
|
|
329
|
+
"nodeType": "translation",
|
|
330
|
+
"translation": {
|
|
331
|
+
"en": "count is {{count}}",
|
|
332
|
+
"fr": "le compte est {{count}}",
|
|
333
|
+
"es": "el recuento es {{count}}"
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
"readTheDocs": {
|
|
338
|
+
"nodeType": "translation",
|
|
339
|
+
"translation": {
|
|
340
|
+
"en": "Click on the Vite logo to learn more",
|
|
341
|
+
"fr": "Cliquez sur le logo Vite pour en savoir plus",
|
|
342
|
+
"es": "Daha fazlasını öğrenmek için Vite logosuna tıklayın"
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
> İçerik bildirimleriniz, `contentDir` dizinine (varsayılan olarak `./src`) dahil oldukları sürece uygulamanızın herhangi bir yerinde tanımlanabilir. Ve içerik bildirimi dosyası uzantısıyla eşleşir (varsayılan olarak `.content.{json,ts,tsx,js,jsx,mjs,cjs}`).
|
|
350
|
+
>
|
|
351
|
+
> Daha fazla ayrıntı için [içerik bildirimi belgelerine](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/dictionary/content_file.md) bakın.
|
|
352
|
+
|
|
353
|
+
### Adım 6: JavaScript'inizde Intlayer Kullanın
|
|
354
|
+
|
|
355
|
+
`vanilla-intlayer`, `react-intlayer` yüzey API'sini yansıtır: `useIntlayer(key, locale?)` doğrudan çevrilmiş içeriği döndürür. Yerel ayar değişikliklerine abone olmak için sonuç üzerinde `.onChange()` işlevini zincirleyin — bir React yeniden oluşturmasının açık eşdeğeri.
|
|
356
|
+
|
|
357
|
+
```typescript fileName="src/main.ts" codeFormat="typescript"
|
|
358
|
+
import { installIntlayer, useIntlayer } from "vanilla-intlayer";
|
|
359
|
+
|
|
360
|
+
installIntlayer();
|
|
361
|
+
|
|
362
|
+
// Mevcut yerel ayar için başlangıç içeriğini alın.
|
|
363
|
+
// Yerel ayar her değiştiğinde bildirim almak için .onChange() işlevini zincirleyin.
|
|
364
|
+
const content = useIntlayer("app").onChange((newContent) => {
|
|
365
|
+
// Yalnızca etkilenen DOM düğümlerini yeniden oluşturun veya yamalayın
|
|
366
|
+
document.querySelector<HTMLHeadingElement>("h1")!.textContent = String(
|
|
367
|
+
newContent.title
|
|
368
|
+
);
|
|
369
|
+
document.querySelector<HTMLParagraphElement>(".read-the-docs")!.textContent =
|
|
370
|
+
String(newContent.readTheDocs);
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
// Başlangıç oluşturma
|
|
374
|
+
document.querySelector<HTMLHeadingElement>("h1")!.textContent = String(
|
|
375
|
+
content.title
|
|
376
|
+
);
|
|
377
|
+
document.querySelector<HTMLParagraphElement>(".read-the-docs")!.textContent =
|
|
378
|
+
String(content.readTheDocs);
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
> Yaprak değerleri `String()` içine sararak onlara dize olarak erişin, bu da düğümün `toString()` yöntemini çağırır ve çevrilmiş metni döndürür.
|
|
382
|
+
>
|
|
383
|
+
> Yerel bir HTML özelliği (örn. `alt`, `aria-label`) için değere ihtiyacınız olduğunda, doğrudan `.value` kullanın:
|
|
384
|
+
>
|
|
385
|
+
> ```typescript
|
|
386
|
+
> img.alt = content.viteLogoLabel.value;
|
|
387
|
+
> ```
|
|
388
|
+
|
|
389
|
+
### (İsteğe Bağlı) Adım 7: İçeriğinizin dilini değiştirin
|
|
390
|
+
|
|
391
|
+
İçeriğinizin dilini değiştirmek için `useLocale` tarafından sunulan `setLocale` işlevini kullanın.
|
|
392
|
+
|
|
393
|
+
```typescript fileName="src/locale-switcher.ts" codeFormat="typescript"
|
|
394
|
+
import { getLocaleName } from "intlayer";
|
|
395
|
+
import { useLocale } from "vanilla-intlayer";
|
|
396
|
+
|
|
397
|
+
export function setupLocaleSwitcher(container: HTMLElement): () => void {
|
|
398
|
+
const { locale, availableLocales, setLocale, subscribe } = useLocale();
|
|
399
|
+
|
|
400
|
+
const select = document.createElement("select");
|
|
401
|
+
select.setAttribute("aria-label", "Language");
|
|
402
|
+
|
|
403
|
+
const render = (currentLocale: string) => {
|
|
404
|
+
select.innerHTML = availableLocales
|
|
405
|
+
.map(
|
|
406
|
+
(loc) =>
|
|
407
|
+
`<option value="${loc}"${loc === currentLocale ? " selected" : ""}>
|
|
408
|
+
${getLocaleName(loc)}
|
|
409
|
+
</option>`
|
|
410
|
+
)
|
|
411
|
+
.join("");
|
|
412
|
+
};
|
|
413
|
+
|
|
414
|
+
render(locale);
|
|
415
|
+
container.appendChild(select);
|
|
416
|
+
|
|
417
|
+
select.addEventListener("change", () => setLocale(select.value as any));
|
|
418
|
+
|
|
419
|
+
// Başka bir yerden yerel ayar değiştiğinde açılır menüyü senkronize tutun
|
|
420
|
+
return subscribe((newLocale) => render(newLocale));
|
|
421
|
+
}
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### (İsteğe Bağlı) Adım 8: Markdown ve HTML içeriği oluşturun
|
|
425
|
+
|
|
426
|
+
Intlayer `md()` ve `html()` içerik bildirimlerini destekler. Vanilla JS'de, derlenmiş çıktı `innerHTML` aracılığıyla ham HTML olarak eklenir.
|
|
427
|
+
|
|
428
|
+
```typescript fileName="src/app.content.ts" contentDeclarationFormat="typescript"
|
|
429
|
+
import { md, t, type Dictionary } from "intlayer";
|
|
430
|
+
|
|
431
|
+
const appContent = {
|
|
432
|
+
key: "app",
|
|
433
|
+
content: {
|
|
434
|
+
// ...
|
|
435
|
+
editNote: md(
|
|
436
|
+
t({
|
|
437
|
+
en: "Edit `src/main.ts` and save to test **HMR**",
|
|
438
|
+
fr: "Modifiez `src/main.ts` et enregistrez pour tester **HMR**",
|
|
439
|
+
es: "Edite `src/main.ts` y guarde para probar **HMR**",
|
|
440
|
+
})
|
|
441
|
+
),
|
|
442
|
+
},
|
|
443
|
+
} satisfies Dictionary;
|
|
444
|
+
|
|
445
|
+
export default appContent;
|
|
446
|
+
```
|
|
447
|
+
|
|
448
|
+
HTML'yi derleyin ve ekleyin:
|
|
449
|
+
|
|
450
|
+
```typescript fileName="src/main.ts" codeFormat="typescript"
|
|
451
|
+
import {
|
|
452
|
+
compileMarkdown,
|
|
453
|
+
installIntlayerMarkdown,
|
|
454
|
+
useIntlayer,
|
|
455
|
+
} from "vanilla-intlayer";
|
|
456
|
+
|
|
457
|
+
installIntlayerMarkdown();
|
|
458
|
+
|
|
459
|
+
const content = useIntlayer("app").onChange((newContent) => {
|
|
460
|
+
const el = document.querySelector<HTMLDivElement>(".edit-note")!;
|
|
461
|
+
el.innerHTML = compileMarkdown(String(newContent.editNote));
|
|
462
|
+
});
|
|
463
|
+
|
|
464
|
+
document.querySelector<HTMLDivElement>(".edit-note")!.innerHTML =
|
|
465
|
+
compileMarkdown(String(content.editNote));
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
> [!TIP]
|
|
469
|
+
> `String(content.editNote)`, `IntlayerNode` üzerinde ham Markdown dizesini döndüren `toString()` işlevini çağırır. Bir HTML dizesi almak için bunu `compileMarkdown`'a geçirin, ardından `innerHTML` aracılığıyla ayarlayın.
|
|
470
|
+
|
|
471
|
+
> [!WARNING]
|
|
472
|
+
> `innerHTML`'i yalnızca güvenilir içerikle kullanın. Markdown kullanıcı girişinden geliyorsa, önce onu temizleyin (örn. DOMPurify ile). Bir temizleme oluşturucusunu dinamik olarak yükleyebilirsiniz:
|
|
473
|
+
>
|
|
474
|
+
> ```typescript
|
|
475
|
+
> import { installIntlayerMarkdownDynamic } from "vanilla-intlayer";
|
|
476
|
+
>
|
|
477
|
+
> await installIntlayerMarkdownDynamic(async () => {
|
|
478
|
+
> const DOMPurify = await import("dompurify");
|
|
479
|
+
> return (markdown) => DOMPurify.sanitize(compileMarkdown(markdown));
|
|
480
|
+
> });
|
|
481
|
+
> ```
|
|
482
|
+
|
|
483
|
+
### (İsteğe Bağlı) Adım 9: Uygulamanıza yerelleştirilmiş Yönlendirme ekleyin
|
|
484
|
+
|
|
485
|
+
Her dil için benzersiz yollar oluşturmak için (SEO için yararlıdır), sunucu tarafı yerel ayar algılaması için Vite yapılandırmanızda `intlayerProxy` kullanabilirsiniz.
|
|
486
|
+
|
|
487
|
+
İlk olarak, Vite yapılandırmanıza `intlayerProxy` ekleyin:
|
|
488
|
+
|
|
489
|
+
> Üretimde `intlayerProxy` kullanmak için `vite-intlayer`'ı `devDependencies`'dan `dependencies`'e taşımanız gerektiğini unutmayın.
|
|
490
|
+
|
|
491
|
+
```typescript {3,7} fileName="vite.config.ts" codeFormat="typescript"
|
|
492
|
+
import { defineConfig } from "vite";
|
|
493
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
494
|
+
|
|
495
|
+
export default defineConfig({
|
|
496
|
+
plugins: [
|
|
497
|
+
intlayerProxy(), // ilk sıraya yerleştirilmelidir
|
|
498
|
+
intlayer(),
|
|
499
|
+
],
|
|
500
|
+
});
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
```javascript {3,7} fileName="vite.config.mjs" codeFormat="esm"
|
|
504
|
+
import { defineConfig } from "vite";
|
|
505
|
+
import { intlayer, intlayerProxy } from "vite-intlayer";
|
|
506
|
+
|
|
507
|
+
export default defineConfig({
|
|
508
|
+
plugins: [
|
|
509
|
+
intlayerProxy(), // ilk sıraya yerleştirilmelidir
|
|
510
|
+
intlayer(),
|
|
511
|
+
],
|
|
512
|
+
});
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
```javascript {3,7} fileName="vite.config.cjs" codeFormat="commonjs"
|
|
516
|
+
const { defineConfig } = require("vite");
|
|
517
|
+
const { intlayer, intlayerProxy } = require("vite-intlayer");
|
|
518
|
+
|
|
519
|
+
module.exports = defineConfig({
|
|
520
|
+
plugins: [
|
|
521
|
+
intlayerProxy(), // ilk sıraya yerleştirilmelidir
|
|
522
|
+
intlayer(),
|
|
523
|
+
],
|
|
524
|
+
});
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
### (İsteğe Bağlı) Adım 10: Yerel ayar değiştiğinde URL'yi değiştirin
|
|
528
|
+
|
|
529
|
+
Yerel ayar değiştiğinde tarayıcı URL'sini güncellemek için Intlayer'ı yükledikten sonra `useRewriteURL()` işlevini çağırın:
|
|
530
|
+
|
|
531
|
+
```typescript fileName="src/main.ts" codeFormat="typescript"
|
|
532
|
+
import { installIntlayer, useRewriteURL } from "vanilla-intlayer";
|
|
533
|
+
|
|
534
|
+
installIntlayer();
|
|
535
|
+
|
|
536
|
+
// URL'yi hemen ve sonraki her yerel ayar değişikliğinde yeniden yazar.
|
|
537
|
+
// Temizlik için bir abonelikten çıkma işlevi döndürür.
|
|
538
|
+
const stopRewriteURL = useRewriteURL();
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
### (İsteğe Bağlı) Adım 11: HTML Dil ve Yön Özniteliklerini Değiştirin
|
|
542
|
+
|
|
543
|
+
Erişilebilirlik ve SEO için `<html>` etiketinin `lang` ve `dir` özniteliklerini mevcut yerel ayara uyacak şekilde güncelleyin.
|
|
544
|
+
|
|
545
|
+
```typescript fileName="src/main.ts" codeFormat="typescript"
|
|
546
|
+
import { getHTMLTextDir } from "intlayer";
|
|
547
|
+
import { installIntlayer, useLocale } from "vanilla-intlayer";
|
|
548
|
+
|
|
549
|
+
installIntlayer();
|
|
550
|
+
|
|
551
|
+
useLocale({
|
|
552
|
+
onLocaleChange: (locale) => {
|
|
553
|
+
document.documentElement.lang = locale;
|
|
554
|
+
document.documentElement.dir = getHTMLTextDir(locale);
|
|
555
|
+
},
|
|
556
|
+
});
|
|
557
|
+
```
|
|
558
|
+
|
|
559
|
+
### (İsteğe Bağlı) Adım 12: Yerel ayar başına sözlükleri tembel yükleyin (Lazy-load)
|
|
560
|
+
|
|
561
|
+
Büyük uygulamalar için her yerel ayarın sözlüğünü kendi yığınına bölmek isteyebilirsiniz. Vite'in dinamik `import()` işleviyle birlikte `useDictionaryDynamic` kullanın:
|
|
562
|
+
|
|
563
|
+
```typescript fileName="src/app.ts" codeFormat="typescript"
|
|
564
|
+
import { installIntlayer, useDictionaryDynamic } from "vanilla-intlayer";
|
|
565
|
+
|
|
566
|
+
installIntlayer();
|
|
567
|
+
|
|
568
|
+
const unsubscribe = useDictionaryDynamic(
|
|
569
|
+
{
|
|
570
|
+
en: () => import("../.intlayer/dictionaries/en/app.mjs"),
|
|
571
|
+
fr: () => import("../.intlayer/dictionaries/fr/app.mjs"),
|
|
572
|
+
es: () => import("../.intlayer/dictionaries/es/app.mjs"),
|
|
573
|
+
},
|
|
574
|
+
"app"
|
|
575
|
+
).onChange((content) => {
|
|
576
|
+
document.querySelector("h1")!.textContent = String(content.title);
|
|
577
|
+
});
|
|
578
|
+
```
|
|
579
|
+
|
|
580
|
+
> Her yerel ayarın paketi yalnızca o yerel ayar etkinleştirildiğinde getirilir ve sonuç önbelleğe alınır — aynı yerel ayara sonraki geçişler anlıktır.
|
|
581
|
+
|
|
582
|
+
### (İsteğe Bağlı) Adım 13: Bileşenlerinizin içeriğini dışa aktarın
|
|
583
|
+
|
|
584
|
+
Mevcut bir kod tabanınız varsa, binlerce dosyayı dönüştürmek zaman alıcı olabilir.
|
|
585
|
+
|
|
586
|
+
Bu süreci kolaylaştırmak için Intlayer, bileşenlerinizi dönüştürmek ve içeriği dışa aktarmak için bir [derleyici](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/compiler.md) / [ayıştırıcı](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/cli/extract.md) önerir.
|
|
587
|
+
|
|
588
|
+
Kurulum için `intlayer.config.ts` dosyanıza bir `compiler` bölümü ekleyebilirsiniz:
|
|
589
|
+
|
|
590
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
591
|
+
import { type IntlayerConfig } from "intlayer";
|
|
592
|
+
|
|
593
|
+
const config: IntlayerConfig = {
|
|
594
|
+
// ... Geri kalan yapılandırmanız
|
|
595
|
+
compiler: {
|
|
596
|
+
/**
|
|
597
|
+
* Derleyicinin etkinleştirilip etkinleştirilmeyeceğini belirtir.
|
|
598
|
+
*/
|
|
599
|
+
enabled: true,
|
|
600
|
+
|
|
601
|
+
/**
|
|
602
|
+
* Çıktı dosyaları yolunu tanımlar
|
|
603
|
+
*/
|
|
604
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
605
|
+
|
|
606
|
+
/**
|
|
607
|
+
* Dönüştürüldükten sonra bileşenlerin kaydedilip kaydedilmeyeceğini belirtir.
|
|
608
|
+
* Bu şekilde, derleyici uygulamayı dönüştürmek için yalnızca bir kez çalıştırılabilir ve ardından kaldırılabilir.
|
|
609
|
+
*/
|
|
610
|
+
saveComponents: false,
|
|
611
|
+
|
|
612
|
+
/**
|
|
613
|
+
* Sözlük anahtarı ön eki
|
|
614
|
+
*/
|
|
615
|
+
dictionaryKeyPrefix: "",
|
|
616
|
+
},
|
|
617
|
+
};
|
|
618
|
+
|
|
619
|
+
export default config;
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
<Tabs>
|
|
623
|
+
<Tab value='Extract komutu'>
|
|
624
|
+
|
|
625
|
+
Bileşenlerinizi dönüştürmek ve içeriği ayıklamak için ayıştırıcıyı çalıştırın
|
|
626
|
+
|
|
627
|
+
```bash packageManager="npm"
|
|
628
|
+
npx intlayer extract
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
```bash packageManager="pnpm"
|
|
632
|
+
pnpm intlayer extract
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
```bash packageManager="yarn"
|
|
636
|
+
yarn intlayer extract
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
```bash packageManager="bun"
|
|
640
|
+
bunx intlayer extract
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
</Tab>
|
|
644
|
+
<Tab value='Babel derleyicisi'>
|
|
645
|
+
|
|
646
|
+
`intlayerCompiler` eklentisini dahil etmek için `vite.config.ts` dosyanızı güncelleyin:
|
|
647
|
+
|
|
648
|
+
```ts fileName="vite.config.ts"
|
|
649
|
+
import { defineConfig } from "vite";
|
|
650
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
651
|
+
|
|
652
|
+
export default defineConfig({
|
|
653
|
+
plugins: [
|
|
654
|
+
intlayer(),
|
|
655
|
+
intlayerCompiler(), // Derleyici eklentisini ekler
|
|
656
|
+
],
|
|
657
|
+
});
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
```bash packageManager="npm"
|
|
661
|
+
npm run build # veya npm run dev
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
```bash packageManager="pnpm"
|
|
665
|
+
pnpm run build # veya pnpm run dev
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
```bash packageManager="yarn"
|
|
669
|
+
yarn build # veya yarn dev
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
```bash packageManager="bun"
|
|
673
|
+
bun run build # veya bun run dev
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
</Tab>
|
|
677
|
+
</Tabs>
|
|
678
|
+
|
|
679
|
+
### TypeScript'i Yapılandırın
|
|
680
|
+
|
|
681
|
+
TypeScript yapılandırmanızın otomatik olarak oluşturulan türleri içerdiğinden emin olun.
|
|
682
|
+
|
|
683
|
+
```json5 fileName="tsconfig.json"
|
|
684
|
+
{
|
|
685
|
+
"compilerOptions": {
|
|
686
|
+
// ...
|
|
687
|
+
},
|
|
688
|
+
"include": ["src", ".intlayer/**/*.ts"],
|
|
689
|
+
}
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
### Git Yapılandırması
|
|
693
|
+
|
|
694
|
+
Intlayer tarafından oluşturulan dosyaların yoksayılması önerilir. Bu, onları Git deponuza göndermekten kaçınmanıza olanak tanır.
|
|
695
|
+
|
|
696
|
+
Bunu yapmak için `.gitignore` dosyanıza aşağıdaki talimatları ekleyebilirsiniz:
|
|
697
|
+
|
|
698
|
+
```bash
|
|
699
|
+
# Intlayer tarafından oluşturulan dosyaları yoksay
|
|
700
|
+
.intlayer
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
### VS Code Uzantısı
|
|
704
|
+
|
|
705
|
+
Intlayer ile geliştirme deneyiminizi iyileştirmek için resmi **Intlayer VS Code Uzantısını** yükleyebilirsiniz.
|
|
706
|
+
|
|
707
|
+
[VS Code Marketplace'ten yükleyin](https://marketplace.visualstudio.com/items?itemName=intlayer.intlayer-vs-code-extension)
|
|
708
|
+
|
|
709
|
+
Bu uzantı şunları sağlar:
|
|
710
|
+
|
|
711
|
+
- Çeviri anahtarları için **otomatik tamamlama**.
|
|
712
|
+
- Eksik çeviriler için **gerçek zamanlı hata algılama**.
|
|
713
|
+
- Çevrilmiş içeriğin **satır içi önizlemeleri**.
|
|
714
|
+
- Çevirileri kolayca oluşturmak ve güncellemek için **hızlı eylemler**.
|
|
715
|
+
|
|
716
|
+
Uzantının nasıl kullanılacağına dair daha fazla ayrıntı için [Intlayer VS Code Uzantısı belgelerine](https://intlayer.org/doc/vs-code-extension) bakın.
|
|
717
|
+
|
|
718
|
+
---
|
|
719
|
+
|
|
720
|
+
### Daha Fazlasına Gidin
|
|
721
|
+
|
|
722
|
+
Daha ileri gitmek için [görsel düzenleyiciyi](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_visual_editor.md) uygulayabilir veya [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/tr/intlayer_CMS.md) kullanarak içeriğinizi dışsallaştırabilirsiniz.
|