@intlayer/docs 8.3.0-canary.4 → 8.3.1
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/docs/ar/compiler.md +84 -49
- package/docs/ar/configuration.md +80 -37
- 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_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 +174 -1
- package/docs/ar/intlayer_with_vite+react.md +174 -1
- package/docs/ar/intlayer_with_vite+solid.md +174 -1
- package/docs/ar/intlayer_with_vite+svelte.md +174 -1
- package/docs/ar/intlayer_with_vite+vue.md +174 -1
- package/docs/de/compiler.md +83 -48
- package/docs/de/configuration.md +434 -212
- 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_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 +157 -1
- package/docs/de/intlayer_with_vite+react.md +157 -1
- package/docs/de/intlayer_with_vite+solid.md +159 -3
- package/docs/de/intlayer_with_vite+svelte.md +157 -1
- package/docs/de/intlayer_with_vite+vue.md +157 -1
- package/docs/en/compiler.md +60 -33
- package/docs/en/configuration.md +80 -57
- 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_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 +159 -0
- package/docs/en/intlayer_with_vite+react.md +159 -0
- package/docs/en/intlayer_with_vite+solid.md +148 -27
- package/docs/en/intlayer_with_vite+svelte.md +159 -0
- package/docs/en/intlayer_with_vite+vue.md +142 -41
- package/docs/en-GB/compiler.md +66 -34
- package/docs/en-GB/configuration.md +78 -36
- package/docs/es/compiler.md +83 -48
- package/docs/es/configuration.md +429 -206
- package/docs/es/intlayer_with_adonisjs.md +1 -1
- 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_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_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 +162 -6
- package/docs/es/intlayer_with_vite+react.md +160 -4
- package/docs/es/intlayer_with_vite+solid.md +163 -7
- package/docs/es/intlayer_with_vite+svelte.md +157 -1
- package/docs/es/intlayer_with_vite+vue.md +165 -9
- package/docs/fr/compiler.md +81 -46
- package/docs/fr/configuration.md +355 -134
- package/docs/fr/intlayer_with_adonisjs.md +1 -1
- 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_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_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 +164 -8
- package/docs/fr/intlayer_with_vite+react.md +162 -6
- package/docs/fr/intlayer_with_vite+solid.md +163 -7
- package/docs/fr/intlayer_with_vite+svelte.md +157 -1
- package/docs/fr/intlayer_with_vite+vue.md +164 -8
- package/docs/hi/compiler.md +81 -46
- package/docs/hi/configuration.md +87 -44
- 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_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 +157 -1
- package/docs/hi/intlayer_with_vite+react.md +157 -1
- package/docs/hi/intlayer_with_vite+solid.md +157 -1
- package/docs/hi/intlayer_with_vite+svelte.md +157 -1
- package/docs/hi/intlayer_with_vite+vue.md +157 -1
- package/docs/id/compiler.md +84 -51
- package/docs/id/configuration.md +83 -45
- 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_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 +157 -1
- package/docs/id/intlayer_with_vite+react.md +157 -1
- package/docs/id/intlayer_with_vite+solid.md +157 -1
- package/docs/id/intlayer_with_vite+svelte.md +157 -1
- package/docs/id/intlayer_with_vite+vue.md +157 -1
- package/docs/it/compiler.md +81 -46
- package/docs/it/configuration.md +426 -204
- 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_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 +157 -1
- package/docs/it/intlayer_with_vite+react.md +157 -1
- package/docs/it/intlayer_with_vite+solid.md +159 -3
- package/docs/it/intlayer_with_vite+svelte.md +157 -1
- package/docs/it/intlayer_with_vite+vue.md +157 -1
- package/docs/ja/compiler.md +94 -58
- package/docs/ja/configuration.md +88 -45
- 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_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 +159 -3
- package/docs/ja/intlayer_with_vite+svelte.md +157 -1
- package/docs/ja/intlayer_with_vite+vue.md +157 -1
- package/docs/ko/compiler.md +88 -52
- package/docs/ko/configuration.md +87 -44
- 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_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 +157 -1
- package/docs/ko/intlayer_with_vite+react.md +157 -1
- package/docs/ko/intlayer_with_vite+solid.md +159 -3
- package/docs/ko/intlayer_with_vite+svelte.md +157 -1
- package/docs/ko/intlayer_with_vite+vue.md +157 -1
- package/docs/pl/compiler.md +84 -51
- package/docs/pl/configuration.md +83 -37
- 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_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 +157 -1
- package/docs/pl/intlayer_with_vite+react.md +157 -1
- package/docs/pl/intlayer_with_vite+solid.md +157 -1
- package/docs/pl/intlayer_with_vite+svelte.md +157 -1
- package/docs/pl/intlayer_with_vite+vue.md +157 -1
- package/docs/pt/compiler.md +81 -46
- package/docs/pt/configuration.md +404 -194
- 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_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 +157 -1
- package/docs/pt/intlayer_with_vite+react.md +157 -1
- package/docs/pt/intlayer_with_vite+solid.md +157 -1
- package/docs/pt/intlayer_with_vite+svelte.md +157 -1
- package/docs/pt/intlayer_with_vite+vue.md +157 -1
- package/docs/ru/compiler.md +90 -57
- package/docs/ru/configuration.md +76 -46
- 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_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 +157 -1
- package/docs/ru/intlayer_with_vite+react.md +157 -1
- package/docs/ru/intlayer_with_vite+solid.md +157 -1
- package/docs/ru/intlayer_with_vite+svelte.md +157 -1
- package/docs/ru/intlayer_with_vite+vue.md +157 -1
- package/docs/tr/compiler.md +85 -52
- package/docs/tr/configuration.md +83 -40
- 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_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 +157 -1
- package/docs/tr/intlayer_with_vite+react.md +157 -1
- package/docs/tr/intlayer_with_vite+solid.md +157 -1
- package/docs/tr/intlayer_with_vite+svelte.md +157 -1
- package/docs/tr/intlayer_with_vite+vue.md +157 -1
- package/docs/uk/compiler.md +96 -61
- package/docs/uk/configuration.md +83 -37
- 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_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 +157 -1
- package/docs/uk/intlayer_with_vite+react.md +157 -1
- package/docs/uk/intlayer_with_vite+solid.md +157 -1
- package/docs/uk/intlayer_with_vite+svelte.md +157 -1
- package/docs/uk/intlayer_with_vite+vue.md +157 -1
- package/docs/vi/compiler.md +85 -50
- package/docs/vi/configuration.md +85 -39
- 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_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 +157 -1
- package/docs/vi/intlayer_with_vite+react.md +157 -1
- package/docs/vi/intlayer_with_vite+solid.md +157 -1
- package/docs/vi/intlayer_with_vite+svelte.md +157 -1
- package/docs/vi/intlayer_with_vite+vue.md +157 -1
- package/docs/zh/compiler.md +84 -49
- package/docs/zh/configuration.md +80 -37
- package/docs/zh/intlayer_with_adonisjs.md +1 -1
- 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_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_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 +159 -3
- package/docs/zh/intlayer_with_vite+react.md +157 -1
- package/docs/zh/intlayer_with_vite+solid.md +161 -5
- package/docs/zh/intlayer_with_vite+svelte.md +157 -1
- package/docs/zh/intlayer_with_vite+vue.md +158 -2
- package/package.json +6 -6
|
@@ -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 - 如何翻译Solid 应用 2026
|
|
5
5
|
description: 了解如何使您的 Vite 和 Solid 网站支持多语言。按照文档进行国际化(i18n)和翻译。
|
|
6
6
|
keywords:
|
|
@@ -27,7 +27,7 @@ history:
|
|
|
27
27
|
# 使用Intlayer翻译您的Vite and Solid | 国际化(i18n)
|
|
28
28
|
|
|
29
29
|
<Tabs defaultTab="video">
|
|
30
|
-
<Tab label="
|
|
30
|
+
<Tab label="视频" value="video">
|
|
31
31
|
|
|
32
32
|
<iframe title="The best i18n solution for Vite and Solid? Discover Intlayer" class="m-auto aspect-16/9 w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/dS9L7uJeak4?si=VaKmrYMmXjo3xpk2"/>
|
|
33
33
|
|
|
@@ -37,7 +37,7 @@ history:
|
|
|
37
37
|
<iframe
|
|
38
38
|
src="https://stackblitz.com/github/aymericzip/intlayer-vite-solid-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
39
39
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
40
|
-
title="Demo CodeSandbox -
|
|
40
|
+
title="Demo CodeSandbox - 如何使用 Intlayer 实现应用国际化"
|
|
41
41
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
42
42
|
loading="lazy"
|
|
43
43
|
/>
|
|
@@ -45,7 +45,7 @@ history:
|
|
|
45
45
|
</Tab>
|
|
46
46
|
</Tabs>
|
|
47
47
|
|
|
48
|
-
##
|
|
48
|
+
## 目录
|
|
49
49
|
|
|
50
50
|
<TOC/>
|
|
51
51
|
|
|
@@ -68,7 +68,7 @@ history:
|
|
|
68
68
|
|
|
69
69
|
## 在 Vite 和 Solid 应用中设置 Intlayer 的分步指南
|
|
70
70
|
|
|
71
|
-
##
|
|
71
|
+
## 目录
|
|
72
72
|
|
|
73
73
|
<TOC/>
|
|
74
74
|
|
|
@@ -576,6 +576,162 @@ const MyComponent = () => {
|
|
|
576
576
|
|
|
577
577
|
---
|
|
578
578
|
|
|
579
|
+
### (可选) 步骤 1 : 提取组件内容
|
|
580
|
+
|
|
581
|
+
如果您有现有的代码库,转换数千个文件可能会非常耗时。
|
|
582
|
+
|
|
583
|
+
为了简化此过程,Intlayer 提出了 [编译器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/compiler.md) / [提取器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/extract.md) 来转换您的组件并提取内容。
|
|
584
|
+
|
|
585
|
+
要进行设置,您可以在 `intlayer.config.ts` 文件中添加 `compiler` 部分:
|
|
586
|
+
|
|
587
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
588
|
+
import { type IntlayerConfig } from "intlayer";
|
|
589
|
+
|
|
590
|
+
const config: IntlayerConfig = {
|
|
591
|
+
// ... 您的其他配置
|
|
592
|
+
compiler: {
|
|
593
|
+
/**
|
|
594
|
+
* 指示是否应启用编译器。
|
|
595
|
+
*/
|
|
596
|
+
enabled: true,
|
|
597
|
+
|
|
598
|
+
/**
|
|
599
|
+
* 定义输出文件路径
|
|
600
|
+
*/
|
|
601
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
602
|
+
|
|
603
|
+
/**
|
|
604
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
605
|
+
*/
|
|
606
|
+
saveComponents: false,
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* 字典键前缀
|
|
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
|
+
// ... 您的其他配置
|
|
622
|
+
compiler: {
|
|
623
|
+
/**
|
|
624
|
+
* 指示是否应启用编译器。
|
|
625
|
+
*/
|
|
626
|
+
enabled: true,
|
|
627
|
+
|
|
628
|
+
/**
|
|
629
|
+
* 定义输出文件路径
|
|
630
|
+
*/
|
|
631
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
635
|
+
*/
|
|
636
|
+
saveComponents: false,
|
|
637
|
+
|
|
638
|
+
/**
|
|
639
|
+
* 字典键前缀
|
|
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
|
+
// ... 您的其他配置
|
|
652
|
+
compiler: {
|
|
653
|
+
/**
|
|
654
|
+
* 指示是否应启用编译器。
|
|
655
|
+
*/
|
|
656
|
+
enabled: true,
|
|
657
|
+
|
|
658
|
+
/**
|
|
659
|
+
* 定义输出文件路径
|
|
660
|
+
*/
|
|
661
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
662
|
+
|
|
663
|
+
/**
|
|
664
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
665
|
+
*/
|
|
666
|
+
saveComponents: false,
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* 字典键前缀
|
|
670
|
+
*/
|
|
671
|
+
dictionaryKeyPrefix: "",
|
|
672
|
+
},
|
|
673
|
+
};
|
|
674
|
+
|
|
675
|
+
module.exports = config;
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
<Tabs>
|
|
679
|
+
<Tab value='提取命令'>
|
|
680
|
+
|
|
681
|
+
运行提取器以转换组件并提取内容
|
|
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='Babel 编译器'>
|
|
701
|
+
|
|
702
|
+
更新您的 `vite.config.ts` 以包含 `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(), // 添加编译器插件
|
|
712
|
+
],
|
|
713
|
+
});
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
```bash packageManager="npm"
|
|
717
|
+
npm run build # 或 npm run dev
|
|
718
|
+
```
|
|
719
|
+
|
|
720
|
+
```bash packageManager="pnpm"
|
|
721
|
+
pnpm run build # 或 pnpm run dev
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
```bash packageManager="yarn"
|
|
725
|
+
yarn build # 或 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
|
### 深入了解
|
|
580
736
|
|
|
581
737
|
要进一步使用,您可以实现[可视化编辑器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_visual_editor.md)或使用[内容管理系统(CMS)](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/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 + Svelte i18n - 如何翻译Svelte 应用 2026
|
|
5
5
|
description: 了解如何使您的 Vite 和 Svelte 网站支持多语言。按照文档进行国际化 (i18n) 和翻译。
|
|
6
6
|
keywords:
|
|
@@ -520,6 +520,162 @@ const changeLocale = (event: Event) => {
|
|
|
520
520
|
|
|
521
521
|
---
|
|
522
522
|
|
|
523
|
+
### (可选) 步骤 1 : 提取组件内容
|
|
524
|
+
|
|
525
|
+
如果您有现有的代码库,转换数千个文件可能会非常耗时。
|
|
526
|
+
|
|
527
|
+
为了简化此过程,Intlayer 提出了 [编译器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/compiler.md) / [提取器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/extract.md) 来转换您的组件并提取内容。
|
|
528
|
+
|
|
529
|
+
要进行设置,您可以在 `intlayer.config.ts` 文件中添加 `compiler` 部分:
|
|
530
|
+
|
|
531
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
532
|
+
import { type IntlayerConfig } from "intlayer";
|
|
533
|
+
|
|
534
|
+
const config: IntlayerConfig = {
|
|
535
|
+
// ... 您的其他配置
|
|
536
|
+
compiler: {
|
|
537
|
+
/**
|
|
538
|
+
* 指示是否应启用编译器。
|
|
539
|
+
*/
|
|
540
|
+
enabled: true,
|
|
541
|
+
|
|
542
|
+
/**
|
|
543
|
+
* 定义输出文件路径
|
|
544
|
+
*/
|
|
545
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
546
|
+
|
|
547
|
+
/**
|
|
548
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
549
|
+
*/
|
|
550
|
+
saveComponents: false,
|
|
551
|
+
|
|
552
|
+
/**
|
|
553
|
+
* 字典键前缀
|
|
554
|
+
*/
|
|
555
|
+
dictionaryKeyPrefix: "",
|
|
556
|
+
},
|
|
557
|
+
};
|
|
558
|
+
|
|
559
|
+
export default config;
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
563
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
564
|
+
const config = {
|
|
565
|
+
// ... 您的其他配置
|
|
566
|
+
compiler: {
|
|
567
|
+
/**
|
|
568
|
+
* 指示是否应启用编译器。
|
|
569
|
+
*/
|
|
570
|
+
enabled: true,
|
|
571
|
+
|
|
572
|
+
/**
|
|
573
|
+
* 定义输出文件路径
|
|
574
|
+
*/
|
|
575
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
576
|
+
|
|
577
|
+
/**
|
|
578
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
579
|
+
*/
|
|
580
|
+
saveComponents: false,
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* 字典键前缀
|
|
584
|
+
*/
|
|
585
|
+
dictionaryKeyPrefix: "",
|
|
586
|
+
},
|
|
587
|
+
};
|
|
588
|
+
|
|
589
|
+
export default config;
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
593
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
594
|
+
const config = {
|
|
595
|
+
// ... 您的其他配置
|
|
596
|
+
compiler: {
|
|
597
|
+
/**
|
|
598
|
+
* 指示是否应启用编译器。
|
|
599
|
+
*/
|
|
600
|
+
enabled: true,
|
|
601
|
+
|
|
602
|
+
/**
|
|
603
|
+
* 定义输出文件路径
|
|
604
|
+
*/
|
|
605
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
606
|
+
|
|
607
|
+
/**
|
|
608
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
609
|
+
*/
|
|
610
|
+
saveComponents: false,
|
|
611
|
+
|
|
612
|
+
/**
|
|
613
|
+
* 字典键前缀
|
|
614
|
+
*/
|
|
615
|
+
dictionaryKeyPrefix: "",
|
|
616
|
+
},
|
|
617
|
+
};
|
|
618
|
+
|
|
619
|
+
module.exports = config;
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
<Tabs>
|
|
623
|
+
<Tab value='提取命令'>
|
|
624
|
+
|
|
625
|
+
运行提取器以转换组件并提取内容
|
|
626
|
+
|
|
627
|
+
```bash packageManager="npm"
|
|
628
|
+
npx intlayer extract
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
```bash packageManager="pnpm"
|
|
632
|
+
pnpm intlayer extract
|
|
633
|
+
```
|
|
634
|
+
|
|
635
|
+
```bash packageManager="yarn"
|
|
636
|
+
yarn intlayer extract
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
```bash packageManager="bun"
|
|
640
|
+
bunx intlayer extract
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
</Tab>
|
|
644
|
+
<Tab value='Babel 编译器'>
|
|
645
|
+
|
|
646
|
+
更新您的 `vite.config.ts` 以包含 `intlayerCompiler` 插件:
|
|
647
|
+
|
|
648
|
+
```ts fileName="vite.config.ts"
|
|
649
|
+
import { defineConfig } from "vite";
|
|
650
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
651
|
+
|
|
652
|
+
export default defineConfig({
|
|
653
|
+
plugins: [
|
|
654
|
+
intlayer(),
|
|
655
|
+
intlayerCompiler(), // 添加编译器插件
|
|
656
|
+
],
|
|
657
|
+
});
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
```bash packageManager="npm"
|
|
661
|
+
npm run build # 或 npm run dev
|
|
662
|
+
```
|
|
663
|
+
|
|
664
|
+
```bash packageManager="pnpm"
|
|
665
|
+
pnpm run build # 或 pnpm run dev
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
```bash packageManager="yarn"
|
|
669
|
+
yarn build # 或 yarn dev
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
```bash packageManager="bun"
|
|
673
|
+
bun run build # Or bun run dev
|
|
674
|
+
```
|
|
675
|
+
|
|
676
|
+
</Tab>
|
|
677
|
+
</Tabs>
|
|
678
|
+
|
|
523
679
|
### 深入了解
|
|
524
680
|
|
|
525
681
|
要进一步提升,您可以实现[可视化编辑器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_visual_editor.md)或使用[CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/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 + Vue i18n - 如何翻译Vue 应用 2026
|
|
5
5
|
description: 了解如何使您的 Vite 和 Vue 网站支持多语言。按照文档进行国际化(i18n)和翻译。
|
|
6
6
|
keywords:
|
|
@@ -55,7 +55,7 @@ history:
|
|
|
55
55
|
<iframe
|
|
56
56
|
src="https://stackblitz.com/github/aymericzip/intlayer-vite-vue-template?embed=1&ctl=1&file=intlayer.config.ts"
|
|
57
57
|
className="m-auto overflow-hidden rounded-lg border-0 max-md:size-full max-md:h-[700px] md:aspect-16/9 md:w-full"
|
|
58
|
-
title="Demo CodeSandbox -
|
|
58
|
+
title="Demo CodeSandbox - 如何使用 Intlayer 实现应用国际化"
|
|
59
59
|
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
|
|
60
60
|
loading="lazy"
|
|
61
61
|
/>
|
|
@@ -1102,6 +1102,162 @@ Intlayer 使用模块增强来利用 TypeScript 的优势,使您的代码库
|
|
|
1102
1102
|
|
|
1103
1103
|
---
|
|
1104
1104
|
|
|
1105
|
+
### (可选) 步骤 1 : 提取组件内容
|
|
1106
|
+
|
|
1107
|
+
如果您有现有的代码库,转换数千个文件可能会非常耗时。
|
|
1108
|
+
|
|
1109
|
+
为了简化此过程,Intlayer 提出了 [编译器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/compiler.md) / [提取器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/extract.md) 来转换您的组件并提取内容。
|
|
1110
|
+
|
|
1111
|
+
要进行设置,您可以在 `intlayer.config.ts` 文件中添加 `compiler` 部分:
|
|
1112
|
+
|
|
1113
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
1114
|
+
import { type IntlayerConfig } from "intlayer";
|
|
1115
|
+
|
|
1116
|
+
const config: IntlayerConfig = {
|
|
1117
|
+
// ... 您的其他配置
|
|
1118
|
+
compiler: {
|
|
1119
|
+
/**
|
|
1120
|
+
* 指示是否应启用编译器。
|
|
1121
|
+
*/
|
|
1122
|
+
enabled: true,
|
|
1123
|
+
|
|
1124
|
+
/**
|
|
1125
|
+
* 定义输出文件路径
|
|
1126
|
+
*/
|
|
1127
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1128
|
+
|
|
1129
|
+
/**
|
|
1130
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
1131
|
+
*/
|
|
1132
|
+
saveComponents: false,
|
|
1133
|
+
|
|
1134
|
+
/**
|
|
1135
|
+
* 字典键前缀
|
|
1136
|
+
*/
|
|
1137
|
+
dictionaryKeyPrefix: "",
|
|
1138
|
+
},
|
|
1139
|
+
};
|
|
1140
|
+
|
|
1141
|
+
export default config;
|
|
1142
|
+
```
|
|
1143
|
+
|
|
1144
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
1145
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1146
|
+
const config = {
|
|
1147
|
+
// ... 您的其他配置
|
|
1148
|
+
compiler: {
|
|
1149
|
+
/**
|
|
1150
|
+
* 指示是否应启用编译器。
|
|
1151
|
+
*/
|
|
1152
|
+
enabled: true,
|
|
1153
|
+
|
|
1154
|
+
/**
|
|
1155
|
+
* 定义输出文件路径
|
|
1156
|
+
*/
|
|
1157
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1158
|
+
|
|
1159
|
+
/**
|
|
1160
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
1161
|
+
*/
|
|
1162
|
+
saveComponents: false,
|
|
1163
|
+
|
|
1164
|
+
/**
|
|
1165
|
+
* 字典键前缀
|
|
1166
|
+
*/
|
|
1167
|
+
dictionaryKeyPrefix: "",
|
|
1168
|
+
},
|
|
1169
|
+
};
|
|
1170
|
+
|
|
1171
|
+
export default config;
|
|
1172
|
+
```
|
|
1173
|
+
|
|
1174
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
1175
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
1176
|
+
const config = {
|
|
1177
|
+
// ... 您的其他配置
|
|
1178
|
+
compiler: {
|
|
1179
|
+
/**
|
|
1180
|
+
* 指示是否应启用编译器。
|
|
1181
|
+
*/
|
|
1182
|
+
enabled: true,
|
|
1183
|
+
|
|
1184
|
+
/**
|
|
1185
|
+
* 定义输出文件路径
|
|
1186
|
+
*/
|
|
1187
|
+
output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
1188
|
+
|
|
1189
|
+
/**
|
|
1190
|
+
* 指示在转换后是否应保存组件。这样,编译器只需运行一次即可转换应用程序,然后即可将其删除。
|
|
1191
|
+
*/
|
|
1192
|
+
saveComponents: false,
|
|
1193
|
+
|
|
1194
|
+
/**
|
|
1195
|
+
* 字典键前缀
|
|
1196
|
+
*/
|
|
1197
|
+
dictionaryKeyPrefix: "",
|
|
1198
|
+
},
|
|
1199
|
+
};
|
|
1200
|
+
|
|
1201
|
+
module.exports = config;
|
|
1202
|
+
```
|
|
1203
|
+
|
|
1204
|
+
<Tabs>
|
|
1205
|
+
<Tab value='提取命令'>
|
|
1206
|
+
|
|
1207
|
+
运行提取器以转换组件并提取内容
|
|
1208
|
+
|
|
1209
|
+
```bash packageManager="npm"
|
|
1210
|
+
npx intlayer extract
|
|
1211
|
+
```
|
|
1212
|
+
|
|
1213
|
+
```bash packageManager="pnpm"
|
|
1214
|
+
pnpm intlayer extract
|
|
1215
|
+
```
|
|
1216
|
+
|
|
1217
|
+
```bash packageManager="yarn"
|
|
1218
|
+
yarn intlayer extract
|
|
1219
|
+
```
|
|
1220
|
+
|
|
1221
|
+
```bash packageManager="bun"
|
|
1222
|
+
bunx intlayer extract
|
|
1223
|
+
```
|
|
1224
|
+
|
|
1225
|
+
</Tab>
|
|
1226
|
+
<Tab value='Babel 编译器'>
|
|
1227
|
+
|
|
1228
|
+
更新您的 `vite.config.ts` 以包含 `intlayerCompiler` 插件:
|
|
1229
|
+
|
|
1230
|
+
```ts fileName="vite.config.ts"
|
|
1231
|
+
import { defineConfig } from "vite";
|
|
1232
|
+
import { intlayer, intlayerCompiler } from "vite-intlayer";
|
|
1233
|
+
|
|
1234
|
+
export default defineConfig({
|
|
1235
|
+
plugins: [
|
|
1236
|
+
intlayer(),
|
|
1237
|
+
intlayerCompiler(), // 添加编译器插件
|
|
1238
|
+
],
|
|
1239
|
+
});
|
|
1240
|
+
```
|
|
1241
|
+
|
|
1242
|
+
```bash packageManager="npm"
|
|
1243
|
+
npm run build # 或 npm run dev
|
|
1244
|
+
```
|
|
1245
|
+
|
|
1246
|
+
```bash packageManager="pnpm"
|
|
1247
|
+
pnpm run build # 或 pnpm run dev
|
|
1248
|
+
```
|
|
1249
|
+
|
|
1250
|
+
```bash packageManager="yarn"
|
|
1251
|
+
yarn build # 或 yarn dev
|
|
1252
|
+
```
|
|
1253
|
+
|
|
1254
|
+
```bash packageManager="bun"
|
|
1255
|
+
bun run build # Or bun run dev
|
|
1256
|
+
```
|
|
1257
|
+
|
|
1258
|
+
</Tab>
|
|
1259
|
+
</Tabs>
|
|
1260
|
+
|
|
1105
1261
|
### 深入了解
|
|
1106
1262
|
|
|
1107
1263
|
要进一步使用,您可以实现 [可视化编辑器](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_visual_editor.md) 或使用 [CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_CMS.md) 来外部管理您的内容。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/docs",
|
|
3
|
-
"version": "8.3.
|
|
3
|
+
"version": "8.3.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Intlayer documentation",
|
|
6
6
|
"keywords": [
|
|
@@ -72,13 +72,13 @@
|
|
|
72
72
|
"watch": "webpack --config ./webpack.config.ts --watch"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"@intlayer/config": "8.3.
|
|
76
|
-
"@intlayer/core": "8.3.
|
|
77
|
-
"@intlayer/types": "8.3.
|
|
75
|
+
"@intlayer/config": "8.3.1",
|
|
76
|
+
"@intlayer/core": "8.3.1",
|
|
77
|
+
"@intlayer/types": "8.3.1"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@intlayer/api": "8.3.
|
|
81
|
-
"@intlayer/cli": "8.3.
|
|
80
|
+
"@intlayer/api": "8.3.1",
|
|
81
|
+
"@intlayer/cli": "8.3.1",
|
|
82
82
|
"@types/node": "25.4.0",
|
|
83
83
|
"@utils/ts-config": "1.0.4",
|
|
84
84
|
"@utils/ts-config-types": "1.0.4",
|