@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + Preact i18n - Cách dịch ứng dụng Preact năm 2026
|
|
5
5
|
description: Khám phá cách làm cho trang web Vite và Preact của bạn đa ngôn ngữ. Theo dõi tài liệu để quốc tế hóa (i18n) và dịch nó.
|
|
6
6
|
keywords:
|
|
@@ -1342,8 +1342,8 @@ Bạn nên bỏ qua các tệp do Intlayer tạo ra. Điều này cho phép bạ
|
|
|
1342
1342
|
|
|
1343
1343
|
Để làm điều này, bạn có thể thêm các hướng dẫn sau vào tệp `.gitignore` của mình:
|
|
1344
1344
|
|
|
1345
|
-
```
|
|
1346
|
-
#
|
|
1345
|
+
```bash
|
|
1346
|
+
# Bỏ qua các tệp do Intlayer tạo ra
|
|
1347
1347
|
.intlayer
|
|
1348
1348
|
```
|
|
1349
1349
|
|
|
@@ -1364,6 +1364,162 @@ Tiện ích mở rộng này cung cấp:
|
|
|
1364
1364
|
|
|
1365
1365
|
---
|
|
1366
1366
|
|
|
1367
|
+
### (Tùy chọn) Bước 1 : Trích xuất nội dung các thành phần của bạn
|
|
1368
|
+
|
|
1369
|
+
Nếu bạn có một cơ sở mã hiện có, việc chuyển đổi hàng nghìn tệp có thể tốn nhiều thời gian.
|
|
1370
|
+
|
|
1371
|
+
Để đơn giản hóa quy trình này, Intlayer đề xuất một [trình biên dịch](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compiler.md) / [trình trích xuất](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/extract.md) để chuyển đổi các thành phần của bạn và trích xuất nội dung.
|
|
1372
|
+
|
|
1373
|
+
Để thiết lập, bạn có thể thêm phần `compiler` vào tệp `intlayer.config.ts` của mình:
|
|
1374
|
+
|
|
1375
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1376
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1377
|
+
|
|
1378
|
+
const config: IntlayerConfig = {
|
|
1379
|
+
// ... Phần còn lại của cấu hình
|
|
1380
|
+
compiler: {
|
|
1381
|
+
/**
|
|
1382
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
1383
|
+
*/
|
|
1384
|
+
enabled: true,
|
|
1385
|
+
|
|
1386
|
+
/**
|
|
1387
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
1388
|
+
*/
|
|
1389
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1390
|
+
|
|
1391
|
+
/**
|
|
1392
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
1393
|
+
*/
|
|
1394
|
+
saveComponents: false,
|
|
1395
|
+
|
|
1396
|
+
/**
|
|
1397
|
+
* Tiền tố khóa từ điển
|
|
1398
|
+
*/
|
|
1399
|
+
dictionaryKeyPrefix: "",
|
|
1400
|
+
},
|
|
1401
|
+
};
|
|
1402
|
+
|
|
1403
|
+
export default config;
|
|
1404
|
+
```
|
|
1405
|
+
|
|
1406
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1407
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1408
|
+
const config = {
|
|
1409
|
+
// ... Phần còn lại của cấu hình
|
|
1410
|
+
compiler: {
|
|
1411
|
+
/**
|
|
1412
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
1413
|
+
*/
|
|
1414
|
+
enabled: true,
|
|
1415
|
+
|
|
1416
|
+
/**
|
|
1417
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
1418
|
+
*/
|
|
1419
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1420
|
+
|
|
1421
|
+
/**
|
|
1422
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
1423
|
+
*/
|
|
1424
|
+
saveComponents: false,
|
|
1425
|
+
|
|
1426
|
+
/**
|
|
1427
|
+
* Tiền tố khóa từ điển
|
|
1428
|
+
*/
|
|
1429
|
+
dictionaryKeyPrefix: "",
|
|
1430
|
+
},
|
|
1431
|
+
};
|
|
1432
|
+
|
|
1433
|
+
export default config;
|
|
1434
|
+
```
|
|
1435
|
+
|
|
1436
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1437
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1438
|
+
const config = {
|
|
1439
|
+
// ... Phần còn lại của cấu hình
|
|
1440
|
+
compiler: {
|
|
1441
|
+
/**
|
|
1442
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
1443
|
+
*/
|
|
1444
|
+
enabled: true,
|
|
1445
|
+
|
|
1446
|
+
/**
|
|
1447
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
1448
|
+
*/
|
|
1449
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1450
|
+
|
|
1451
|
+
/**
|
|
1452
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
1453
|
+
*/
|
|
1454
|
+
saveComponents: false,
|
|
1455
|
+
|
|
1456
|
+
/**
|
|
1457
|
+
* Tiền tố khóa từ điển
|
|
1458
|
+
*/
|
|
1459
|
+
dictionaryKeyPrefix: "",
|
|
1460
|
+
},
|
|
1461
|
+
};
|
|
1462
|
+
|
|
1463
|
+
module.exports = config;
|
|
1464
|
+
```
|
|
1465
|
+
|
|
1466
|
+
<Tabs>
|
|
1467
|
+
<Tab value='Lệnh trích xuất'>
|
|
1468
|
+
|
|
1469
|
+
Chạy trình trích xuất để chuyển đổi các thành phần và trích xuất nội dung
|
|
1470
|
+
|
|
1471
|
+
```bash packageManager="npm"
|
|
1472
|
+
npx intlayer extract
|
|
1473
|
+
```
|
|
1474
|
+
|
|
1475
|
+
```bash packageManager="pnpm"
|
|
1476
|
+
pnpm intlayer extract
|
|
1477
|
+
```
|
|
1478
|
+
|
|
1479
|
+
```bash packageManager="yarn"
|
|
1480
|
+
yarn intlayer extract
|
|
1481
|
+
```
|
|
1482
|
+
|
|
1483
|
+
```bash packageManager="bun"
|
|
1484
|
+
bunx intlayer extract
|
|
1485
|
+
```
|
|
1486
|
+
|
|
1487
|
+
</Tab>
|
|
1488
|
+
<Tab value='Trình biên dịch Babel'>
|
|
1489
|
+
|
|
1490
|
+
Cập nhật `vite.config.ts` của bạn để bao gồm plugin `intlayerCompiler`:
|
|
1491
|
+
|
|
1492
|
+
```ts fileName="vite.config.ts"
|
|
1493
|
+
import { defineConfig } from "vite";
|
|
1494
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
1495
|
+
|
|
1496
|
+
export default defineConfig({
|
|
1497
|
+
plugins: [
|
|
1498
|
+
intlayer(),
|
|
1499
|
+
intlayerCompiler(), // Thêm plugin trình biên dịch
|
|
1500
|
+
],
|
|
1501
|
+
});
|
|
1502
|
+
```
|
|
1503
|
+
|
|
1504
|
+
```bash packageManager="npm"
|
|
1505
|
+
npm run build # Hoặc npm run dev
|
|
1506
|
+
```
|
|
1507
|
+
|
|
1508
|
+
```bash packageManager="pnpm"
|
|
1509
|
+
pnpm run build # Or pnpm run dev
|
|
1510
|
+
```
|
|
1511
|
+
|
|
1512
|
+
```bash packageManager="yarn"
|
|
1513
|
+
yarn build # Or yarn dev
|
|
1514
|
+
```
|
|
1515
|
+
|
|
1516
|
+
```bash packageManager="bun"
|
|
1517
|
+
bun run build # Or bun run dev
|
|
1518
|
+
```
|
|
1519
|
+
|
|
1520
|
+
</Tab>
|
|
1521
|
+
</Tabs>
|
|
1522
|
+
|
|
1367
1523
|
### Đi xa hơn
|
|
1368
1524
|
|
|
1369
1525
|
Để đi xa hơn, bạn có thể triển khai [trình chỉnh sửa trực quan](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_visual_editor.md) hoặc bên ngoài hóa nội dung của bạn bằng [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_CMS.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-03-07
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + React i18n - Cách dịch ứng dụng React năm 2026
|
|
5
5
|
description: Tìm hiểu cách thêm quốc tế hóa (i18n) vào ứng dụng Vite và React của bạn bằng cách sử dụng Intlayer. Theo dõi hướng dẫn này để làm cho ứng dụng của bạn đa ngôn ngữ.
|
|
6
6
|
keywords:
|
|
@@ -1391,8 +1391,8 @@ Khuyến nghị bỏ qua các tệp được tạo bởi Intlayer. Điều này
|
|
|
1391
1391
|
|
|
1392
1392
|
Để làm điều này, bạn có thể thêm các chỉ dẫn sau vào tệp `.gitignore` của bạn:
|
|
1393
1393
|
|
|
1394
|
-
```
|
|
1395
|
-
#
|
|
1394
|
+
```bash
|
|
1395
|
+
# Bỏ qua các tệp được tạo bởi Intlayer
|
|
1396
1396
|
.intlayer
|
|
1397
1397
|
```
|
|
1398
1398
|
|
|
@@ -1413,6 +1413,162 @@ Tiện ích mở rộng này cung cấp:
|
|
|
1413
1413
|
|
|
1414
1414
|
---
|
|
1415
1415
|
|
|
1416
|
+
### (Tùy chọn) Bước 1 : Trích xuất nội dung các thành phần của bạn
|
|
1417
|
+
|
|
1418
|
+
Nếu bạn có một cơ sở mã hiện có, việc chuyển đổi hàng nghìn tệp có thể tốn nhiều thời gian.
|
|
1419
|
+
|
|
1420
|
+
Để đơn giản hóa quy trình này, Intlayer đề xuất một [trình biên dịch](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compiler.md) / [trình trích xuất](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/extract.md) để chuyển đổi các thành phần của bạn và trích xuất nội dung.
|
|
1421
|
+
|
|
1422
|
+
Để thiết lập, bạn có thể thêm phần `compiler` vào tệp `intlayer.config.ts` của mình:
|
|
1423
|
+
|
|
1424
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1425
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1426
|
+
|
|
1427
|
+
const config: IntlayerConfig = {
|
|
1428
|
+
// ... Phần còn lại của cấu hình
|
|
1429
|
+
compiler: {
|
|
1430
|
+
/**
|
|
1431
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
1432
|
+
*/
|
|
1433
|
+
enabled: true,
|
|
1434
|
+
|
|
1435
|
+
/**
|
|
1436
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
1437
|
+
*/
|
|
1438
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1439
|
+
|
|
1440
|
+
/**
|
|
1441
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
1442
|
+
*/
|
|
1443
|
+
saveComponents: false,
|
|
1444
|
+
|
|
1445
|
+
/**
|
|
1446
|
+
* Tiền tố khóa từ điển
|
|
1447
|
+
*/
|
|
1448
|
+
dictionaryKeyPrefix: "",
|
|
1449
|
+
},
|
|
1450
|
+
};
|
|
1451
|
+
|
|
1452
|
+
export default config;
|
|
1453
|
+
```
|
|
1454
|
+
|
|
1455
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1456
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1457
|
+
const config = {
|
|
1458
|
+
// ... Phần còn lại của cấu hình
|
|
1459
|
+
compiler: {
|
|
1460
|
+
/**
|
|
1461
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
1462
|
+
*/
|
|
1463
|
+
enabled: true,
|
|
1464
|
+
|
|
1465
|
+
/**
|
|
1466
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
1467
|
+
*/
|
|
1468
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1469
|
+
|
|
1470
|
+
/**
|
|
1471
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
1472
|
+
*/
|
|
1473
|
+
saveComponents: false,
|
|
1474
|
+
|
|
1475
|
+
/**
|
|
1476
|
+
* Tiền tố khóa từ điển
|
|
1477
|
+
*/
|
|
1478
|
+
dictionaryKeyPrefix: "",
|
|
1479
|
+
},
|
|
1480
|
+
};
|
|
1481
|
+
|
|
1482
|
+
export default config;
|
|
1483
|
+
```
|
|
1484
|
+
|
|
1485
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1486
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1487
|
+
const config = {
|
|
1488
|
+
// ... Phần còn lại của cấu hình
|
|
1489
|
+
compiler: {
|
|
1490
|
+
/**
|
|
1491
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
1492
|
+
*/
|
|
1493
|
+
enabled: true,
|
|
1494
|
+
|
|
1495
|
+
/**
|
|
1496
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
1497
|
+
*/
|
|
1498
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1499
|
+
|
|
1500
|
+
/**
|
|
1501
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
1502
|
+
*/
|
|
1503
|
+
saveComponents: false,
|
|
1504
|
+
|
|
1505
|
+
/**
|
|
1506
|
+
* Tiền tố khóa từ điển
|
|
1507
|
+
*/
|
|
1508
|
+
dictionaryKeyPrefix: "",
|
|
1509
|
+
},
|
|
1510
|
+
};
|
|
1511
|
+
|
|
1512
|
+
module.exports = config;
|
|
1513
|
+
```
|
|
1514
|
+
|
|
1515
|
+
<Tabs>
|
|
1516
|
+
<Tab value='Lệnh trích xuất'>
|
|
1517
|
+
|
|
1518
|
+
Chạy trình trích xuất để chuyển đổi các thành phần và trích xuất nội dung
|
|
1519
|
+
|
|
1520
|
+
```bash packageManager="npm"
|
|
1521
|
+
npx intlayer extract
|
|
1522
|
+
```
|
|
1523
|
+
|
|
1524
|
+
```bash packageManager="pnpm"
|
|
1525
|
+
pnpm intlayer extract
|
|
1526
|
+
```
|
|
1527
|
+
|
|
1528
|
+
```bash packageManager="yarn"
|
|
1529
|
+
yarn intlayer extract
|
|
1530
|
+
```
|
|
1531
|
+
|
|
1532
|
+
```bash packageManager="bun"
|
|
1533
|
+
bunx intlayer extract
|
|
1534
|
+
```
|
|
1535
|
+
|
|
1536
|
+
</Tab>
|
|
1537
|
+
<Tab value='Trình biên dịch Babel'>
|
|
1538
|
+
|
|
1539
|
+
Cập nhật `vite.config.ts` của bạn để bao gồm plugin `intlayerCompiler`:
|
|
1540
|
+
|
|
1541
|
+
```ts fileName="vite.config.ts"
|
|
1542
|
+
import { defineConfig } from "vite";
|
|
1543
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
1544
|
+
|
|
1545
|
+
export default defineConfig({
|
|
1546
|
+
plugins: [
|
|
1547
|
+
intlayer(),
|
|
1548
|
+
intlayerCompiler(), // Thêm plugin trình biên dịch
|
|
1549
|
+
],
|
|
1550
|
+
});
|
|
1551
|
+
```
|
|
1552
|
+
|
|
1553
|
+
```bash packageManager="npm"
|
|
1554
|
+
npm run build # Hoặc npm run dev
|
|
1555
|
+
```
|
|
1556
|
+
|
|
1557
|
+
```bash packageManager="pnpm"
|
|
1558
|
+
pnpm run build # Or pnpm run dev
|
|
1559
|
+
```
|
|
1560
|
+
|
|
1561
|
+
```bash packageManager="yarn"
|
|
1562
|
+
yarn build # Or yarn dev
|
|
1563
|
+
```
|
|
1564
|
+
|
|
1565
|
+
```bash packageManager="bun"
|
|
1566
|
+
bun run build # Or bun run dev
|
|
1567
|
+
```
|
|
1568
|
+
|
|
1569
|
+
</Tab>
|
|
1570
|
+
</Tabs>
|
|
1571
|
+
|
|
1416
1572
|
### Tiến xa hơn
|
|
1417
1573
|
|
|
1418
1574
|
Để tiến xa hơn, bạn có thể triển khai [trình soạn thảo trực quan](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_visual_editor.md) hoặc tách nội dung của bạn ra ngoài bằng cách sử dụng [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/intlayer_CMS.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-04-18
|
|
3
|
-
updatedAt:
|
|
3
|
+
updatedAt: 2026-03-12
|
|
4
4
|
title: Vite + Solid i18n - Cách dịch ứng dụng Solid năm 2026
|
|
5
5
|
description: Khám phá cách làm cho trang web Vite và Solid của bạn đa ngôn ngữ. Theo dõi tài liệu để quốc tế hóa (i18n) và dịch nó.
|
|
6
6
|
keywords:
|
|
@@ -554,8 +554,8 @@ Khuyến nghị bỏ qua các file được tạo bởi Intlayer. Điều này g
|
|
|
554
554
|
|
|
555
555
|
Để làm điều này, bạn có thể thêm các hướng dẫn sau vào file `.gitignore` của bạn:
|
|
556
556
|
|
|
557
|
-
```
|
|
558
|
-
#
|
|
557
|
+
```bash
|
|
558
|
+
# Bỏ qua các file được tạo bởi Intlayer
|
|
559
559
|
.intlayer
|
|
560
560
|
```
|
|
561
561
|
|
|
@@ -576,6 +576,162 @@ Tiện ích mở rộng này cung cấp:
|
|
|
576
576
|
|
|
577
577
|
---
|
|
578
578
|
|
|
579
|
+
### (Tùy chọn) Bước 1 : Trích xuất nội dung các thành phần của bạn
|
|
580
|
+
|
|
581
|
+
Nếu bạn có một cơ sở mã hiện có, việc chuyển đổi hàng nghìn tệp có thể tốn nhiều thời gian.
|
|
582
|
+
|
|
583
|
+
Để đơn giản hóa quy trình này, Intlayer đề xuất một [trình biên dịch](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/compiler.md) / [trình trích xuất](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/cli/extract.md) để chuyển đổi các thành phần của bạn và trích xuất nội dung.
|
|
584
|
+
|
|
585
|
+
Để thiết lập, bạn có thể thêm phần `compiler` vào tệp `intlayer.config.ts` của mình:
|
|
586
|
+
|
|
587
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
588
|
+
import { type IntlayerConfig } from "intlayer";
|
|
589
|
+
|
|
590
|
+
const config: IntlayerConfig = {
|
|
591
|
+
// ... Phần còn lại của cấu hình
|
|
592
|
+
compiler: {
|
|
593
|
+
/**
|
|
594
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
595
|
+
*/
|
|
596
|
+
enabled: true,
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
600
|
+
*/
|
|
601
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
602
|
+
|
|
603
|
+
/**
|
|
604
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
605
|
+
*/
|
|
606
|
+
saveComponents: false,
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* Tiền tố khóa từ điển
|
|
610
|
+
*/
|
|
611
|
+
dictionaryKeyPrefix: "",
|
|
612
|
+
},
|
|
613
|
+
};
|
|
614
|
+
|
|
615
|
+
export default config;
|
|
616
|
+
```
|
|
617
|
+
|
|
618
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
619
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
620
|
+
const config = {
|
|
621
|
+
// ... Phần còn lại của cấu hình
|
|
622
|
+
compiler: {
|
|
623
|
+
/**
|
|
624
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
625
|
+
*/
|
|
626
|
+
enabled: true,
|
|
627
|
+
|
|
628
|
+
/**
|
|
629
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
630
|
+
*/
|
|
631
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
635
|
+
*/
|
|
636
|
+
saveComponents: false,
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* Tiền tố khóa từ điển
|
|
640
|
+
*/
|
|
641
|
+
dictionaryKeyPrefix: "",
|
|
642
|
+
},
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
export default config;
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
649
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
650
|
+
const config = {
|
|
651
|
+
// ... Phần còn lại của cấu hình
|
|
652
|
+
compiler: {
|
|
653
|
+
/**
|
|
654
|
+
* Cho biết trình biên dịch có nên được bật hay không.
|
|
655
|
+
*/
|
|
656
|
+
enabled: true,
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* Xác định đường dẫn các tệp đầu ra
|
|
660
|
+
*/
|
|
661
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
662
|
+
|
|
663
|
+
/**
|
|
664
|
+
* Cho biết các thành phần có nên được lưu sau khi chuyển đổi hay không. Bằng cách đó, trình biên dịch có thể được chạy chỉ một lần để chuyển đổi ứng dụng, sau đó có thể được gỡ bỏ.
|
|
665
|
+
*/
|
|
666
|
+
saveComponents: false,
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* Tiền tố khóa từ điển
|
|
670
|
+
*/
|
|
671
|
+
dictionaryKeyPrefix: "",
|
|
672
|
+
},
|
|
673
|
+
};
|
|
674
|
+
|
|
675
|
+
module.exports = config;
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
<Tabs>
|
|
679
|
+
<Tab value='Lệnh trích xuất'>
|
|
680
|
+
|
|
681
|
+
Chạy trình trích xuất để chuyển đổi các thành phần và trích xuất nội dung
|
|
682
|
+
|
|
683
|
+
```bash packageManager="npm"
|
|
684
|
+
npx intlayer extract
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
```bash packageManager="pnpm"
|
|
688
|
+
pnpm intlayer extract
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
```bash packageManager="yarn"
|
|
692
|
+
yarn intlayer extract
|
|
693
|
+
```
|
|
694
|
+
|
|
695
|
+
```bash packageManager="bun"
|
|
696
|
+
bunx intlayer extract
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
</Tab>
|
|
700
|
+
<Tab value='Trình biên dịch Babel'>
|
|
701
|
+
|
|
702
|
+
Cập nhật `vite.config.ts` của bạn để bao gồm plugin `intlayerCompiler`:
|
|
703
|
+
|
|
704
|
+
```ts fileName="vite.config.ts"
|
|
705
|
+
import { defineConfig } from "vite";
|
|
706
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
707
|
+
|
|
708
|
+
export default defineConfig({
|
|
709
|
+
plugins: [
|
|
710
|
+
intlayer(),
|
|
711
|
+
intlayerCompiler(), // Thêm plugin trình biên dịch
|
|
712
|
+
],
|
|
713
|
+
});
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
```bash packageManager="npm"
|
|
717
|
+
npm run build # Hoặc npm run dev
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
```bash packageManager="pnpm"
|
|
721
|
+
pnpm run build # Or pnpm run dev
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
```bash packageManager="yarn"
|
|
725
|
+
yarn build # Or yarn dev
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
```bash packageManager="bun"
|
|
729
|
+
bun run build # Or bun run dev
|
|
730
|
+
```
|
|
731
|
+
|
|
732
|
+
</Tab>
|
|
733
|
+
</Tabs>
|
|
734
|
+
|
|
579
735
|
### Tiến xa hơn
|
|
580
736
|
|
|
581
737
|
Để tiến xa hơn, bạn có thể triển khai [trình soạn thảo trực quan](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_visual_editor.md) hoặc tách nội dung của bạn ra bên ngoài bằng cách sử dụng [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/vi/intlayer_CMS.md).
|