@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/ru/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-10
|
|
@@ -92,7 +92,7 @@ Intlayer поддерживает форматы файлов конфигура
|
|
|
92
92
|
|
|
93
93
|
## Пример файла конфигурации
|
|
94
94
|
|
|
95
|
-
|
|
95
|
+
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
96
96
|
import { Locales, type IntlayerConfig } from "intlayer";
|
|
97
97
|
import { nextjsRewrite } from "intlayer/routing";
|
|
98
98
|
import { z } from "zod";
|
|
@@ -190,7 +190,7 @@ const config: IntlayerConfig = {
|
|
|
190
190
|
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
191
191
|
* Default: ['cookie', 'header']
|
|
192
192
|
*/
|
|
193
|
-
storage: "cookie",
|
|
193
|
+
storage: ["cookie", "header"],
|
|
194
194
|
|
|
195
195
|
/**
|
|
196
196
|
* Base path for the application URLs.
|
|
@@ -256,13 +256,13 @@ const config: IntlayerConfig = {
|
|
|
256
256
|
editor: {
|
|
257
257
|
/**
|
|
258
258
|
* Whether the visual editor is enabled.
|
|
259
|
-
* Default:
|
|
259
|
+
* Default: false
|
|
260
260
|
*/
|
|
261
261
|
enabled: true,
|
|
262
262
|
|
|
263
263
|
/**
|
|
264
264
|
* URL of your application for origin validation.
|
|
265
|
-
* Default: "
|
|
265
|
+
* Default: ""
|
|
266
266
|
*/
|
|
267
267
|
applicationURL: "http://localhost:3000",
|
|
268
268
|
|
|
@@ -321,18 +321,16 @@ const config: IntlayerConfig = {
|
|
|
321
321
|
/**
|
|
322
322
|
* Global context to guide the AI in generating translations.
|
|
323
323
|
*/
|
|
324
|
-
applicationContext: "This is a travel booking application.",
|
|
325
|
-
|
|
326
|
-
/**
|
|
327
|
-
* Base URL for the AI API.
|
|
328
|
-
*/
|
|
329
324
|
baseURL: "http://localhost:3000",
|
|
330
325
|
|
|
331
326
|
/**
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
*
|
|
327
|
+
* Сериализация данных
|
|
328
|
+
*
|
|
329
|
+
* Опции:
|
|
330
|
+
* - "json": Стандартный, надежный; использует больше токенов.
|
|
331
|
+
* - "toon": Меньше токенов, менее последователен, чем JSON.
|
|
332
|
+
*
|
|
333
|
+
* По умолчанию: "json"
|
|
336
334
|
*/
|
|
337
335
|
dataSerialization: "json",
|
|
338
336
|
},
|
|
@@ -434,42 +432,70 @@ const config: IntlayerConfig = {
|
|
|
434
432
|
compiler: {
|
|
435
433
|
/**
|
|
436
434
|
* Указывает, должен ли компилятор быть включен.
|
|
435
|
+
*
|
|
436
|
+
* - false : Отключить компилятор.
|
|
437
|
+
* - true : Включить компилятор.
|
|
438
|
+
* - "build-only" : Пропустить компилятор во время разработки для ускорения запуска.
|
|
439
|
+
*
|
|
440
|
+
* По умолчанию : false
|
|
437
441
|
*/
|
|
438
442
|
enabled: true,
|
|
439
443
|
|
|
440
444
|
/**
|
|
441
|
-
*
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
*
|
|
445
|
+
* Определяет путь к выходным файлам. Заменяет `outputDir`.
|
|
446
|
+
*
|
|
447
|
+
* - Пути `./` разрешаются относительно каталога компонента.
|
|
448
|
+
* - Пути `/` разрешаются относительно корня проекта (`baseDir`).
|
|
449
|
+
*
|
|
450
|
+
* - Включение переменной `{{locale}}` в путь приведет к генерации отдельных словарей для каждой локали.
|
|
451
|
+
*
|
|
452
|
+
* Пример:
|
|
453
|
+
* ```ts
|
|
454
|
+
* {
|
|
455
|
+
* // Создавать многоязычные файлы .content.ts рядом с компонентом
|
|
456
|
+
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
457
|
+
*
|
|
458
|
+
* // output: './{{fileName}}{{extension}}', // Эквивалент с использованием строки шаблона
|
|
459
|
+
* }
|
|
460
|
+
* ```
|
|
461
|
+
*
|
|
462
|
+
* ```ts
|
|
463
|
+
* {
|
|
464
|
+
* // Создавать централизованные JSON по локалям в корне проекта
|
|
465
|
+
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
466
|
+
*
|
|
467
|
+
* // output: '/locales/{{locale}}/{{key}}.content.json', // Эквивалент с использованием строки шаблона
|
|
468
|
+
* }
|
|
469
|
+
* ```
|
|
470
|
+
*
|
|
471
|
+
* Список переменных:
|
|
472
|
+
* - `fileName`: Имя файла.
|
|
473
|
+
* - `key`: Ключ контента.
|
|
474
|
+
* - `locale`: Локаль контента.
|
|
475
|
+
* - `extension`: Расширение файла.
|
|
476
|
+
* - `componentFileName`: Имя файла компонента.
|
|
477
|
+
* - `componentExtension`: Расширение файла компонента.
|
|
478
|
+
* - `format`: Формат словаря.
|
|
479
|
+
* - `componentFormat`: Формат словаря компонента.
|
|
480
|
+
* - `componentDirPath`: Путь к каталогу компонента.
|
|
450
481
|
*/
|
|
451
|
-
|
|
482
|
+
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
452
483
|
|
|
453
484
|
/**
|
|
454
|
-
*
|
|
485
|
+
* Указывает, должны ли компоненты сохраняться после трансформации.
|
|
486
|
+
* Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
|
|
455
487
|
*/
|
|
456
|
-
|
|
488
|
+
saveComponents: false,
|
|
457
489
|
|
|
458
490
|
/**
|
|
459
|
-
* Вставьте только содержимое в сгенерированный
|
|
491
|
+
* Вставьте только содержимое в сгенерированный файл. Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
|
|
460
492
|
*/
|
|
461
493
|
noMetadata: false,
|
|
462
494
|
|
|
463
495
|
/**
|
|
464
496
|
* Префикс ключа словаря
|
|
465
497
|
*/
|
|
466
|
-
dictionaryKeyPrefix: "", //
|
|
467
|
-
|
|
468
|
-
/**
|
|
469
|
-
* Указывает, должны ли компоненты сохраняться после трансформации.
|
|
470
|
-
* Таким образом, компилятор можно запустить только один раз для трансформации приложения, а затем удалить.
|
|
471
|
-
*/
|
|
472
|
-
saveComponents: false,
|
|
498
|
+
dictionaryKeyPrefix: "", // Добавьте необязательный префикс для извлеченных ключей словаря
|
|
473
499
|
},
|
|
474
500
|
|
|
475
501
|
/**
|
|
@@ -488,7 +514,7 @@ const config: IntlayerConfig = {
|
|
|
488
514
|
};
|
|
489
515
|
|
|
490
516
|
export default config;
|
|
491
|
-
|
|
517
|
+
````
|
|
492
518
|
|
|
493
519
|
## Справочник по конфигурации
|
|
494
520
|
|
|
@@ -996,25 +1022,6 @@ Intlayer поддерживает несколько провайдеров ИИ
|
|
|
996
1022
|
- _Примечание_: Эта опция зависит от плагинов `@intlayer/babel` и `@intlayer/swc`.
|
|
997
1023
|
- _Примечание_: Убедитесь, что все ключи объявлены статически в вызовах `useIntlayer`, например `useIntlayer('navbar')`.
|
|
998
1024
|
|
|
999
|
-
- **importMode**:
|
|
1000
|
-
- _Примечание_: **Deprecated**: Use `dictionary.importMode` instead.
|
|
1001
|
-
- _Тип_: `'static' | 'dynamic' | 'fetch'`
|
|
1002
|
-
- _По умолчанию_: `'static'`
|
|
1003
|
-
- _Описание_: Управляет способом импорта словарей.
|
|
1004
|
-
- _Пример_: `'dynamic'`
|
|
1005
|
-
- _Примечание_: Доступные режимы:
|
|
1006
|
-
- "static": Словари импортируются статически. Заменяет `useIntlayer` на `useDictionary`.
|
|
1007
|
-
- "dynamic": Словари импортируются динамически с использованием Suspense. Заменяет `useIntlayer` на `useDictionaryDynamic`.
|
|
1008
|
-
- "fetch": Словари загружаются динамически с использованием API живой синхронизации. Заменяет `useIntlayer` на `useDictionaryFetch`.
|
|
1009
|
-
- _Примечание_: Динамические импорты зависят от Suspense и могут незначительно повлиять на производительность рендеринга.
|
|
1010
|
-
- _Примечание_: Если отключено, все локали будут загружены одновременно, даже если они не используются.
|
|
1011
|
-
- _Примечание_: Эта опция зависит от плагинов `@intlayer/babel` и `@intlayer/swc`.
|
|
1012
|
-
- _Примечание_: Убедитесь, что все ключи объявлены статически в вызовах `useIntlayer`, например `useIntlayer('navbar')`.
|
|
1013
|
-
- _Примечание_: Эта опция будет игнорироваться, если `optimize` отключен.
|
|
1014
|
-
- _Примечание_: Если установлено значение "live", только словари, содержащие удалённый контент и помеченные флагом "live", будут преобразованы в режим live. Остальные будут импортироваться динамически в режиме "dynamic" для оптимизации количества запросов и производительности загрузки.
|
|
1015
|
-
- _Примечание_: Режим live использует API живой синхронизации для получения словарей. Если вызов API не удаётся, словари будут импортированы динамически в режиме "dynamic".
|
|
1016
|
-
- _Примечание_: Эта опция не повлияет на функции `getIntlayer`, `getDictionary`, `useDictionary`, `useDictionaryAsync` и `useDictionaryDynamic`.
|
|
1017
|
-
|
|
1018
1025
|
- **outputFormat**:
|
|
1019
1026
|
- _Тип_: `'esm' | 'cjs'`
|
|
1020
1027
|
- _По умолчанию_: `'esm'`
|
|
@@ -1048,7 +1055,7 @@ Intlayer поддерживает несколько провайдеров ИИ
|
|
|
1048
1055
|
|
|
1049
1056
|
- **dictionaryKeyPrefix**:
|
|
1050
1057
|
- _Тип_: `string`
|
|
1051
|
-
- _По умолчанию_: `'
|
|
1058
|
+
- _По умолчанию_: `''`
|
|
1052
1059
|
- _Описание_: Префикс для извлеченных ключей словаря.
|
|
1053
1060
|
- _Пример_: `'my-key-'`
|
|
1054
1061
|
- _Примечание_: При извлечении словарей ключ генерируется на основе имени файла. Этот префикс добавляется к сгенерированному ключу для предотвращения конфликтов.
|
|
@@ -1072,24 +1079,28 @@ Intlayer поддерживает несколько провайдеров ИИ
|
|
|
1072
1079
|
- _Описание_: Шаблоны, определяющие, какие файлы должны быть исключены во время оптимизации.
|
|
1073
1080
|
- _Пример_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1074
1081
|
|
|
1075
|
-
- **outputDir**:
|
|
1076
|
-
- _Тип_: `string`
|
|
1077
|
-
- _По умолчанию_: `'compiler'`
|
|
1078
|
-
- _Описание_: Каталог, в котором будут храниться извлеченные словари, относительно базового пути вашего проекта.
|
|
1079
|
-
|
|
1080
1082
|
- **output**:
|
|
1081
1083
|
- _Тип_: `FilePathPattern`
|
|
1082
|
-
- _По умолчанию_: `
|
|
1083
|
-
- _Описание_: Определяет путь к выходным файлам. Заменяет `outputDir`. Поддерживает динамические
|
|
1084
|
-
- _Примечание_:
|
|
1085
|
-
- _
|
|
1084
|
+
- _По умолчанию_: `undefined`
|
|
1085
|
+
- _Описание_: Определяет путь к выходным файлам. Заменяет `outputDir`. Поддерживает динамические переменные через шаблоны строк или функцию. Поддерживаемые переменные: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}` и `{{componentDirPath}}`.
|
|
1086
|
+
- _Примечание_: Пути `./` разрешаются относительно каталога компонента. Пути `/` разрешаются относительно корня проекта (`baseDir`).
|
|
1087
|
+
- _Примечание_: Включение переменной `{{locale}}` в путь приведет к генерации отдельных словарей для каждой локали.
|
|
1088
|
+
- _Пример_:
|
|
1089
|
+
- **Мультиязычные файлы рядом с компонентом**:
|
|
1090
|
+
- Строка: `'./{{fileName}}{{extension}}'`
|
|
1091
|
+
- Функция: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1092
|
+
|
|
1093
|
+
- **Централизованный JSON по локалям**:
|
|
1094
|
+
- Строка: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1095
|
+
- Функция: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1086
1096
|
|
|
1087
1097
|
- **noMetadata**:
|
|
1088
1098
|
- _Тип_: `boolean`
|
|
1089
1099
|
- _По умолчанию_: `false`
|
|
1090
|
-
- _Описание_: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого).
|
|
1100
|
+
- _Описание_: Указывает, должны ли метаданные сохраняться в файле. Если true, компилятор не будет сохранять метаданные словарей (ключ, оболочка содержимого). Полезно для вывода JSON i18next или ICU MessageFormat для каждой локали.
|
|
1091
1101
|
- _Примечание_: Полезно при использовании с плагином `loadJSON`.
|
|
1092
|
-
- _Пример_:
|
|
1102
|
+
- _Пример_:
|
|
1103
|
+
Если `true`:
|
|
1093
1104
|
```json
|
|
1094
1105
|
{
|
|
1095
1106
|
"key": "value"
|
|
@@ -344,8 +344,8 @@ Intlayer использует расширение модулей (module augmen
|
|
|
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 augmen
|
|
|
400
400
|
|
|
401
401
|
Для этого вы можете добавить следующие инструкции в ваш файл `.gitignore`:
|
|
402
402
|
|
|
403
|
-
```
|
|
404
|
-
#
|
|
403
|
+
```bash
|
|
404
|
+
# Игнорировать файлы, созданные Intlayer
|
|
405
405
|
.intlayer
|
|
406
406
|
```
|
|
407
407
|
|
|
@@ -218,8 +218,8 @@ Intlayer использует расширение модулей, чтобы п
|
|
|
218
218
|
|
|
219
219
|
Для этого вы можете добавить следующие инструкции в ваш файл `.gitignore`:
|
|
220
220
|
|
|
221
|
-
```
|
|
222
|
-
#
|
|
221
|
+
```bash
|
|
222
|
+
# Игнорировать файлы, сгенерированные Intlayer
|
|
223
223
|
.intlayer
|
|
224
224
|
```
|
|
225
225
|
|
|
@@ -504,8 +504,8 @@ Intlayer генерирует определения типов в скрыто
|
|
|
504
504
|
|
|
505
505
|
Чтобы избежать коммита автоматически сгенерированных файлов Intlayer, добавьте следующее в ваш `.gitignore`:
|
|
506
506
|
|
|
507
|
-
```
|
|
508
|
-
#
|
|
507
|
+
```bash
|
|
508
|
+
# Игнорировать файлы, сгенерированные Intlayer
|
|
509
509
|
.intlayer
|
|
510
510
|
```
|
|
511
511
|
|
|
@@ -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 augmen
|
|
|
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/ru/compiler.md) / [экстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/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/ru/intlayer_visual_editor.md) или экстернализировать ваш контент с помощью [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/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. Следуйте документации для интернационализации (i18n) и перевода вашего приложения с помощью ИИ.
|
|
6
6
|
keywords:
|
|
@@ -501,6 +501,179 @@ Intlayer использует расширение модулей (module augmen
|
|
|
501
501
|
|
|
502
502
|
Для получения подробной информации об использовании расширения см. [документацию расширения Intlayer для VS Code](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/ru/compiler.md) / [экстрактор](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/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/ru/intlayer_visual_editor.md) или вынести свой контент во внешнюю среду с помощью [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ru/intlayer_CMS.md).
|