@intlayer/docs 7.3.1 → 7.3.2-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +0 -2
  2. package/blog/ar/compiler_vs_declarative_i18n.md +1 -2
  3. package/blog/ar/list_i18n_technologies/frameworks/flutter.md +0 -22
  4. package/blog/de/compiler_vs_declarative_i18n.md +1 -2
  5. package/blog/de/list_i18n_technologies/frameworks/flutter.md +0 -22
  6. package/blog/en/compiler_vs_declarative_i18n.md +1 -2
  7. package/blog/en/list_i18n_technologies/frameworks/flutter.md +0 -22
  8. package/blog/en/list_i18n_technologies/frameworks/svelte.md +19 -3
  9. package/blog/en/list_i18n_technologies/frameworks/vue.md +16 -2
  10. package/blog/en-GB/compiler_vs_declarative_i18n.md +1 -2
  11. package/blog/en-GB/list_i18n_technologies/frameworks/flutter.md +0 -22
  12. package/blog/es/compiler_vs_declarative_i18n.md +1 -2
  13. package/blog/es/list_i18n_technologies/frameworks/flutter.md +0 -22
  14. package/blog/fr/compiler_vs_declarative_i18n.md +1 -2
  15. package/blog/fr/list_i18n_technologies/frameworks/flutter.md +0 -22
  16. package/blog/hi/compiler_vs_declarative_i18n.md +1 -2
  17. package/blog/hi/list_i18n_technologies/frameworks/flutter.md +0 -22
  18. package/blog/id/compiler_vs_declarative_i18n.md +1 -2
  19. package/blog/id/list_i18n_technologies/frameworks/flutter.md +0 -22
  20. package/blog/it/compiler_vs_declarative_i18n.md +1 -2
  21. package/blog/it/list_i18n_technologies/frameworks/flutter.md +0 -22
  22. package/blog/ja/compiler_vs_declarative_i18n.md +1 -2
  23. package/blog/ja/list_i18n_technologies/frameworks/flutter.md +0 -22
  24. package/blog/ko/compiler_vs_declarative_i18n.md +1 -2
  25. package/blog/ko/list_i18n_technologies/frameworks/flutter.md +0 -22
  26. package/blog/pl/compiler_vs_declarative_i18n.md +1 -2
  27. package/blog/pl/list_i18n_technologies/frameworks/flutter.md +0 -22
  28. package/blog/pt/compiler_vs_declarative_i18n.md +1 -2
  29. package/blog/pt/list_i18n_technologies/frameworks/flutter.md +0 -22
  30. package/blog/ru/compiler_vs_declarative_i18n.md +1 -2
  31. package/blog/ru/list_i18n_technologies/frameworks/flutter.md +0 -22
  32. package/blog/tr/compiler_vs_declarative_i18n.md +1 -2
  33. package/blog/tr/list_i18n_technologies/frameworks/flutter.md +0 -22
  34. package/blog/vi/compiler_vs_declarative_i18n.md +1 -2
  35. package/blog/vi/list_i18n_technologies/frameworks/flutter.md +0 -22
  36. package/blog/zh/compiler_vs_declarative_i18n.md +1 -2
  37. package/blog/zh/list_i18n_technologies/frameworks/flutter.md +0 -22
  38. package/dist/cjs/generated/docs.entry.cjs +19 -0
  39. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  40. package/dist/esm/generated/docs.entry.mjs +19 -0
  41. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  42. package/dist/types/generated/docs.entry.d.ts +1 -0
  43. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  44. package/docs/ar/bundle_optimization.md +6 -2
  45. package/docs/ar/compiler.md +133 -0
  46. package/docs/de/bundle_optimization.md +6 -2
  47. package/docs/de/compiler.md +133 -0
  48. package/docs/en/bundle_optimization.md +6 -2
  49. package/docs/en/compiler.md +133 -0
  50. package/docs/en-GB/bundle_optimization.md +6 -2
  51. package/docs/en-GB/compiler.md +133 -0
  52. package/docs/es/bundle_optimization.md +6 -2
  53. package/docs/es/compiler.md +133 -0
  54. package/docs/fr/bundle_optimization.md +6 -2
  55. package/docs/fr/compiler.md +133 -0
  56. package/docs/hi/bundle_optimization.md +6 -2
  57. package/docs/hi/compiler.md +133 -0
  58. package/docs/id/bundle_optimization.md +6 -2
  59. package/docs/id/compiler.md +133 -0
  60. package/docs/it/bundle_optimization.md +6 -2
  61. package/docs/it/compiler.md +133 -0
  62. package/docs/ja/bundle_optimization.md +6 -2
  63. package/docs/ja/compiler.md +133 -0
  64. package/docs/ko/bundle_optimization.md +6 -2
  65. package/docs/ko/compiler.md +133 -0
  66. package/docs/pl/bundle_optimization.md +6 -2
  67. package/docs/pl/compiler.md +133 -0
  68. package/docs/pt/bundle_optimization.md +6 -2
  69. package/docs/pt/compiler.md +133 -0
  70. package/docs/ru/bundle_optimization.md +6 -2
  71. package/docs/ru/compiler.md +133 -0
  72. package/docs/tr/bundle_optimization.md +6 -2
  73. package/docs/tr/compiler.md +133 -0
  74. package/docs/vi/bundle_optimization.md +6 -2
  75. package/docs/vi/compiler.md +133 -0
  76. package/docs/zh/bundle_optimization.md +6 -2
  77. package/docs/zh/compiler.md +133 -0
  78. package/package.json +8 -7
  79. package/src/generated/docs.entry.ts +19 -0
@@ -0,0 +1,133 @@
1
+ ---
2
+ createdAt: 2025-09-09
3
+ updatedAt: 2025-09-09
4
+ title: Intlayer 编译器 | 用于 i18n 的自动内容提取
5
+ description: 使用 Intlayer 编译器自动化您的国际化流程。直接从组件中提取内容,实现 Vite、Next.js 等框架中更快速、更高效的 i18n。
6
+ keywords:
7
+ - Intlayer
8
+ - 编译器
9
+ - 国际化
10
+ - i18n
11
+ - 自动化
12
+ - 提取
13
+ - 速度
14
+ - Vite
15
+ - Next.js
16
+ - React
17
+ - Vue
18
+ - Svelte
19
+ slugs:
20
+ - doc
21
+ - compiler
22
+ history:
23
+ - version: 7.3.1
24
+ date: 2025-11-27
25
+ changes: 发布编译器
26
+ ---
27
+
28
+ # Intlayer 编译器 | 用于 i18n 的自动内容提取
29
+
30
+ ## 什么是 Intlayer 编译器?
31
+
32
+ **Intlayer 编译器** 是一个强大的工具,旨在自动化您应用程序中的国际化(i18n)流程。它会扫描您的源代码(JSX、TSX、Vue、Svelte)中的内容声明,提取它们,并自动生成所需的字典文件。这使您能够将内容与组件放置在一起,而 Intlayer 则负责管理和同步您的字典。
33
+
34
+ ## 为什么使用 Intlayer 编译器?
35
+
36
+ - **自动化**:消除手动将内容复制粘贴到字典中的步骤。
37
+ - **速度**:优化的内容提取,确保构建过程保持快速。
38
+ - **开发者体验**:将内容声明保留在使用它们的位置,提高可维护性。
39
+ - **实时更新**:支持热模块替换(HMR),在开发过程中即时反馈。
40
+
41
+ 请参阅[Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/zh/compiler_vs_declarative_i18n.md)博客文章,了解更深入的比较。
42
+
43
+ ## 为什么不使用 Intlayer 编译器?
44
+
45
+ 虽然编译器提供了出色的"开箱即用"体验,但它也引入了一些您应该了解的权衡:
46
+
47
+ - **启发式歧义**:编译器必须猜测什么是面向用户的内容,什么是应用程序逻辑(例如,`className="active"`、状态代码、产品 ID)。在复杂的代码库中,这可能导致误报或遗漏的字符串,需要手动注释和异常处理。
48
+ - **仅静态提取**:基于编译器的提取依赖于静态分析。仅在运行时存在的字符串(API 错误代码、CMS 字段等)无法被编译器单独发现或翻译,因此您仍然需要补充的运行时 i18n 策略。
49
+
50
+ 有关更深入的架构比较,请参阅博客文章[Compiler vs. Declarative i18n](https://github.com/aymericzip/intlayer/blob/main/docs/blog/zh/compiler_vs_declarative_i18n.md)。
51
+
52
+ 作为替代方案,为了在保持对内容的完全控制的同时自动化您的 i18n 流程,Intlayer 还提供了自动提取命令 `intlayer transform`(请参阅[CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/cli/transform.md)),或 Intlayer VS Code 扩展的 `Intlayer: extract content to Dictionary` 命令(请参阅[VS Code 扩展文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/vs_code_extension.md))。
53
+
54
+ ## 使用方法
55
+
56
+ ### Vite
57
+
58
+ 对于基于 Vite 的应用(React、Vue、Svelte 等),使用编译器最简单的方法是通过 `vite-intlayer` 插件。
59
+
60
+ #### 安装
61
+
62
+ ```bash
63
+ npm install vite-intlayer
64
+ ```
65
+
66
+ #### 配置
67
+
68
+ 更新你的 `vite.config.ts`,以包含 `intlayerCompiler` 插件:
69
+
70
+ ```ts fileName="vite.config.ts"
71
+ import { defineConfig } from "vite";
72
+ import { intlayer, intlayerCompiler } from "vite-intlayer";
73
+
74
+ export default defineConfig({
75
+ plugins: [
76
+ intlayer(),
77
+ intlayerCompiler(), // 添加编译器插件
78
+ ],
79
+ });
80
+ ```
81
+
82
+ #### 框架支持
83
+
84
+ Vite 插件会自动检测并处理不同的文件类型:
85
+
86
+ - **React / JSX / TSX**:原生支持。
87
+ - **Vue**:需要安装 `@intlayer/vue-compiler`。
88
+ - **Svelte**:需要安装 `@intlayer/svelte-compiler`。
89
+
90
+ 请确保为你的框架安装了相应的编译器包:
91
+
92
+ ```bash
93
+ # Vue 使用
94
+ npm install @intlayer/vue-compiler
95
+
96
+ # Svelte 使用
97
+ npm install @intlayer/svelte-compiler
98
+ ```
99
+
100
+ ### Next.js(Babel)
101
+
102
+ 对于使用 Babel 的 Next.js 或其他基于 Webpack 的应用,可以通过 `@intlayer/babel` 插件配置编译器。
103
+
104
+ #### 安装
105
+
106
+ ```bash
107
+ npm install @intlayer/babel
108
+ ```
109
+
110
+ #### 配置
111
+
112
+ 更新您的 `babel.config.js`(或 `babel.config.json`)以包含提取插件。我们提供了一个辅助函数 `getExtractPluginOptions`,用于自动加载您的 Intlayer 配置。
113
+
114
+ ```js fileName="babel.config.js"
115
+ const {
116
+ intlayerExtractBabelPlugin,
117
+ intlayerOptimizeBabelPlugin,
118
+ getExtractPluginOptions,
119
+ getOptimizePluginOptions,
120
+ } = require("@intlayer/babel");
121
+
122
+ module.exports = {
123
+ presets: ["next/babel"],
124
+ plugins: [
125
+ // Extract content from components into dictionaries
126
+ [intlayerExtractBabelPlugin, getExtractPluginOptions()],
127
+ // Optimize imports by replacing useIntlayer with direct dictionary imports
128
+ [intlayerOptimizeBabelPlugin, getOptimizePluginOptions()],
129
+ ],
130
+ };
131
+ ```
132
+
133
+ 此配置确保在构建过程中,组件中声明的内容会被自动提取并用于生成字典。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/docs",
3
- "version": "7.3.1",
3
+ "version": "7.3.2-canary.0",
4
4
  "private": false,
5
5
  "description": "Intlayer documentation",
6
6
  "keywords": [
@@ -48,6 +48,7 @@
48
48
  "legal"
49
49
  ],
50
50
  "scripts": {
51
+ "_prepublish": "cp -f ../README.md ./README.md",
51
52
  "prebuild": "tsx tools/generateEntry.ts",
52
53
  "build": "tsdown --config tsdown.config.ts",
53
54
  "build:ci": "tsdown --config tsdown.config.ts",
@@ -57,7 +58,7 @@
57
58
  "format:fix": "biome format --write .",
58
59
  "lint": "biome lint .",
59
60
  "lint:fix": "biome lint --write .",
60
- "prepublish": "cp -f ../README.md ./README.md",
61
+ "prepublish": "echo prepublish temporally disabled to avoid rewrite readme",
61
62
  "publish": "bun publish || true",
62
63
  "publish:canary": "bun publish --access public --tag canary || true",
63
64
  "publish:latest": "bun publish --access public --tag latest || true",
@@ -72,13 +73,13 @@
72
73
  "watch": "webpack --config ./webpack.config.ts --watch"
73
74
  },
74
75
  "dependencies": {
75
- "@intlayer/config": "7.3.1",
76
- "@intlayer/core": "7.3.1",
77
- "@intlayer/types": "7.3.1"
76
+ "@intlayer/config": "7.3.2-canary.0",
77
+ "@intlayer/core": "7.3.2-canary.0",
78
+ "@intlayer/types": "7.3.2-canary.0"
78
79
  },
79
80
  "devDependencies": {
80
- "@intlayer/api": "7.3.1",
81
- "@intlayer/cli": "7.3.1",
81
+ "@intlayer/api": "7.3.2-canary.0",
82
+ "@intlayer/cli": "7.3.2-canary.0",
82
83
  "@types/node": "24.10.1",
83
84
  "@utils/ts-config": "1.0.4",
84
85
  "@utils/ts-config-types": "1.0.4",
@@ -433,6 +433,25 @@ export const docsEntry = {
433
433
  id: readLocale('cli/watch.md', 'id'),
434
434
  vi: readLocale('cli/watch.md', 'vi'),
435
435
  } as unknown as Record<LocalesValues, Promise<string>>,
436
+ './docs/en/compiler.md': {
437
+ en: readLocale('compiler.md', 'en'),
438
+ ru: readLocale('compiler.md', 'ru'),
439
+ ja: readLocale('compiler.md', 'ja'),
440
+ fr: readLocale('compiler.md', 'fr'),
441
+ ko: readLocale('compiler.md', 'ko'),
442
+ zh: readLocale('compiler.md', 'zh'),
443
+ es: readLocale('compiler.md', 'es'),
444
+ de: readLocale('compiler.md', 'de'),
445
+ ar: readLocale('compiler.md', 'ar'),
446
+ it: readLocale('compiler.md', 'it'),
447
+ 'en-GB': readLocale('compiler.md', 'en-GB'),
448
+ pt: readLocale('compiler.md', 'pt'),
449
+ hi: readLocale('compiler.md', 'hi'),
450
+ tr: readLocale('compiler.md', 'tr'),
451
+ pl: readLocale('compiler.md', 'pl'),
452
+ id: readLocale('compiler.md', 'id'),
453
+ vi: readLocale('compiler.md', 'vi'),
454
+ } as unknown as Record<LocalesValues, Promise<string>>,
436
455
  './docs/en/component_i18n.md': {
437
456
  en: readLocale('component_i18n.md', 'en'),
438
457
  ru: readLocale('component_i18n.md', 'ru'),