@intlayer/docs 5.7.2-canary.3 → 5.7.3

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 (48) hide show
  1. package/dist/cjs/generated/docs.entry.cjs +82 -0
  2. package/dist/cjs/generated/docs.entry.cjs.map +1 -1
  3. package/dist/esm/generated/docs.entry.mjs +82 -0
  4. package/dist/esm/generated/docs.entry.mjs.map +1 -1
  5. package/dist/types/generated/docs.entry.d.ts +2 -0
  6. package/dist/types/generated/docs.entry.d.ts.map +1 -1
  7. package/docs/ar/dictionary/gender.md +275 -0
  8. package/docs/ar/how_works_intlayer.md +1 -1
  9. package/docs/ar/locale_mapper.md +246 -0
  10. package/docs/de/dictionary/gender.md +316 -0
  11. package/docs/de/how_works_intlayer.md +1 -1
  12. package/docs/de/locale_mapper.md +244 -0
  13. package/docs/en/dictionary/gender.md +275 -0
  14. package/docs/en/how_works_intlayer.md +1 -1
  15. package/docs/en/index.md +3 -0
  16. package/docs/en/locale_mapper.md +244 -0
  17. package/docs/en-GB/dictionary/gender.md +275 -0
  18. package/docs/en-GB/how_works_intlayer.md +1 -1
  19. package/docs/en-GB/locale_mapper.md +244 -0
  20. package/docs/es/dictionary/gender.md +275 -0
  21. package/docs/es/how_works_intlayer.md +1 -1
  22. package/docs/es/locale_mapper.md +244 -0
  23. package/docs/fr/dictionary/gender.md +276 -0
  24. package/docs/fr/how_works_intlayer.md +1 -1
  25. package/docs/fr/locale_mapper.md +244 -0
  26. package/docs/hi/dictionary/gender.md +276 -0
  27. package/docs/hi/how_works_intlayer.md +1 -1
  28. package/docs/hi/locale_mapper.md +244 -0
  29. package/docs/it/dictionary/gender.md +275 -0
  30. package/docs/it/how_works_intlayer.md +1 -1
  31. package/docs/it/locale_mapper.md +244 -0
  32. package/docs/ja/dictionary/gender.md +275 -0
  33. package/docs/ja/how_works_intlayer.md +1 -1
  34. package/docs/ja/locale_mapper.md +244 -0
  35. package/docs/ko/dictionary/gender.md +275 -0
  36. package/docs/ko/how_works_intlayer.md +1 -1
  37. package/docs/ko/locale_mapper.md +244 -0
  38. package/docs/pt/dictionary/gender.md +275 -0
  39. package/docs/pt/how_works_intlayer.md +1 -1
  40. package/docs/pt/locale_mapper.md +244 -0
  41. package/docs/ru/dictionary/gender.md +275 -0
  42. package/docs/ru/how_works_intlayer.md +1 -1
  43. package/docs/ru/locale_mapper.md +244 -0
  44. package/docs/zh/dictionary/gender.md +275 -0
  45. package/docs/zh/how_works_intlayer.md +1 -1
  46. package/docs/zh/locale_mapper.md +244 -0
  47. package/package.json +11 -11
  48. package/src/generated/docs.entry.ts +82 -0
@@ -0,0 +1,275 @@
1
+ ---
2
+ createdAt: 2025-07-27
3
+ updatedAt: 2025-07-27
4
+ title: 基于性别的内容
5
+ description: 了解如何在 Intlayer 中使用基于性别的内容,根据性别动态显示内容。按照本指南高效地在项目中实现性别特定内容。
6
+ keywords:
7
+ - 基于性别的内容
8
+ - 动态渲染
9
+ - 文档
10
+ - Intlayer
11
+ - Next.js
12
+ - JavaScript
13
+ - React
14
+ slugs:
15
+ - doc
16
+ - concept
17
+ - content
18
+ - gender
19
+ ---
20
+
21
+ # 基于性别的内容 / Intlayer 中的性别
22
+
23
+ ## 性别的工作原理
24
+
25
+ 在 Intlayer 中,基于性别的内容是通过 `gender` 函数实现的,该函数将特定的性别值('male','female')映射到相应的内容。此方法使您能够根据给定的性别动态选择内容。当与 React Intlayer 或 Next Intlayer 集成时,会根据运行时提供的性别自动选择适当的内容。
26
+
27
+ ## 设置基于性别的内容
28
+
29
+ 要在您的 Intlayer 项目中设置基于性别的内容,请创建一个包含性别特定定义的内容模块。以下是各种格式的示例。
30
+
31
+ ```typescript fileName="**/*.content.ts" contentDeclarationFormat="typescript"
32
+ import { gender, type Dictionary } from "intlayer";
33
+
34
+ const myGenderContent = {
35
+ key: "my_key",
36
+ content: {
37
+ myGender: gender({
38
+ male: "针对男性用户的内容",
39
+ female: "针对女性用户的内容",
40
+ fallback: "未指定性别时的内容", // 可选
41
+ }),
42
+ },
43
+ } satisfies Dictionary;
44
+
45
+ export default myGenderContent;
46
+ ```
47
+
48
+ ```javascript fileName="**/*.content.mjs" contentDeclarationFormat="esm"
49
+ import { gender } from "intlayer";
50
+
51
+ /** @type {import('intlayer').Dictionary} */
52
+ const myGenderContent = {
53
+ key: "my_key",
54
+ content: {
55
+ myGender: gender({
56
+ male: "针对男性用户的内容",
57
+ female: "针对女性用户的内容",
58
+ fallback: "未指定性别时的内容", // 可选
59
+ }),
60
+ },
61
+ };
62
+
63
+ export default myGenderContent;
64
+ ```
65
+
66
+ ```javascript fileName="**/*.content.cjs" contentDeclarationFormat="commonjs"
67
+ const { gender } = require("intlayer");
68
+
69
+ /** @type {import('intlayer').Dictionary} */
70
+ const myGenderContent = {
71
+ key: "my_key",
72
+ content: {
73
+ myGender: gender({
74
+ male: "针对男性用户的内容",
75
+ female: "针对女性用户的内容",
76
+ fallback: "未指定性别时的内容", // 可选
77
+ }),
78
+ },
79
+ };
80
+
81
+ module.exports = myGenderContent;
82
+ ```
83
+
84
+ ```json5 fileName="**/*.content.json" contentDeclarationFormat="json"
85
+ {
86
+ "$schema": "https://intlayer.org/schema.json",
87
+ "key": "my_key",
88
+ "content": {
89
+ "myGender": {
90
+ "nodeType": "gender",
91
+ "gender": {
92
+ "male": "针对男性用户的内容",
93
+ "female": "针对女性用户的内容",
94
+ "fallback": "未指定性别时的内容", // 可选
95
+ },
96
+ },
97
+ },
98
+ }
99
+ ```
100
+
101
+ > 如果未声明回退内容,当性别未指定或不匹配任何定义的性别时,将使用最后声明的键作为回退内容。
102
+
103
+ ## 在 React Intlayer 中使用基于性别的内容
104
+
105
+ 要在 React 组件中使用基于性别的内容,请从 `react-intlayer` 包中导入并使用 `useIntlayer` 钩子。该钩子会获取指定键的内容,并允许你传入性别以选择合适的输出。
106
+
107
+ ```tsx fileName="**/*.tsx" codeFormat="typescript"
108
+ import type { FC } from "react";
109
+ import { useIntlayer } from "react-intlayer";
110
+
111
+ const GenderComponent: FC = () => {
112
+ const { myGender } = useIntlayer("my_key");
113
+
114
+ return (
115
+ <div>
116
+ <p>
117
+ {
118
+ /* 输出:针对男性用户的内容 */
119
+ myGender("male")
120
+ }
121
+ </p>
122
+ <p>
123
+ {
124
+ /* 输出:针对女性用户的内容 */
125
+ myGender("female")
126
+ }
127
+ </p>
128
+ <p>
129
+ {
130
+ /* 输出:针对男性用户的内容 */
131
+ myGender("m")
132
+ }
133
+ </p>
134
+ <p>
135
+ {
136
+ /* 输出:针对女性用户的内容 */
137
+ myGender("f")
138
+ }
139
+ </p>
140
+ <p>
141
+ {
142
+ /* 输出:当未指定性别时的内容 */
143
+ myGender("")
144
+ }
145
+ </p>
146
+ <p>
147
+ {
148
+ /* 输出:当未指定性别时的内容 */
149
+ myGender(undefined)
150
+ }
151
+ </p>
152
+ </div>
153
+ );
154
+ };
155
+
156
+ export default GenderComponent;
157
+ ```
158
+
159
+ ```javascript fileName="**/*.mjx" codeFormat="esm"
160
+ import { useIntlayer } from "react-intlayer";
161
+
162
+ const GenderComponent = () => {
163
+ const { myGender } = useIntlayer("my_key");
164
+
165
+ return (
166
+ <div>
167
+ <p>
168
+ {
169
+ /* 输出:男性用户的内容 */
170
+ myGender("male")
171
+ }
172
+ </p>
173
+ <p>
174
+ {
175
+ /* 输出:女性用户的内容 */
176
+ myGender("female")
177
+ }
178
+ </p>
179
+ <p>
180
+ {
181
+ /* 输出:男性用户的内容 */
182
+ myGender("m")
183
+ }
184
+ </p>
185
+ <p>
186
+ {
187
+ /* 输出:女性用户的内容 */
188
+ myGender("f")
189
+ }
190
+ </p>
191
+ <p>
192
+ {
193
+ /* 输出:未指定性别时的内容 */
194
+ myGender("")
195
+ }
196
+ </p>
197
+ <p>
198
+ {
199
+ /* 输出:未指定性别时的内容 */
200
+ myGender(undefined)
201
+ }
202
+ </p>
203
+ </div>
204
+ );
205
+ };
206
+
207
+ export default GenderComponent;
208
+ ```
209
+
210
+ ```javascript fileName="**/*.cjs" codeFormat="commonjs"
211
+ const { useIntlayer } = require("react-intlayer");
212
+
213
+ const GenderComponent = () => {
214
+ const { myGender } = useIntlayer("my_key");
215
+
216
+ return (
217
+ <div>
218
+ <p>
219
+ {
220
+ /* 输出:针对男性用户的内容 */
221
+ myGender("male")
222
+ }
223
+ </p>
224
+ <p>
225
+ {
226
+ /* 输出:针对女性用户的内容 */
227
+ myGender("female")
228
+ }
229
+ </p>
230
+ <p>
231
+ {
232
+ /* 输出:针对男性用户的内容 */
233
+ myGender("m")
234
+ }
235
+ </p>
236
+ <p>
237
+ {
238
+ /* 输出:针对女性用户的内容 */
239
+ myGender("f")
240
+ }
241
+ </p>
242
+ <p>
243
+ {
244
+ /* 输出:当性别未指定时的内容 */
245
+ myGender("")
246
+ }
247
+ </p>
248
+ <p>
249
+ {
250
+ /* 输出:当性别未指定时的内容 */
251
+ myGender(undefined)
252
+ }
253
+ </p>
254
+ </div>
255
+ );
256
+ };
257
+
258
+ module.exports = GenderComponent;
259
+ ```
260
+
261
+ ## 附加资源
262
+
263
+ 有关配置和使用的更详细信息,请参阅以下资源:
264
+
265
+ - [Intlayer CLI 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_cli.md)
266
+ - [React Intlayer 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_with_create_react_app.md)
267
+ - [Next Intlayer 文档](https://github.com/aymericzip/intlayer/blob/main/docs/docs/zh/intlayer_with_nextjs_15.md)
268
+
269
+ 这些资源提供了关于在各种环境和框架中设置和使用 Intlayer 的更多见解。
270
+
271
+ ## 文档历史
272
+
273
+ | 版本 | 日期 | 变更内容 |
274
+ | ----- | ---------- | -------------------------- |
275
+ | 5.7.2 | 2025-07-27 | 引入基于性别的内容显示功能 |
@@ -94,7 +94,7 @@ Intlayer 还提供了一个可视化编辑器,允许您以可视化的方式
94
94
 
95
95
  - 服务器是一个简单的 Express 应用程序,监听来自客户端的请求并检索您的应用内容,例如 `dictionaries` 和配置,以便在客户端访问。
96
96
  - 另一方面,客户端是一个 React 应用程序,用于通过可视化界面与您的内容交互。
97
- 当您使用 `useIntlayer` 调用内容且编辑器已启用时,它会自动使用名为 `IntlayerNode` 的 Proxy 对象包装您的字符串。该节点使用 `window.sendMessage` 与包含可视化编辑器界面的嵌套 iframe 通信。
97
+ 当您使用 `useIntlayer` 调用内容且编辑器已启用时,它会自动使用名为 `IntlayerNode` 的 Proxy 对象包装您的字符串。该节点使用 `window.postMessage` 与包含可视化编辑器界面的嵌套 iframe 通信。
98
98
  在编辑器端,编辑器监听这些消息并模拟与您的内容的真实交互,允许您直接在应用程序的上下文中编辑文本。
99
99
 
100
100
  ## 应用构建优化
@@ -0,0 +1,244 @@
1
+ ---
2
+ createdAt: 2025-07-27
3
+ updatedAt: 2025-07-27
4
+ title: 本地化映射器
5
+ description: 了解本地化映射器的工作原理。查看本地化映射器在您的应用程序中使用的步骤。了解不同包的功能。
6
+ keywords:
7
+ - 本地化映射器
8
+ - 入门
9
+ - Intlayer
10
+ - 应用程序
11
+ - 包
12
+ slugs:
13
+ - doc
14
+ - locale-mapper
15
+ ---
16
+
17
+ # 本地化映射器
18
+
19
+ 本地化映射器是一个强大的工具,帮助您在 Intlayer 应用程序中处理国际化数据。它提供了三个主要功能,用于转换和组织特定于语言环境的数据:`localeMap`、`localeFlatMap` 和 `localeRecord`。
20
+
21
+ ## 本地化映射器的工作原理
22
+
23
+ 本地化映射器基于一个 `LocaleData` 对象,该对象包含有关语言环境的所有必要信息:
24
+
25
+ ```typescript
26
+ type LocaleData = {
27
+ locale: LocalesValues; // 当前语言环境代码(例如,'en','fr')
28
+ defaultLocale: LocalesValues; // 默认语言环境代码
29
+ isDefault: boolean; // 是否为默认语言环境
30
+ locales: LocalesValues[]; // 所有可用语言环境的数组
31
+ urlPrefix: string; // 该语言环境的 URL 前缀(例如,'/fr' 或 '')
32
+ };
33
+ ```
34
+
35
+ 映射函数会自动为配置中的每个语言环境生成这些数据,考虑到:
36
+
37
+ - 您配置的语言环境列表
38
+ - 默认语言环境设置
39
+ - 是否应在 URL 中为默认语言环境添加前缀
40
+
41
+ ## 核心函数
42
+
43
+ ### `localeMap`
44
+
45
+ 使用映射函数将每个语言环境转换为单个对象。
46
+
47
+ ```typescript
48
+ localeMap<T>(
49
+ mapper: (locale: LocaleData) => T,
50
+ locales?: LocalesValues[],
51
+ defaultLocale?: LocalesValues,
52
+ prefixDefault?: boolean
53
+ ): T[]
54
+ ```
55
+
56
+ **示例:创建路由对象**
57
+
58
+ ```typescript
59
+ import { localeMap } from "intlayer";
60
+
61
+ const routes = localeMap((localizedData) => ({
62
+ path: localizedData.urlPrefix,
63
+ name: localizedData.locale,
64
+ isDefault: localizedData.isDefault,
65
+ locales: localizedData.locales,
66
+ defaultLocale: localizedData.defaultLocale,
67
+ }));
68
+
69
+ // 结果:
70
+ // [
71
+ // { path: '/', name: 'en', isDefault: true, locales: ['en', 'fr', 'es'], defaultLocale: 'en' },
72
+ // { path: '/fr', name: 'fr', isDefault: false, locales: ['en', 'fr', 'es'], defaultLocale: 'en' },
73
+ // { path: '/es', name: 'es', isDefault: false, locales: ['en', 'fr', 'es'], defaultLocale: 'en' }
74
+ // ]
75
+ ```
76
+
77
+ ### `localeFlatMap`
78
+
79
+ 类似于 `localeMap`,但映射函数返回一个对象数组,这些数组会被展平成一个单一数组。
80
+
81
+ ```typescript
82
+ localeFlatMap<T>(
83
+ mapper: (locale: LocaleData) => T[],
84
+ locales?: LocalesValues[],
85
+ defaultLocale?: LocalesValues,
86
+ prefixDefault?: boolean
87
+ ): T[]
88
+ ```
89
+
90
+ **示例:为每个语言创建多个路由**
91
+
92
+ ```typescript
93
+ import { localeFlatMap } from "intlayer";
94
+
95
+ const routes = localeFlatMap((localizedData) => [
96
+ {
97
+ path: localizedData.urlPrefix,
98
+ name: localizedData.locale,
99
+ isDefault: localizedData.isDefault,
100
+ },
101
+ {
102
+ path: `${localizedData.urlPrefix}/about`,
103
+ name: `${localizedData.locale}-about`,
104
+ isDefault: localizedData.isDefault,
105
+ },
106
+ ]);
107
+
108
+ // 结果:
109
+ // [
110
+ // { path: '/', name: 'en', isDefault: true },
111
+ // { path: '/about', name: 'en-about', isDefault: true },
112
+ // { path: '/fr', name: 'fr', isDefault: false },
113
+ // { path: '/fr/about', name: 'fr-about', isDefault: false },
114
+ // { path: '/es', name: 'es', isDefault: false },
115
+ // { path: '/es/about', name: 'es-about', isDefault: false }
116
+ // ]
117
+ ```
118
+
119
+ ### `localeRecord`
120
+
121
+ 创建一个记录对象,其中每个 locale 是一个键,映射到由映射函数转换的值。
122
+
123
+ ```typescript
124
+ localeRecord<T>(
125
+ mapper: (locale: LocaleData) => T,
126
+ locales?: Locales[],
127
+ defaultLocale?: Locales,
128
+ prefixDefault?: boolean
129
+ ): Record<Locales, T>
130
+ ```
131
+
132
+ **示例:加载翻译文件**
133
+
134
+ ```typescript
135
+ import { localeRecord } from "intlayer";
136
+
137
+ const translations = localeRecord(({ locale }) =>
138
+ require(`./translations/${locale}.json`)
139
+ );
140
+
141
+ // 结果:
142
+ // {
143
+ // en: { welcome: 'Welcome', hello: 'Hello' },
144
+ // fr: { welcome: 'Bienvenue', hello: 'Bonjour' },
145
+ // es: { welcome: 'Bienvenido', hello: 'Hola' }
146
+ // }
147
+ ```
148
+
149
+ ## 设置 Locale Mapper
150
+
151
+ Locale Mapper 会自动使用你的 Intlayer 配置,但你可以通过传递参数来覆盖默认设置:
152
+
153
+ ### 使用默认配置
154
+
155
+ ```typescript
156
+ import { localeMap } from "intlayer";
157
+
158
+ // 使用 intlayer.config.ts 中的配置
159
+ const routes = localeMap((data) => ({
160
+ path: data.urlPrefix,
161
+ locale: data.locale,
162
+ }));
163
+ ```
164
+
165
+ ### 覆盖配置
166
+
167
+ ```typescript
168
+ import { localeMap } from "intlayer";
169
+
170
+ // 覆盖 locales 和默认 locale
171
+ const customRoutes = localeMap(
172
+ (data) => ({ path: data.urlPrefix, locale: data.locale }),
173
+ ["en", "fr", "de"], // 自定义语言环境
174
+ "en", // 自定义默认语言环境
175
+ true // 在 URL 中为默认语言环境添加前缀
176
+ );
177
+ ```
178
+
179
+ ## 高级用法示例
180
+
181
+ ### 创建导航菜单
182
+
183
+ ```typescript
184
+ import { localeMap } from "intlayer";
185
+
186
+ const navigationItems = localeMap((data) => ({
187
+ label: data.locale.toUpperCase(), // 标签显示为大写的语言代码
188
+ href: data.urlPrefix || "/", // 链接地址,默认根路径
189
+ isActive: data.isDefault, // 是否为默认语言
190
+ flag: `/flags/${data.locale}.svg`, // 语言对应的国旗图标路径
191
+ }));
192
+ ```
193
+
194
+ ### 生成网站地图数据
195
+
196
+ ```typescript
197
+ import { localeFlatMap } from "intlayer";
198
+
199
+ const sitemapUrls = localeFlatMap((data) => [
200
+ {
201
+ url: `${data.urlPrefix}/`,
202
+ lastmod: new Date().toISOString(), // 最后修改时间
203
+ changefreq: "daily", // 更新频率为每日
204
+ priority: data.isDefault ? 1.0 : 0.8, // 优先级,默认语言为1.0,其他为0.8
205
+ },
206
+ {
207
+ url: `${data.urlPrefix}/about`,
208
+ lastmod: new Date().toISOString(),
209
+ changefreq: "monthly",
210
+ priority: data.isDefault ? 0.8 : 0.6,
211
+ },
212
+ ]);
213
+ ```
214
+
215
+ ### 动态加载翻译
216
+
217
+ ```typescript
218
+ import { localeRecord } from "intlayer";
219
+
220
+ const translationModules = localeRecord(({ locale }) => ({
221
+ messages: import(`./locales/${locale}/messages.json`),
222
+ validation: import(`./locales/${locale}/validation.json`),
223
+ metadata: {
224
+ locale,
225
+ direction: ["ar", "he", "fa"].includes(locale) ? "rtl" : "ltr", // 右到左语言方向判断
226
+ },
227
+ }));
228
+ ```
229
+
230
+ ## 配置集成
231
+
232
+ Locale Mapper 无缝集成到您的 Intlayer 配置中:
233
+
234
+ - **Locales(语言环境)**:自动使用 `configuration.internationalization.locales`
235
+ - **默认语言环境**:使用 `configuration.internationalization.defaultLocale`
236
+ - **URL 前缀**:遵循 `configuration.middleware.prefixDefault`
237
+
238
+ 这确保了您的应用程序的一致性,并减少了配置重复。
239
+
240
+ ## 文档历史
241
+
242
+ | 版本 | 日期 | 变更内容 |
243
+ | ----- | ---------- | -------------------- |
244
+ | 5.7.2 | 2025-07-27 | 添加了区域映射器文档 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intlayer/docs",
3
- "version": "5.7.2-canary.3",
3
+ "version": "5.7.3",
4
4
  "private": false,
5
5
  "description": "Intlayer documentation",
6
6
  "keywords": [
@@ -49,8 +49,8 @@
49
49
  "legal"
50
50
  ],
51
51
  "dependencies": {
52
- "intlayer": "5.7.2-canary.3",
53
- "@intlayer/config": "5.7.2-canary.3"
52
+ "intlayer": "5.7.3",
53
+ "@intlayer/config": "5.7.3"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@types/node": "^22.15.30",
@@ -65,16 +65,16 @@
65
65
  "tsx": "^4.19.4",
66
66
  "typescript": "^5.8.3",
67
67
  "vitest": "^3.2.2",
68
- "@intlayer/api": "5.7.2-canary.3",
69
- "@intlayer/cli": "5.7.2-canary.3",
70
68
  "@utils/ts-config": "1.0.4",
71
69
  "@utils/tsup-config": "1.0.4",
72
- "@utils/ts-config-types": "1.0.4"
70
+ "@utils/ts-config-types": "1.0.4",
71
+ "@intlayer/api": "5.7.3",
72
+ "@intlayer/cli": "5.7.3"
73
73
  },
74
74
  "peerDependencies": {
75
- "@intlayer/api": "5.7.2-canary.3",
76
- "@intlayer/cli": "5.7.2-canary.3",
77
- "@intlayer/config": "5.7.2-canary.3"
75
+ "@intlayer/api": "5.7.3",
76
+ "@intlayer/config": "5.7.3",
77
+ "@intlayer/cli": "5.7.3"
78
78
  },
79
79
  "engines": {
80
80
  "node": ">=14.18"
@@ -84,7 +84,8 @@
84
84
  },
85
85
  "scripts": {
86
86
  "prebuild": "tsx tools/generateEntry.ts",
87
- "build": "pnpm build:package & pnpm build:types",
87
+ "build": "pnpm clean & pnpm build:ci",
88
+ "build:ci": "pnpm build:package & pnpm build:types",
88
89
  "build:package": "tsup",
89
90
  "build:types": "tsc --project ./tsconfig.types.json && tsc-alias --project ./tsconfig.types.json",
90
91
  "clean": "rimraf ./dist",
@@ -93,7 +94,6 @@
93
94
  "lint:fix": "eslint . --cache --fix",
94
95
  "prettier": "prettier . --check",
95
96
  "prettier:fix": "prettier . --write",
96
- "reset": "pnpm clean & pnpm build",
97
97
  "review": "tsx tools/review.ts",
98
98
  "serve": "webpack serve --config ./webpack.config.ts",
99
99
  "test": "vitest run",
@@ -457,6 +457,47 @@ export const docsEntry = {
457
457
  )
458
458
  ),
459
459
  } as unknown as Record<LocalesValues, Promise<string>>,
460
+ './docs/en/dictionary/gender.md': {
461
+ en: Promise.resolve(
462
+ readFile(join(dir, '../../../docs/en/dictionary/gender.md'), 'utf8')
463
+ ),
464
+ fr: Promise.resolve(
465
+ readFile(join(dir, '../../../docs/fr/dictionary/gender.md'), 'utf8')
466
+ ),
467
+ ru: Promise.resolve(
468
+ readFile(join(dir, '../../../docs/ru/dictionary/gender.md'), 'utf8')
469
+ ),
470
+ ja: Promise.resolve(
471
+ readFile(join(dir, '../../../docs/ja/dictionary/gender.md'), 'utf8')
472
+ ),
473
+ ko: Promise.resolve(
474
+ readFile(join(dir, '../../../docs/ko/dictionary/gender.md'), 'utf8')
475
+ ),
476
+ zh: Promise.resolve(
477
+ readFile(join(dir, '../../../docs/zh/dictionary/gender.md'), 'utf8')
478
+ ),
479
+ es: Promise.resolve(
480
+ readFile(join(dir, '../../../docs/es/dictionary/gender.md'), 'utf8')
481
+ ),
482
+ de: Promise.resolve(
483
+ readFile(join(dir, '../../../docs/de/dictionary/gender.md'), 'utf8')
484
+ ),
485
+ ar: Promise.resolve(
486
+ readFile(join(dir, '../../../docs/ar/dictionary/gender.md'), 'utf8')
487
+ ),
488
+ pt: Promise.resolve(
489
+ readFile(join(dir, '../../../docs/pt/dictionary/gender.md'), 'utf8')
490
+ ),
491
+ 'en-GB': Promise.resolve(
492
+ readFile(join(dir, '../../../docs/en-GB/dictionary/gender.md'), 'utf8')
493
+ ),
494
+ it: Promise.resolve(
495
+ readFile(join(dir, '../../../docs/it/dictionary/gender.md'), 'utf8')
496
+ ),
497
+ hi: Promise.resolve(
498
+ readFile(join(dir, '../../../docs/hi/dictionary/gender.md'), 'utf8')
499
+ ),
500
+ } as unknown as Record<LocalesValues, Promise<string>>,
460
501
  './docs/en/dictionary/get_started.md': {
461
502
  en: Promise.resolve(
462
503
  readFile(join(dir, '../../../docs/en/dictionary/get_started.md'), 'utf8')
@@ -1859,6 +1900,47 @@ export const docsEntry = {
1859
1900
  readFile(join(dir, '../../../docs/hi/introduction.md'), 'utf8')
1860
1901
  ),
1861
1902
  } as unknown as Record<LocalesValues, Promise<string>>,
1903
+ './docs/en/locale_mapper.md': {
1904
+ en: Promise.resolve(
1905
+ readFile(join(dir, '../../../docs/en/locale_mapper.md'), 'utf8')
1906
+ ),
1907
+ fr: Promise.resolve(
1908
+ readFile(join(dir, '../../../docs/fr/locale_mapper.md'), 'utf8')
1909
+ ),
1910
+ ru: Promise.resolve(
1911
+ readFile(join(dir, '../../../docs/ru/locale_mapper.md'), 'utf8')
1912
+ ),
1913
+ ja: Promise.resolve(
1914
+ readFile(join(dir, '../../../docs/ja/locale_mapper.md'), 'utf8')
1915
+ ),
1916
+ ko: Promise.resolve(
1917
+ readFile(join(dir, '../../../docs/ko/locale_mapper.md'), 'utf8')
1918
+ ),
1919
+ zh: Promise.resolve(
1920
+ readFile(join(dir, '../../../docs/zh/locale_mapper.md'), 'utf8')
1921
+ ),
1922
+ es: Promise.resolve(
1923
+ readFile(join(dir, '../../../docs/es/locale_mapper.md'), 'utf8')
1924
+ ),
1925
+ de: Promise.resolve(
1926
+ readFile(join(dir, '../../../docs/de/locale_mapper.md'), 'utf8')
1927
+ ),
1928
+ ar: Promise.resolve(
1929
+ readFile(join(dir, '../../../docs/ar/locale_mapper.md'), 'utf8')
1930
+ ),
1931
+ pt: Promise.resolve(
1932
+ readFile(join(dir, '../../../docs/pt/locale_mapper.md'), 'utf8')
1933
+ ),
1934
+ 'en-GB': Promise.resolve(
1935
+ readFile(join(dir, '../../../docs/en-GB/locale_mapper.md'), 'utf8')
1936
+ ),
1937
+ it: Promise.resolve(
1938
+ readFile(join(dir, '../../../docs/it/locale_mapper.md'), 'utf8')
1939
+ ),
1940
+ hi: Promise.resolve(
1941
+ readFile(join(dir, '../../../docs/hi/locale_mapper.md'), 'utf8')
1942
+ ),
1943
+ } as unknown as Record<LocalesValues, Promise<string>>,
1862
1944
  './docs/en/mcp_server.md': {
1863
1945
  en: Promise.resolve(
1864
1946
  readFile(join(dir, '../../../docs/en/mcp_server.md'), 'utf8')