@intlayer/docs 8.3.0 → 8.3.2
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/blog/ar/i18n_using_next-i18next.md +1 -0
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +0 -29
- package/blog/uk/internationalization_and_SEO.md +1 -1
- package/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +82 -58
- package/docs/ar/intlayer_with_analog.md +2 -2
- package/docs/ar/intlayer_with_angular.md +2 -2
- package/docs/ar/intlayer_with_astro.md +2 -2
- package/docs/ar/intlayer_with_lynx+react.md +2 -2
- package/docs/ar/intlayer_with_nextjs_16.md +174 -1
- package/docs/ar/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ar/intlayer_with_nextjs_no_locale_path.md +4 -7
- package/docs/ar/intlayer_with_react_native+expo.md +2 -2
- package/docs/ar/intlayer_with_react_router_v7.md +224 -1
- package/docs/ar/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ar/intlayer_with_svelte_kit.md +175 -2
- package/docs/ar/intlayer_with_tanstack.md +176 -1
- package/docs/ar/intlayer_with_vite+preact.md +176 -3
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +176 -3
- package/docs/ar/intlayer_with_vite+svelte.md +176 -3
- package/docs/ar/intlayer_with_vite+vue.md +178 -5
- package/docs/ar/vs_code_extension.md +1 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +417 -214
- package/docs/de/intlayer_with_analog.md +2 -2
- package/docs/de/intlayer_with_angular.md +2 -2
- package/docs/de/intlayer_with_astro.md +2 -2
- package/docs/de/intlayer_with_lynx+react.md +2 -2
- package/docs/de/intlayer_with_nextjs_16.md +176 -1
- package/docs/de/intlayer_with_nextjs_compiler.md +106 -349
- package/docs/de/intlayer_with_react_native+expo.md +2 -2
- package/docs/de/intlayer_with_react_router_v7.md +225 -2
- package/docs/de/intlayer_with_react_router_v7_fs_routes.md +221 -79
- package/docs/de/intlayer_with_svelte_kit.md +158 -2
- package/docs/de/intlayer_with_tanstack.md +159 -1
- package/docs/de/intlayer_with_vite+preact.md +159 -3
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +161 -5
- package/docs/de/intlayer_with_vite+svelte.md +159 -3
- package/docs/de/intlayer_with_vite+vue.md +159 -3
- package/docs/de/vs_code_extension.md +1 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +82 -77
- package/docs/en/intlayer_with_analog.md +1 -1
- package/docs/en/intlayer_with_angular.md +1 -1
- package/docs/en/intlayer_with_astro.md +1 -1
- package/docs/en/intlayer_with_lynx+react.md +1 -1
- package/docs/en/intlayer_with_nextjs_16.md +176 -0
- package/docs/en/intlayer_with_nextjs_compiler.md +179 -1
- package/docs/en/intlayer_with_react_native+expo.md +1 -1
- package/docs/en/intlayer_with_react_router_v7.md +159 -0
- package/docs/en/intlayer_with_react_router_v7_fs_routes.md +159 -0
- package/docs/en/intlayer_with_svelte_kit.md +159 -0
- package/docs/en/intlayer_with_tanstack.md +160 -1
- package/docs/en/intlayer_with_vite+preact.md +160 -1
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +149 -28
- package/docs/en/intlayer_with_vite+svelte.md +160 -1
- package/docs/en/intlayer_with_vite+vue.md +143 -42
- package/docs/en/vs_code_extension.md +1 -1
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +80 -57
- package/docs/en-GB/intlayer_with_analog.md +1 -1
- package/docs/en-GB/intlayer_with_angular.md +1 -1
- package/docs/en-GB/intlayer_with_astro.md +1 -1
- package/docs/en-GB/intlayer_with_lynx+react.md +1 -1
- package/docs/en-GB/intlayer_with_react_native+expo.md +1 -1
- package/docs/en-GB/intlayer_with_vite+preact.md +1 -1
- package/docs/en-GB/intlayer_with_vite+react.md +1 -1
- package/docs/en-GB/intlayer_with_vite+solid.md +1 -1
- package/docs/en-GB/intlayer_with_vite+svelte.md +1 -1
- package/docs/en-GB/intlayer_with_vite+vue.md +2 -2
- package/docs/en-GB/vs_code_extension.md +1 -1
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +412 -208
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- package/docs/es/intlayer_with_analog.md +2 -2
- package/docs/es/intlayer_with_angular.md +2 -2
- package/docs/es/intlayer_with_astro.md +2 -2
- package/docs/es/intlayer_with_express.md +1 -1
- package/docs/es/intlayer_with_fastify.md +1 -1
- package/docs/es/intlayer_with_hono.md +1 -1
- package/docs/es/intlayer_with_lynx+react.md +2 -2
- package/docs/es/intlayer_with_nestjs.md +1 -1
- package/docs/es/intlayer_with_nextjs_16.md +176 -3
- package/docs/es/intlayer_with_nextjs_compiler.md +175 -2
- package/docs/es/intlayer_with_nuxt.md +1 -1
- package/docs/es/intlayer_with_react_native+expo.md +2 -2
- package/docs/es/intlayer_with_react_router_v7.md +227 -4
- package/docs/es/intlayer_with_react_router_v7_fs_routes.md +162 -4
- package/docs/es/intlayer_with_svelte_kit.md +158 -2
- package/docs/es/intlayer_with_tanstack.md +160 -2
- package/docs/es/intlayer_with_vite+preact.md +164 -8
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +165 -9
- package/docs/es/intlayer_with_vite+svelte.md +159 -3
- package/docs/es/intlayer_with_vite+vue.md +169 -13
- package/docs/es/vs_code_extension.md +1 -1
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +351 -149
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- package/docs/fr/intlayer_with_analog.md +2 -2
- package/docs/fr/intlayer_with_angular.md +2 -2
- package/docs/fr/intlayer_with_astro.md +2 -2
- package/docs/fr/intlayer_with_express.md +1 -1
- package/docs/fr/intlayer_with_fastify.md +1 -1
- package/docs/fr/intlayer_with_hono.md +1 -1
- package/docs/fr/intlayer_with_lynx+react.md +2 -2
- package/docs/fr/intlayer_with_nestjs.md +1 -1
- package/docs/fr/intlayer_with_nextjs_16.md +183 -7
- package/docs/fr/intlayer_with_nextjs_compiler.md +179 -3
- package/docs/fr/intlayer_with_react_native+expo.md +2 -2
- package/docs/fr/intlayer_with_react_router_v7.md +229 -3
- package/docs/fr/intlayer_with_react_router_v7_fs_routes.md +237 -6
- package/docs/fr/intlayer_with_svelte_kit.md +158 -2
- package/docs/fr/intlayer_with_tanstack.md +159 -1
- package/docs/fr/intlayer_with_vite+preact.md +166 -10
- package/docs/fr/intlayer_with_vite+react.md +163 -7
- package/docs/fr/intlayer_with_vite+solid.md +165 -9
- package/docs/fr/intlayer_with_vite+svelte.md +159 -3
- package/docs/fr/intlayer_with_vite+vue.md +168 -12
- package/docs/fr/vs_code_extension.md +1 -1
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +89 -65
- package/docs/hi/intlayer_with_analog.md +1 -1
- package/docs/hi/intlayer_with_angular.md +2 -2
- package/docs/hi/intlayer_with_astro.md +2 -2
- package/docs/hi/intlayer_with_lynx+react.md +2 -2
- package/docs/hi/intlayer_with_nextjs_16.md +174 -1
- package/docs/hi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/hi/intlayer_with_react_native+expo.md +2 -2
- package/docs/hi/intlayer_with_react_router_v7.md +224 -1
- package/docs/hi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/hi/intlayer_with_svelte_kit.md +158 -2
- package/docs/hi/intlayer_with_tanstack.md +159 -1
- package/docs/hi/intlayer_with_vite+preact.md +159 -3
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +159 -3
- package/docs/hi/intlayer_with_vite+svelte.md +159 -3
- package/docs/hi/intlayer_with_vite+vue.md +159 -3
- package/docs/hi/vs_code_extension.md +1 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +85 -65
- package/docs/id/intlayer_with_analog.md +2 -2
- package/docs/id/intlayer_with_angular.md +2 -2
- package/docs/id/intlayer_with_astro.md +2 -2
- package/docs/id/intlayer_with_lynx+react.md +2 -2
- package/docs/id/intlayer_with_nextjs_16.md +174 -1
- package/docs/id/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/id/intlayer_with_react_native+expo.md +2 -2
- package/docs/id/intlayer_with_react_router_v7.md +224 -1
- package/docs/id/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/id/intlayer_with_svelte_kit.md +158 -2
- package/docs/id/intlayer_with_tanstack.md +159 -1
- package/docs/id/intlayer_with_vite+preact.md +159 -3
- package/docs/id/intlayer_with_vite+react.md +159 -3
- package/docs/id/intlayer_with_vite+solid.md +159 -3
- package/docs/id/intlayer_with_vite+svelte.md +159 -3
- package/docs/id/intlayer_with_vite+vue.md +159 -3
- package/docs/id/vs_code_extension.md +1 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +410 -208
- package/docs/it/intlayer_with_analog.md +2 -2
- package/docs/it/intlayer_with_angular.md +2 -2
- package/docs/it/intlayer_with_astro.md +2 -2
- package/docs/it/intlayer_with_lynx+react.md +2 -2
- package/docs/it/intlayer_with_nextjs_16.md +174 -1
- package/docs/it/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/it/intlayer_with_react_native+expo.md +2 -2
- package/docs/it/intlayer_with_react_router_v7.md +225 -2
- package/docs/it/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/it/intlayer_with_svelte_kit.md +158 -2
- package/docs/it/intlayer_with_tanstack.md +159 -1
- package/docs/it/intlayer_with_vite+preact.md +159 -3
- package/docs/it/intlayer_with_vite+react.md +159 -3
- package/docs/it/intlayer_with_vite+solid.md +161 -5
- package/docs/it/intlayer_with_vite+svelte.md +159 -3
- package/docs/it/intlayer_with_vite+vue.md +161 -5
- package/docs/it/vs_code_extension.md +1 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +90 -66
- package/docs/ja/intlayer_with_analog.md +2 -2
- package/docs/ja/intlayer_with_angular.md +2 -2
- package/docs/ja/intlayer_with_astro.md +2 -2
- package/docs/ja/intlayer_with_lynx+react.md +2 -2
- package/docs/ja/intlayer_with_nextjs_16.md +174 -1
- package/docs/ja/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ja/intlayer_with_react_native+expo.md +2 -2
- package/docs/ja/intlayer_with_react_router_v7.md +184 -394
- package/docs/ja/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ja/intlayer_with_svelte_kit.md +119 -595
- package/docs/ja/intlayer_with_tanstack.md +131 -642
- package/docs/ja/intlayer_with_vite+preact.md +111 -1231
- package/docs/ja/intlayer_with_vite+react.md +129 -1304
- package/docs/ja/intlayer_with_vite+solid.md +161 -5
- package/docs/ja/intlayer_with_vite+svelte.md +159 -3
- package/docs/ja/intlayer_with_vite+vue.md +159 -3
- package/docs/ja/vs_code_extension.md +1 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +89 -65
- package/docs/ko/intlayer_with_analog.md +2 -2
- package/docs/ko/intlayer_with_angular.md +2 -2
- package/docs/ko/intlayer_with_astro.md +2 -2
- package/docs/ko/intlayer_with_lynx+react.md +2 -2
- package/docs/ko/intlayer_with_nextjs_16.md +174 -1
- package/docs/ko/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ko/intlayer_with_react_native+expo.md +2 -2
- package/docs/ko/intlayer_with_react_router_v7.md +225 -2
- package/docs/ko/intlayer_with_react_router_v7_fs_routes.md +226 -2
- package/docs/ko/intlayer_with_svelte_kit.md +158 -2
- package/docs/ko/intlayer_with_tanstack.md +159 -1
- package/docs/ko/intlayer_with_vite+preact.md +159 -3
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +161 -5
- package/docs/ko/intlayer_with_vite+svelte.md +159 -3
- package/docs/ko/intlayer_with_vite+vue.md +159 -3
- package/docs/ko/vs_code_extension.md +1 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +85 -57
- package/docs/pl/intlayer_with_analog.md +2 -2
- package/docs/pl/intlayer_with_angular.md +2 -2
- package/docs/pl/intlayer_with_astro.md +2 -2
- package/docs/pl/intlayer_with_lynx+react.md +2 -2
- package/docs/pl/intlayer_with_nextjs_16.md +174 -1
- package/docs/pl/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pl/intlayer_with_react_native+expo.md +2 -2
- package/docs/pl/intlayer_with_react_router_v7.md +224 -1
- package/docs/pl/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pl/intlayer_with_svelte_kit.md +158 -2
- package/docs/pl/intlayer_with_tanstack.md +159 -1
- package/docs/pl/intlayer_with_vite+preact.md +158 -2
- package/docs/pl/intlayer_with_vite+react.md +159 -3
- package/docs/pl/intlayer_with_vite+solid.md +159 -3
- package/docs/pl/intlayer_with_vite+svelte.md +159 -3
- package/docs/pl/intlayer_with_vite+vue.md +161 -5
- package/docs/pl/vs_code_extension.md +1 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +399 -199
- package/docs/pt/intlayer_with_analog.md +2 -2
- package/docs/pt/intlayer_with_angular.md +2 -2
- package/docs/pt/intlayer_with_astro.md +2 -2
- package/docs/pt/intlayer_with_lynx+react.md +2 -2
- package/docs/pt/intlayer_with_nextjs_16.md +174 -1
- package/docs/pt/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/pt/intlayer_with_react_native+expo.md +2 -2
- package/docs/pt/intlayer_with_react_router_v7.md +224 -1
- package/docs/pt/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/pt/intlayer_with_svelte_kit.md +158 -2
- package/docs/pt/intlayer_with_tanstack.md +159 -1
- package/docs/pt/intlayer_with_vite+preact.md +158 -2
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +159 -3
- package/docs/pt/intlayer_with_vite+svelte.md +159 -3
- package/docs/pt/intlayer_with_vite+vue.md +159 -3
- package/docs/pt/vs_code_extension.md +1 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +78 -67
- package/docs/ru/intlayer_with_analog.md +2 -2
- package/docs/ru/intlayer_with_angular.md +2 -2
- package/docs/ru/intlayer_with_astro.md +2 -2
- package/docs/ru/intlayer_with_lynx+react.md +2 -2
- package/docs/ru/intlayer_with_nextjs_16.md +174 -1
- package/docs/ru/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/ru/intlayer_with_react_native+expo.md +2 -2
- package/docs/ru/intlayer_with_react_router_v7.md +224 -1
- package/docs/ru/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/ru/intlayer_with_svelte_kit.md +158 -2
- package/docs/ru/intlayer_with_tanstack.md +159 -1
- package/docs/ru/intlayer_with_vite+preact.md +159 -3
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +159 -3
- package/docs/ru/intlayer_with_vite+svelte.md +159 -3
- package/docs/ru/intlayer_with_vite+vue.md +159 -3
- package/docs/ru/vs_code_extension.md +1 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +85 -61
- package/docs/tr/intlayer_with_analog.md +2 -2
- package/docs/tr/intlayer_with_angular.md +2 -2
- package/docs/tr/intlayer_with_astro.md +2 -2
- package/docs/tr/intlayer_with_lynx+react.md +2 -2
- package/docs/tr/intlayer_with_nextjs_16.md +174 -1
- package/docs/tr/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/tr/intlayer_with_nextjs_no_locale_path.md +6 -14
- package/docs/tr/intlayer_with_react_native+expo.md +2 -2
- package/docs/tr/intlayer_with_react_router_v7.md +224 -1
- package/docs/tr/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/tr/intlayer_with_svelte_kit.md +158 -2
- package/docs/tr/intlayer_with_tanstack.md +159 -1
- package/docs/tr/intlayer_with_vite+preact.md +159 -3
- package/docs/tr/intlayer_with_vite+react.md +159 -3
- package/docs/tr/intlayer_with_vite+solid.md +159 -3
- package/docs/tr/intlayer_with_vite+svelte.md +159 -3
- package/docs/tr/intlayer_with_vite+vue.md +159 -3
- package/docs/tr/vs_code_extension.md +1 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +85 -57
- package/docs/uk/intlayer_with_analog.md +2 -2
- package/docs/uk/intlayer_with_angular.md +2 -2
- package/docs/uk/intlayer_with_astro.md +2 -2
- package/docs/uk/intlayer_with_lynx+react.md +2 -2
- package/docs/uk/intlayer_with_nextjs_16.md +174 -1
- package/docs/uk/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/uk/intlayer_with_nextjs_no_locale_path.md +4 -22
- package/docs/uk/intlayer_with_react_native+expo.md +2 -2
- package/docs/uk/intlayer_with_react_router_v7.md +224 -1
- package/docs/uk/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/uk/intlayer_with_svelte_kit.md +157 -1
- package/docs/uk/intlayer_with_tanstack.md +159 -1
- package/docs/uk/intlayer_with_vite+preact.md +159 -3
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +159 -3
- package/docs/uk/intlayer_with_vite+svelte.md +159 -3
- package/docs/uk/intlayer_with_vite+vue.md +159 -3
- package/docs/uk/vs_code_extension.md +1 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +87 -59
- package/docs/vi/intlayer_with_analog.md +2 -2
- package/docs/vi/intlayer_with_angular.md +2 -2
- package/docs/vi/intlayer_with_astro.md +2 -2
- package/docs/vi/intlayer_with_lynx+react.md +2 -2
- package/docs/vi/intlayer_with_nextjs_16.md +174 -1
- package/docs/vi/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/vi/intlayer_with_react_native+expo.md +2 -2
- package/docs/vi/intlayer_with_react_router_v7.md +224 -1
- package/docs/vi/intlayer_with_react_router_v7_fs_routes.md +225 -1
- package/docs/vi/intlayer_with_svelte_kit.md +158 -2
- package/docs/vi/intlayer_with_tanstack.md +159 -1
- package/docs/vi/intlayer_with_vite+preact.md +159 -3
- package/docs/vi/intlayer_with_vite+react.md +159 -3
- package/docs/vi/intlayer_with_vite+solid.md +159 -3
- package/docs/vi/intlayer_with_vite+svelte.md +159 -3
- package/docs/vi/intlayer_with_vite+vue.md +159 -3
- package/docs/vi/vs_code_extension.md +1 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +82 -58
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- package/docs/zh/intlayer_with_analog.md +2 -2
- package/docs/zh/intlayer_with_angular.md +2 -2
- package/docs/zh/intlayer_with_astro.md +2 -2
- package/docs/zh/intlayer_with_express.md +1 -1
- package/docs/zh/intlayer_with_fastify.md +1 -1
- package/docs/zh/intlayer_with_hono.md +1 -1
- package/docs/zh/intlayer_with_lynx+react.md +2 -2
- package/docs/zh/intlayer_with_nestjs.md +1 -1
- package/docs/zh/intlayer_with_nextjs_16.md +174 -1
- package/docs/zh/intlayer_with_nextjs_compiler.md +174 -1
- package/docs/zh/intlayer_with_react_native+expo.md +2 -2
- package/docs/zh/intlayer_with_react_router_v7.md +227 -4
- package/docs/zh/intlayer_with_react_router_v7_fs_routes.md +228 -4
- package/docs/zh/intlayer_with_svelte_kit.md +158 -2
- package/docs/zh/intlayer_with_tanstack.md +159 -1
- package/docs/zh/intlayer_with_vite+preact.md +161 -5
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +163 -7
- package/docs/zh/intlayer_with_vite+svelte.md +159 -3
- package/docs/zh/intlayer_with_vite+vue.md +162 -6
- package/docs/zh/vs_code_extension.md +2 -2
- package/package.json +8 -8
- package/docs/update_docs.py +0 -65
package/docs/uk/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Конфігурація
|
|
5
5
|
description: Дізнайтеся, як налаштувати Intlayer для вашого застосунку. Зрозумійте різні параметри та опції, доступні для налаштування Intlayer відповідно до ваших потреб.
|
|
6
6
|
keywords:
|
|
@@ -15,7 +15,7 @@ slugs:
|
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
17
|
- version: 8.3.0
|
|
18
|
-
|
|
18
|
+
date: 2026-03-11
|
|
19
19
|
changes: Перемістити 'baseDir' з конфігурації 'content' до конфігурації 'system'
|
|
20
20
|
- version: 8.2.0
|
|
21
21
|
date: 2026-03-09
|
|
@@ -110,7 +110,7 @@ Intlayer підтримує формати файлів конфігурації
|
|
|
110
110
|
|
|
111
111
|
## Приклад файлу конфігурації
|
|
112
112
|
|
|
113
|
-
|
|
113
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
114
114
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
115
115
|
import { nextjsRewrite } from "intlayer/routing";
|
|
116
116
|
import { z } from "zod";
|
|
@@ -208,7 +208,7 @@ const config: IntlayerConfig = {
|
|
|
208
208
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
209
209
|
* Default: ['cookie', 'header']
|
|
210
210
|
*/
|
|
211
|
-
storage: "cookie",
|
|
211
|
+
storage: ["cookie", "header"],
|
|
212
212
|
|
|
213
213
|
/**
|
|
214
214
|
* Base path for the application URLs.
|
|
@@ -274,13 +274,13 @@ const config: IntlayerConfig = {
|
|
|
274
274
|
editor: {
|
|
275
275
|
/**
|
|
276
276
|
* Whether the visual editor is enabled.
|
|
277
|
-
* Default:
|
|
277
|
+
* Default: false
|
|
278
278
|
*/
|
|
279
279
|
enabled: true,
|
|
280
280
|
|
|
281
281
|
/**
|
|
282
282
|
* URL of your application for origin validation.
|
|
283
|
-
* Default: "
|
|
283
|
+
* Default: ""
|
|
284
284
|
*/
|
|
285
285
|
applicationURL: "http://localhost:3000",
|
|
286
286
|
|
|
@@ -345,6 +345,17 @@ const config: IntlayerConfig = {
|
|
|
345
345
|
* Base URL for the AI API.
|
|
346
346
|
*/
|
|
347
347
|
baseURL: "http://localhost:3000",
|
|
348
|
+
|
|
349
|
+
/**
|
|
350
|
+
* Серіалізація даних
|
|
351
|
+
*
|
|
352
|
+
* Опції:
|
|
353
|
+
* - "json": Стандартний, надійний; використовує більше токенів.
|
|
354
|
+
* - "toon": Менше токенів, менш послідовний, ніж JSON.
|
|
355
|
+
*
|
|
356
|
+
* За замовчуванням: "json"
|
|
357
|
+
*/
|
|
358
|
+
dataSerialization: "json",
|
|
348
359
|
},
|
|
349
360
|
|
|
350
361
|
/**
|
|
@@ -444,42 +455,70 @@ const config: IntlayerConfig = {
|
|
|
444
455
|
compiler: {
|
|
445
456
|
/**
|
|
446
457
|
* Вказує, чи має бути увімкнено компілятор.
|
|
458
|
+
*
|
|
459
|
+
* - false : Вимкнути компілятор.
|
|
460
|
+
* - true : Увімкнути компілятор.
|
|
461
|
+
* - "build-only" : Пропустити компілятор під час розробки для прискорення запуску.
|
|
462
|
+
*
|
|
463
|
+
* Значення за замовчуванням : false
|
|
447
464
|
*/
|
|
448
465
|
enabled: true,
|
|
449
466
|
|
|
450
467
|
/**
|
|
451
|
-
*
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
*
|
|
468
|
+
* Визначає шлях до вихідних файлів. Замінює `outputDir`.
|
|
469
|
+
*
|
|
470
|
+
* - Шляхи, що починаються з `./`, розв'язуються відносно каталогу компонента.
|
|
471
|
+
* - Шляхи, що починаються з `/`, розв'язуються відносно кореня проєкту (`baseDir`).
|
|
472
|
+
*
|
|
473
|
+
* - Включення змінної `{{locale}}` у шлях дозволить генерувати словники, розділені за локалями.
|
|
474
|
+
*
|
|
475
|
+
* Приклади:
|
|
476
|
+
* ```ts
|
|
477
|
+
* {
|
|
478
|
+
* // Створює багатомовні файли .content.ts поруч із компонентом
|
|
479
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
480
|
+
*
|
|
481
|
+
* // output: './{{fileName}}{{extension}}', // Еквівалент з використанням рядкового шаблону
|
|
482
|
+
* }
|
|
483
|
+
* ```
|
|
484
|
+
*
|
|
485
|
+
* ```ts
|
|
486
|
+
* {
|
|
487
|
+
* // Створює централізовані JSON-файли за локалями в корені проєкту
|
|
488
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
489
|
+
*
|
|
490
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Еквівалент з використанням рядкового шаблону
|
|
491
|
+
* }
|
|
492
|
+
* ```
|
|
493
|
+
*
|
|
494
|
+
* Список змінних:
|
|
495
|
+
* - `fileName`: Назва файлу.
|
|
496
|
+
* - `key`: Ключ контенту.
|
|
497
|
+
* - `locale`: Локаль контенту.
|
|
498
|
+
* - `extension`: Розширення файлу.
|
|
499
|
+
* - `componentFileName`: Назва файлу компонента.
|
|
500
|
+
* - `componentExtension`: Розширення файлу компонента.
|
|
501
|
+
* - `format`: Формат словника.
|
|
502
|
+
* - `componentFormat`: Формат словника компонента.
|
|
503
|
+
* - `componentDirPath`: Шлях до каталогу компонента.
|
|
460
504
|
*/
|
|
461
|
-
|
|
505
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
462
506
|
|
|
463
507
|
/**
|
|
464
|
-
*
|
|
508
|
+
* Вказує, чи мають компоненти зберігатися після трансформації.
|
|
509
|
+
* Таким чином компілятор можна запустити лише один раз для трансформації додатка, а потім видалити.
|
|
465
510
|
*/
|
|
466
|
-
|
|
511
|
+
saveComponents: false,
|
|
467
512
|
|
|
468
513
|
/**
|
|
469
|
-
*
|
|
514
|
+
* Вставляти лише вміст у згенерований файл. Корисно для JSON-виводів i18next або ICU MessageFormat для кожної локалі.
|
|
470
515
|
*/
|
|
471
516
|
noMetadata: false,
|
|
472
517
|
|
|
473
518
|
/**
|
|
474
519
|
* Префікс ключа словника
|
|
475
520
|
*/
|
|
476
|
-
dictionaryKeyPrefix: "", //
|
|
477
|
-
|
|
478
|
-
/**
|
|
479
|
-
* Вказує, чи мають компоненти зберігатися після трансформації.
|
|
480
|
-
* Таким чином компілятор можна запустити лише один раз для трансформації додатка, а потім видалити.
|
|
481
|
-
*/
|
|
482
|
-
saveComponents: false,
|
|
521
|
+
dictionaryKeyPrefix: "", // Додайте необов'язковий префікс для витягнутих ключів словника
|
|
483
522
|
},
|
|
484
523
|
|
|
485
524
|
/**
|
|
@@ -498,7 +537,7 @@ const config: IntlayerConfig = {
|
|
|
498
537
|
};
|
|
499
538
|
|
|
500
539
|
export default config;
|
|
501
|
-
|
|
540
|
+
````
|
|
502
541
|
|
|
503
542
|
## Довідник конфігурації
|
|
504
543
|
|
|
@@ -1098,24 +1137,6 @@ Intlayer підтримує кількох постачальників ШІ д
|
|
|
1098
1137
|
- _Примітка_: Ця опція покладається на плагіни `@intlayer/babel` та `@intlayer/swc`.
|
|
1099
1138
|
- _Примітка_: Переконайтесь, що всі ключі оголошені статично у викликах `useIntlayer`. Наприклад `useIntlayer('navbar')`.
|
|
1100
1139
|
|
|
1101
|
-
- **importMode**:
|
|
1102
|
-
- _Примітка_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
1103
|
-
- _Тип_: `'static' | 'dynamic' | 'fetch'`
|
|
1104
|
-
- _За замовчуванням_: `'static'`
|
|
1105
|
-
- _Опис_: Керує тим, як імпортуються словники.
|
|
1106
|
-
- _Приклад_: `'dynamic'`
|
|
1107
|
-
- _Примітка_: Доступні режими:
|
|
1108
|
-
- "static": Словники імпортуються статично. Замінює `useIntlayer` на `useDictionary`.
|
|
1109
|
-
- "dynamic": Словники імпортуються динамічно з використанням Suspense. Замінює `useIntlayer` на `useDictionaryDynamic`.
|
|
1110
|
-
- "fetch": Словники отримуються динамічно з використанням live sync API. Замінює `useIntlayer` на `useDictionaryDynamic`.
|
|
1111
|
-
- _Примітка_: Динамічні імпорти залежать від Suspense і можуть дещо вплинути на продуктивність рендерингу.
|
|
1112
|
-
- _Примітка_: Якщо вимкнено, усі локалі будуть завантажені одночасно, навіть якщо вони не використовуються.
|
|
1113
|
-
- _Примітка_: Ця опція покладається на плагіни `@intlayer/babel` та `@intlayer/swc`.
|
|
1114
|
-
- _Примітка_: Переконайтеся, що всі ключі оголошені статично у викликах `useIntlayer`. Наприклад `useIntlayer('navbar')`.
|
|
1115
|
-
- _Примітка_: Ця опція буде ігноруватися, якщо `optimize` вимкнено.
|
|
1116
|
-
- _Примітка_: Якщо встановлено в "live", лише ті словники, які містять віддалений контент і позначені прапорцем "live", будуть перетворені у live-режим. Інші будуть імпортовані динамічно як режим "dynamic" для оптимізації кількості запитів і швидкості завантаження.
|
|
1117
|
-
- _Примітка_: У режимі live буде використовуватися Live Sync API для отримання словників. Якщо виклик API завершиться невдачею, словники будуть імпортовані динамічно в режимі "dynamic".
|
|
1118
|
-
- _Примітка_: Ця опція не вплине на функції `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` та `useDictionaryDynamic`.
|
|
1119
1140
|
- **checkTypes**:
|
|
1120
1141
|
- _Тип_: `boolean`
|
|
1121
1142
|
- _Типово_: `false`
|
|
@@ -1155,7 +1176,7 @@ Intlayer підтримує кількох постачальників ШІ д
|
|
|
1155
1176
|
|
|
1156
1177
|
- **dictionaryKeyPrefix**:
|
|
1157
1178
|
- _Тип_: `string`
|
|
1158
|
-
- _За замовчуванням_: `'
|
|
1179
|
+
- _За замовчуванням_: `''`
|
|
1159
1180
|
- _Опис_: Префікс для витягнутих ключів словника.
|
|
1160
1181
|
- _Приклад_: `'my-key-'`
|
|
1161
1182
|
- _Примітка_: Під час витягування словників ключ генерується на основі назви файлу. Цей префікс додається до згенерованого ключа, щоб запобігти конфліктам.
|
|
@@ -1179,30 +1200,37 @@ Intlayer підтримує кількох постачальників ШІ д
|
|
|
1179
1200
|
- _Опис_: Шаблони, що визначають, які файли слід виключити під час оптимізації.
|
|
1180
1201
|
- _Приклад_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1181
1202
|
|
|
1182
|
-
- **outputDir**:
|
|
1183
|
-
- _Тип_: `string`
|
|
1184
|
-
- _За замовчуванням_: `'compiler'`
|
|
1185
|
-
- _Опис_: Каталог, у якому будуть зберігатися витягнуті словники, відносно базового шляху вашого проекту.
|
|
1186
|
-
|
|
1187
1203
|
- **output**:
|
|
1188
1204
|
- _Тип_: `FilePathPattern`
|
|
1189
|
-
- _Типово_: `
|
|
1190
|
-
- _Опис_: Визначає шлях до вихідних файлів. Замінює `outputDir`.
|
|
1191
|
-
- _Примітка_:
|
|
1192
|
-
- _
|
|
1205
|
+
- _Типово_: `undefined`
|
|
1206
|
+
- _Опис_: Визначає шлях до вихідних файлів. Замінює `outputDir`. Підтримує динамічні змінні через рядкові шаблони або функцію. Підтримувані змінні: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}`, та `{{componentDirPath}}`.
|
|
1207
|
+
- _Примітка_: Шляхи, що починаються з `./`, розв'язуються відносно каталогу компонента. Шляхи, що починаються з `/`, розв'язуються відносно кореня проєкту (`baseDir`).
|
|
1208
|
+
- _Примітка_: Включення змінної `{{locale}}` у шлях дозволить генерувати словники, розділені за локалями.
|
|
1209
|
+
- _Приклад_:
|
|
1210
|
+
- **Багатомовний файл поруч із компонентом**:
|
|
1211
|
+
- Рядок: `'./{{fileName}}{{extension}}'`
|
|
1212
|
+
- Функція: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1213
|
+
|
|
1214
|
+
- **Централізовані JSON-файли для кожної локалі**:
|
|
1215
|
+
- Рядок: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1216
|
+
- Функція: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1193
1217
|
|
|
1194
1218
|
- **noMetadata**:
|
|
1195
1219
|
- _Тип_: `boolean`
|
|
1196
1220
|
- _Типово_: `false`
|
|
1197
|
-
- _Опис_: Вказує, чи мають метадані зберігатися у файлі. Якщо true, компілятор не зберігатиме метадані словників (ключ, оболонка вмісту).
|
|
1221
|
+
- _Опис_: Вказує, чи мають метадані зберігатися у файлі. Якщо true, компілятор не зберігатиме метадані словників (ключ, оболонка вмісту). Корисно для виводу JSON для i18next або ICU MessageFormat для кожної локалі.
|
|
1198
1222
|
- _Примітка_: Корисно при використанні з плагіном `loadJSON`.
|
|
1199
|
-
- _Приклад_:
|
|
1223
|
+
- _Приклад_:
|
|
1224
|
+
Якщо `true` :
|
|
1225
|
+
|
|
1200
1226
|
```json
|
|
1201
1227
|
{
|
|
1202
1228
|
"key": "value"
|
|
1203
1229
|
}
|
|
1204
1230
|
```
|
|
1231
|
+
|
|
1205
1232
|
Якщо `false`:
|
|
1233
|
+
|
|
1206
1234
|
```json
|
|
1207
1235
|
{
|
|
1208
1236
|
"key": "value",
|
|
@@ -344,8 +344,8 @@ Intlayer використовує розширення модулів (module au
|
|
|
344
344
|
|
|
345
345
|
Для цього ви можете додати наступні інструкції до вашого файлу `.gitignore`:
|
|
346
346
|
|
|
347
|
-
```
|
|
348
|
-
#
|
|
347
|
+
```bash
|
|
348
|
+
# Ігнорувати файли, створені Intlayer
|
|
349
349
|
.intlayer
|
|
350
350
|
```
|
|
351
351
|
|
|
@@ -400,8 +400,8 @@ Intlayer використовує розширення модулів (module au
|
|
|
400
400
|
|
|
401
401
|
Для цього ви можете додати наступні інструкції до вашого файлу `.gitignore`:
|
|
402
402
|
|
|
403
|
-
```
|
|
404
|
-
#
|
|
403
|
+
```bash
|
|
404
|
+
# Ігнорувати файли, створені Intlayer
|
|
405
405
|
.intlayer
|
|
406
406
|
```
|
|
407
407
|
|
|
@@ -227,8 +227,8 @@ Intlayer використовує module augmentation, щоб отримати
|
|
|
227
227
|
|
|
228
228
|
Для цього можете додати такі інструкції у файл `.gitignore`:
|
|
229
229
|
|
|
230
|
-
```
|
|
231
|
-
#
|
|
230
|
+
```bash
|
|
231
|
+
# Ігнорувати файли, згенеровані Intlayer
|
|
232
232
|
.intlayer
|
|
233
233
|
```
|
|
234
234
|
|
|
@@ -515,8 +515,8 @@ Intlayer генерує визначення типів у прихованій
|
|
|
515
515
|
|
|
516
516
|
Щоб уникнути коміту автоматично згенерованих файлів Intlayer, додайте наступне до вашого `.gitignore`:
|
|
517
517
|
|
|
518
|
-
```
|
|
519
|
-
#
|
|
518
|
+
```bash
|
|
519
|
+
# Ігнорувати файли, згенеровані Intlayer
|
|
520
520
|
.intlayer
|
|
521
521
|
```
|
|
522
522
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-12-06
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Next.js i18n - Як перекласти додаток Next.js 16 у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш вебсайт на Next.js 16 багатомовним. Дотримуйтесь документації, щоб інтернаціоналізувати (i18n) та перекласти його.
|
|
6
6
|
keywords:
|
|
@@ -1695,6 +1695,179 @@ Intlayer використовує розширення модулів (module au
|
|
|
1695
1695
|
|
|
1696
1696
|
Більш детальну інформацію про те, як користуватися розширенням, можна знайти в [документації розширення Intlayer для VS Code](https://intlayer.org/doc/vs-code-extension).
|
|
1697
1697
|
|
|
1698
|
+
### (Необов'язково) Крок 1 : Витягніть вміст ваших компонентів
|
|
1699
|
+
|
|
1700
|
+
Якщо у вас є існуюча кодова база, перетворення тисяч файлів може зайняти багато часу.
|
|
1701
|
+
|
|
1702
|
+
Щоб спростити цей процес, Intlayer пропонує [компілятор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compiler.md) / [екстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/extract.md) для перетворення ваших компонентів і витягування вмісту.
|
|
1703
|
+
|
|
1704
|
+
Щоб налаштувати його, ви можете додати розділ `compiler` у свій файл `intlayer.config.ts`:
|
|
1705
|
+
|
|
1706
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1707
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1708
|
+
|
|
1709
|
+
const config: IntlayerConfig = {
|
|
1710
|
+
// ... Інша частина вашої конфігурації
|
|
1711
|
+
compiler: {
|
|
1712
|
+
/**
|
|
1713
|
+
* Вказує, чи повинен бути включений компілятор.
|
|
1714
|
+
*/
|
|
1715
|
+
enabled: true,
|
|
1716
|
+
|
|
1717
|
+
/**
|
|
1718
|
+
* Визначає шлях до вихідних файлів
|
|
1719
|
+
*/
|
|
1720
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1721
|
+
|
|
1722
|
+
/**
|
|
1723
|
+
* Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
|
|
1724
|
+
*/
|
|
1725
|
+
saveComponents: false,
|
|
1726
|
+
|
|
1727
|
+
/**
|
|
1728
|
+
* Префікс ключа словника
|
|
1729
|
+
*/
|
|
1730
|
+
dictionaryKeyPrefix: "",
|
|
1731
|
+
},
|
|
1732
|
+
};
|
|
1733
|
+
|
|
1734
|
+
export default config;
|
|
1735
|
+
```
|
|
1736
|
+
|
|
1737
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1738
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1739
|
+
const config = {
|
|
1740
|
+
// ... Інша частина вашої конфігурації
|
|
1741
|
+
compiler: {
|
|
1742
|
+
/**
|
|
1743
|
+
* Вказує, чи повинен бути включений компілятор.
|
|
1744
|
+
*/
|
|
1745
|
+
enabled: true,
|
|
1746
|
+
|
|
1747
|
+
/**
|
|
1748
|
+
* Визначає шлях до вихідних файлів
|
|
1749
|
+
*/
|
|
1750
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1751
|
+
|
|
1752
|
+
/**
|
|
1753
|
+
* Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
|
|
1754
|
+
*/
|
|
1755
|
+
saveComponents: false,
|
|
1756
|
+
|
|
1757
|
+
/**
|
|
1758
|
+
* Префікс ключа словника
|
|
1759
|
+
*/
|
|
1760
|
+
dictionaryKeyPrefix: "",
|
|
1761
|
+
},
|
|
1762
|
+
};
|
|
1763
|
+
|
|
1764
|
+
export default config;
|
|
1765
|
+
```
|
|
1766
|
+
|
|
1767
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1768
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1769
|
+
const config = {
|
|
1770
|
+
// ... Інша частина вашої конфігурації
|
|
1771
|
+
compiler: {
|
|
1772
|
+
/**
|
|
1773
|
+
* Вказує, чи повинен бути включений компілятор.
|
|
1774
|
+
*/
|
|
1775
|
+
enabled: true,
|
|
1776
|
+
|
|
1777
|
+
/**
|
|
1778
|
+
* Визначає шлях до вихідних файлів
|
|
1779
|
+
*/
|
|
1780
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1781
|
+
|
|
1782
|
+
/**
|
|
1783
|
+
* Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
|
|
1784
|
+
*/
|
|
1785
|
+
saveComponents: false,
|
|
1786
|
+
|
|
1787
|
+
/**
|
|
1788
|
+
* Префікс ключа словника
|
|
1789
|
+
*/
|
|
1790
|
+
dictionaryKeyPrefix: "",
|
|
1791
|
+
},
|
|
1792
|
+
};
|
|
1793
|
+
|
|
1794
|
+
module.exports = config;
|
|
1795
|
+
```
|
|
1796
|
+
|
|
1797
|
+
<Tabs>
|
|
1798
|
+
<Tab value='Команда витягування'>
|
|
1799
|
+
|
|
1800
|
+
Запустіть екстрактор для перетворення компонентів і витягування вмісту
|
|
1801
|
+
|
|
1802
|
+
```bash packageManager="npm"
|
|
1803
|
+
npx intlayer extract
|
|
1804
|
+
```
|
|
1805
|
+
|
|
1806
|
+
```bash packageManager="pnpm"
|
|
1807
|
+
pnpm intlayer extract
|
|
1808
|
+
```
|
|
1809
|
+
|
|
1810
|
+
```bash packageManager="yarn"
|
|
1811
|
+
yarn intlayer extract
|
|
1812
|
+
```
|
|
1813
|
+
|
|
1814
|
+
```bash packageManager="bun"
|
|
1815
|
+
bunx intlayer extract
|
|
1816
|
+
```
|
|
1817
|
+
|
|
1818
|
+
</Tab>
|
|
1819
|
+
<Tab value='Компілятор Babel'>
|
|
1820
|
+
|
|
1821
|
+
```bash packageManager="npm"
|
|
1822
|
+
npm install @intlayer/babel --save-dev
|
|
1823
|
+
```
|
|
1824
|
+
|
|
1825
|
+
```bash packageManager="pnpm"
|
|
1826
|
+
pnpm add @intlayer/babel --save-dev
|
|
1827
|
+
```
|
|
1828
|
+
|
|
1829
|
+
```bash packageManager="yarn"
|
|
1830
|
+
yarn add @intlayer/babel --save-dev
|
|
1831
|
+
```
|
|
1832
|
+
|
|
1833
|
+
```bash packageManager="bun"
|
|
1834
|
+
bun add @intlayer/babel --dev
|
|
1835
|
+
```
|
|
1836
|
+
|
|
1837
|
+
```js fileName="babel.config.js"
|
|
1838
|
+
const {
|
|
1839
|
+
intlayerExtractBabelPlugin,
|
|
1840
|
+
getExtractPluginOptions,
|
|
1841
|
+
} = require("@intlayer/babel");
|
|
1842
|
+
|
|
1843
|
+
module.exports = {
|
|
1844
|
+
presets: ["next/babel"],
|
|
1845
|
+
plugins: [
|
|
1846
|
+
// Витягування вмісту з компонентів у словники
|
|
1847
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
1848
|
+
],
|
|
1849
|
+
};
|
|
1850
|
+
```
|
|
1851
|
+
|
|
1852
|
+
```bash packageManager="npm"
|
|
1853
|
+
npm run build # Або npm run dev
|
|
1854
|
+
```
|
|
1855
|
+
|
|
1856
|
+
```bash packageManager="pnpm"
|
|
1857
|
+
pnpm run build # Or pnpm run dev
|
|
1858
|
+
```
|
|
1859
|
+
|
|
1860
|
+
```bash packageManager="yarn"
|
|
1861
|
+
yarn build # Or yarn dev
|
|
1862
|
+
```
|
|
1863
|
+
|
|
1864
|
+
```bash packageManager="bun"
|
|
1865
|
+
bun run build # Or bun run dev
|
|
1866
|
+
```
|
|
1867
|
+
|
|
1868
|
+
</Tab>
|
|
1869
|
+
</Tabs>
|
|
1870
|
+
|
|
1698
1871
|
### Йдіть далі
|
|
1699
1872
|
|
|
1700
1873
|
Щоб піти далі, ви можете впровадити [візуальний редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_visual_editor.md) або екстерналізувати ваш контент за допомогою [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_CMS.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-01-10
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Next.js i18n - Перетворення існуючого додатка Next.js на багатомовний додаток у 2026
|
|
5
5
|
description: Дізнайтеся, як зробити ваш існуючий додаток Next.js багатомовним за допомогою Intlayer Compiler. Дотримуйтесь документації, щоб інтернаціоналізувати (i18n) та перекласти ваш додаток за допомогою ШІ.
|
|
6
6
|
keywords:
|
|
@@ -501,6 +501,179 @@ Intlayer використовує розширення модулів (module au
|
|
|
501
501
|
|
|
502
502
|
Прочитайте [документацію до розширення VS Code Intlayer](https://intlayer.org/doc/vs-code-extension) для отримання детальних інструкцій щодо використання розширення.
|
|
503
503
|
|
|
504
|
+
### (Необов'язково) Крок 1 : Витягніть вміст ваших компонентів
|
|
505
|
+
|
|
506
|
+
Якщо у вас є існуюча кодова база, перетворення тисяч файлів може зайняти багато часу.
|
|
507
|
+
|
|
508
|
+
Щоб спростити цей процес, Intlayer пропонує [компілятор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/compiler.md) / [екстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/cli/extract.md) для перетворення ваших компонентів і витягування вмісту.
|
|
509
|
+
|
|
510
|
+
Щоб налаштувати його, ви можете додати розділ `compiler` у свій файл `intlayer.config.ts`:
|
|
511
|
+
|
|
512
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
513
|
+
import { type IntlayerConfig } from "intlayer";
|
|
514
|
+
|
|
515
|
+
const config: IntlayerConfig = {
|
|
516
|
+
// ... Інша частина вашої конфігурації
|
|
517
|
+
compiler: {
|
|
518
|
+
/**
|
|
519
|
+
* Вказує, чи повинен бути включений компілятор.
|
|
520
|
+
*/
|
|
521
|
+
enabled: true,
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Визначає шлях до вихідних файлів
|
|
525
|
+
*/
|
|
526
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
527
|
+
|
|
528
|
+
/**
|
|
529
|
+
* Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
|
|
530
|
+
*/
|
|
531
|
+
saveComponents: false,
|
|
532
|
+
|
|
533
|
+
/**
|
|
534
|
+
* Префікс ключа словника
|
|
535
|
+
*/
|
|
536
|
+
dictionaryKeyPrefix: "",
|
|
537
|
+
},
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
export default config;
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
544
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
545
|
+
const config = {
|
|
546
|
+
// ... Інша частина вашої конфігурації
|
|
547
|
+
compiler: {
|
|
548
|
+
/**
|
|
549
|
+
* Вказує, чи повинен бути включений компілятор.
|
|
550
|
+
*/
|
|
551
|
+
enabled: true,
|
|
552
|
+
|
|
553
|
+
/**
|
|
554
|
+
* Визначає шлях до вихідних файлів
|
|
555
|
+
*/
|
|
556
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
557
|
+
|
|
558
|
+
/**
|
|
559
|
+
* Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
|
|
560
|
+
*/
|
|
561
|
+
saveComponents: false,
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Префікс ключа словника
|
|
565
|
+
*/
|
|
566
|
+
dictionaryKeyPrefix: "",
|
|
567
|
+
},
|
|
568
|
+
};
|
|
569
|
+
|
|
570
|
+
export default config;
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
574
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
575
|
+
const config = {
|
|
576
|
+
// ... Інша частина вашої конфігурації
|
|
577
|
+
compiler: {
|
|
578
|
+
/**
|
|
579
|
+
* Вказує, чи повинен бути включений компілятор.
|
|
580
|
+
*/
|
|
581
|
+
enabled: true,
|
|
582
|
+
|
|
583
|
+
/**
|
|
584
|
+
* Визначає шлях до вихідних файлів
|
|
585
|
+
*/
|
|
586
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
587
|
+
|
|
588
|
+
/**
|
|
589
|
+
* Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити.
|
|
590
|
+
*/
|
|
591
|
+
saveComponents: false,
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* Префікс ключа словника
|
|
595
|
+
*/
|
|
596
|
+
dictionaryKeyPrefix: "",
|
|
597
|
+
},
|
|
598
|
+
};
|
|
599
|
+
|
|
600
|
+
module.exports = config;
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
<Tabs>
|
|
604
|
+
<Tab value='Команда витягування'>
|
|
605
|
+
|
|
606
|
+
Запустіть екстрактор для перетворення компонентів і витягування вмісту
|
|
607
|
+
|
|
608
|
+
```bash packageManager="npm"
|
|
609
|
+
npx intlayer extract
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
```bash packageManager="pnpm"
|
|
613
|
+
pnpm intlayer extract
|
|
614
|
+
```
|
|
615
|
+
|
|
616
|
+
```bash packageManager="yarn"
|
|
617
|
+
yarn intlayer extract
|
|
618
|
+
```
|
|
619
|
+
|
|
620
|
+
```bash packageManager="bun"
|
|
621
|
+
bunx intlayer extract
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
</Tab>
|
|
625
|
+
<Tab value='Компілятор Babel'>
|
|
626
|
+
|
|
627
|
+
```bash packageManager="npm"
|
|
628
|
+
npm install @intlayer/babel --save-dev
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
```bash packageManager="pnpm"
|
|
632
|
+
pnpm add @intlayer/babel --save-dev
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
```bash packageManager="yarn"
|
|
636
|
+
yarn add @intlayer/babel --save-dev
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
```bash packageManager="bun"
|
|
640
|
+
bun add @intlayer/babel --dev
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
```js fileName="babel.config.js"
|
|
644
|
+
const {
|
|
645
|
+
intlayerExtractBabelPlugin,
|
|
646
|
+
getExtractPluginOptions,
|
|
647
|
+
} = require("@intlayer/babel");
|
|
648
|
+
|
|
649
|
+
module.exports = {
|
|
650
|
+
presets: ["next/babel"],
|
|
651
|
+
plugins: [
|
|
652
|
+
// Витягування вмісту з компонентів у словники
|
|
653
|
+
[intlayerExtractBabelPlugin, getExtractPluginOptions()],
|
|
654
|
+
],
|
|
655
|
+
};
|
|
656
|
+
```
|
|
657
|
+
|
|
658
|
+
```bash packageManager="npm"
|
|
659
|
+
npm run build # Або npm run dev
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
```bash packageManager="pnpm"
|
|
663
|
+
pnpm run build # Or pnpm run dev
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
```bash packageManager="yarn"
|
|
667
|
+
yarn build # Or yarn dev
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
```bash packageManager="bun"
|
|
671
|
+
bun run build # Or bun run dev
|
|
672
|
+
```
|
|
673
|
+
|
|
674
|
+
</Tab>
|
|
675
|
+
</Tabs>
|
|
676
|
+
|
|
504
677
|
### Йдемо далі
|
|
505
678
|
|
|
506
679
|
Для подальшого розвитку ви можете впровадити [візуальний редактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_visual_editor.md) або винести ваш контент назовні за допомогою [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/uk/intlayer_CMS.md).
|