@intlayer/docs 8.9.4-canary.0 → 8.9.4
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/dist/cjs/generated/docs.entry.cjs +20 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +20 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +1 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/mcp_server.md +30 -17
- package/docs/ar/plugins/sync-po.md +354 -0
- package/docs/de/mcp_server.md +29 -16
- package/docs/de/plugins/sync-po.md +354 -0
- package/docs/en/mcp_server.md +31 -18
- package/docs/en/plugins/sync-po.md +354 -0
- package/docs/en-GB/mcp_server.md +31 -18
- package/docs/en-GB/plugins/sync-po.md +354 -0
- package/docs/es/mcp_server.md +30 -17
- package/docs/es/plugins/sync-po.md +354 -0
- package/docs/fr/mcp_server.md +30 -17
- package/docs/fr/plugins/sync-po.md +354 -0
- package/docs/hi/mcp_server.md +31 -18
- package/docs/hi/plugins/sync-po.md +354 -0
- package/docs/id/mcp_server.md +30 -17
- package/docs/id/plugins/sync-po.md +354 -0
- package/docs/it/mcp_server.md +30 -17
- package/docs/it/plugins/sync-po.md +354 -0
- package/docs/ja/mcp_server.md +29 -16
- package/docs/ja/plugins/sync-po.md +354 -0
- package/docs/ko/mcp_server.md +31 -18
- package/docs/ko/plugins/sync-po.md +354 -0
- package/docs/pl/mcp_server.md +30 -17
- package/docs/pl/plugins/sync-po.md +354 -0
- package/docs/pt/mcp_server.md +30 -17
- package/docs/pt/plugins/sync-po.md +354 -0
- package/docs/ru/mcp_server.md +30 -17
- package/docs/ru/plugins/sync-po.md +354 -0
- package/docs/tr/mcp_server.md +31 -18
- package/docs/tr/plugins/sync-po.md +354 -0
- package/docs/uk/mcp_server.md +29 -16
- package/docs/uk/plugins/sync-po.md +354 -0
- package/docs/vi/mcp_server.md +30 -17
- package/docs/vi/plugins/sync-po.md +354 -0
- package/docs/zh/mcp_server.md +31 -18
- package/docs/zh/plugins/sync-po.md +354 -0
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-05-10
|
|
3
|
+
updatedAt: 2026-05-10
|
|
4
|
+
title: Sync PO 插件
|
|
5
|
+
description: 将 Intlayer 字典与 Gettext PO 文件同步。在使用 Intlayer 管理、翻译和测试消息的同时,保留现有的 i18n。
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- Sync PO
|
|
9
|
+
- Gettext
|
|
10
|
+
- i18n
|
|
11
|
+
- 翻译
|
|
12
|
+
slugs:
|
|
13
|
+
- doc
|
|
14
|
+
- plugin
|
|
15
|
+
- sync-po
|
|
16
|
+
youtubeVideo: https://www.youtube.com/watch?v=MpGMxniDHNg
|
|
17
|
+
history:
|
|
18
|
+
- version: 8.9.4
|
|
19
|
+
date: 2026-05-10
|
|
20
|
+
changes: "初始 Sync PO 插件文档"
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Sync PO (i18n 桥接) - 支持 ICU / i18next 的 Sync PO
|
|
24
|
+
|
|
25
|
+
将 Intlayer 作为现有 i18n 栈的补充。此插件使您的 Gettext PO 消息与 Intlayer 字典保持同步,以便您可以:
|
|
26
|
+
|
|
27
|
+
- 保留现有的基于 PO 的翻译工作流。
|
|
28
|
+
- 使用 Intlayer (CLI、CI、供应商、CMS) 管理和翻译您的消息,无需重构您的应用。
|
|
29
|
+
- 发布针对各生态系统的教程和 SEO 内容,同时建议将 Intlayer 作为 PO 管理层。
|
|
30
|
+
|
|
31
|
+
注意事项和当前范围:
|
|
32
|
+
|
|
33
|
+
- 外部化到 CMS 适用于翻译和经典文本。
|
|
34
|
+
- 尚不支持 PO 条目内部的插值、复数/ICU 或其他库的高级运行时功能。
|
|
35
|
+
- 可视化编辑器尚不支持第三方 i18n 输出。
|
|
36
|
+
|
|
37
|
+
### 何时使用此插件
|
|
38
|
+
|
|
39
|
+
- 您已经在使用 Gettext PO 文件进行翻译。
|
|
40
|
+
- 您希望在不更改渲染运行时的情况下,获得 AI 辅助填充、CI 测试和内容运营。
|
|
41
|
+
|
|
42
|
+
## 安装
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pnpm add -D @intlayer/sync-po-plugin
|
|
46
|
+
# 或
|
|
47
|
+
npm i -D @intlayer/sync-po-plugin
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 插件
|
|
51
|
+
|
|
52
|
+
此包提供两个插件:
|
|
53
|
+
|
|
54
|
+
- `loadPO`:将 PO 文件加载到 Intlayer 字典中。
|
|
55
|
+
- 此插件用于从源加载 PO 文件并将其载入 Intlayer 字典。它可以扫描整个代码库并搜索特定的 PO 文件。
|
|
56
|
+
此插件可用于:
|
|
57
|
+
- 如果您使用的 i18n 库强制要求 PO 文件的加载位置,但您希望将内容声明放在代码库中您喜欢的位置。
|
|
58
|
+
- 它也可以用于从远程源(如 CMS、API 等)获取消息并将消息存储在 PO 文件中。
|
|
59
|
+
|
|
60
|
+
> 在底层,此插件将扫描整个代码库并搜索特定的 PO 文件,并将其加载到 Intlayer 字典中。
|
|
61
|
+
> 请注意,此插件不会将输出和翻译写回 PO 文件。
|
|
62
|
+
|
|
63
|
+
- `syncPO`:将 PO 文件与 Intlayer 字典同步。
|
|
64
|
+
- 此插件用于将 PO 文件与 Intlayer 字典同步。它可以扫描给定位置并加载与特定 PO 文件模式匹配的 PO。如果您想在使用另一个 i18n 库的同时获得 Intlayer 的优势,此插件非常有用。
|
|
65
|
+
|
|
66
|
+
## 同时使用两个插件
|
|
67
|
+
|
|
68
|
+
```ts fileName="intlayer.config.ts"
|
|
69
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
70
|
+
import { loadPO, syncPO } from "@intlayer/sync-po-plugin";
|
|
71
|
+
|
|
72
|
+
const config: IntlayerConfig = {
|
|
73
|
+
internationalization: {
|
|
74
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
75
|
+
defaultLocale: Locales.ENGLISH,
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
// 使当前的 PO 文件与 Intlayer 字典保持同步
|
|
79
|
+
plugins: [
|
|
80
|
+
/**
|
|
81
|
+
* 将加载 src 中匹配 {key}.i18n.po 模式的所有 PO 文件
|
|
82
|
+
*/
|
|
83
|
+
loadPO({
|
|
84
|
+
source: ({ key }) => `./src/**/${key}.i18n.po`,
|
|
85
|
+
locale: Locales.ENGLISH,
|
|
86
|
+
priority: 1, // 确保这些 PO 文件优先于 `./locales/en/${key}.po` 处的文件
|
|
87
|
+
}),
|
|
88
|
+
/**
|
|
89
|
+
* 将加载输出和翻译并将其写回 locales 目录中的 PO 文件
|
|
90
|
+
*/
|
|
91
|
+
syncPO({
|
|
92
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
93
|
+
priority: 0,
|
|
94
|
+
}),
|
|
95
|
+
],
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
export default config;
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## `syncPO` 插件
|
|
102
|
+
|
|
103
|
+
### 快速开始
|
|
104
|
+
|
|
105
|
+
将插件添加到您的 `intlayer.config.ts` 并指向您现有的 PO 结构。
|
|
106
|
+
|
|
107
|
+
```ts fileName="intlayer.config.ts"
|
|
108
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
109
|
+
import { syncPO } from "@intlayer/sync-po-plugin";
|
|
110
|
+
|
|
111
|
+
const config: IntlayerConfig = {
|
|
112
|
+
internationalization: {
|
|
113
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
114
|
+
defaultLocale: Locales.ENGLISH,
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
// 使当前的 PO 文件与 Intlayer 字典保持同步
|
|
118
|
+
plugins: [
|
|
119
|
+
syncPO({
|
|
120
|
+
// 每个语言、每个命名空间的布局
|
|
121
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
122
|
+
}),
|
|
123
|
+
],
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export default config;
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
备选方案:每个语言一个文件:
|
|
130
|
+
|
|
131
|
+
```ts fileName="intlayer.config.ts"
|
|
132
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
133
|
+
import { syncPO } from "@intlayer/sync-po-plugin";
|
|
134
|
+
|
|
135
|
+
const config: IntlayerConfig = {
|
|
136
|
+
internationalization: {
|
|
137
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
138
|
+
defaultLocale: Locales.ENGLISH,
|
|
139
|
+
},
|
|
140
|
+
plugins: [
|
|
141
|
+
syncPO({
|
|
142
|
+
source: ({ locale }) => `./locales/${locale}.po`,
|
|
143
|
+
}),
|
|
144
|
+
],
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
export default config;
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
#### 工作原理
|
|
151
|
+
|
|
152
|
+
- 读取:插件从您的 `source` 构建器发现 PO 文件并将其作为 Intlayer 字典加载。
|
|
153
|
+
- 写入:构建和填充后,它将本地化的 PO 写回相同的路径(带有正确的 Gettext 头)。
|
|
154
|
+
- 自动填充:插件为每个字典声明一个 `autoFill` 路径。默认情况下,运行 `intlayer fill` 仅更新 PO 文件中缺失的翻译。
|
|
155
|
+
|
|
156
|
+
API:
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
syncPO({
|
|
160
|
+
source: ({ key, locale }) => string, // 必填
|
|
161
|
+
location?: string, // 可选标签,默认:"sync-po::path/to/source"
|
|
162
|
+
priority?: number, // 用于冲突解决的可选优先级,默认:0
|
|
163
|
+
format?: 'icu' | 'i18next' | 'vue-i18n', // 可选,仅当您的 msgstr 值使用特定插值语法时才需要
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
#### `format` ('icu' | 'i18next' | 'vue-i18n')
|
|
168
|
+
|
|
169
|
+
PO 文件始终是 Gettext Portable Object 文件 —— 这是固定的。此选项仅描述 `msgstr` 值内部使用的 **插值语法**,以便 Intlayer 可以在解析时(通过 `formatDictionary`)将其转换为自己的格式,并在写入输出时转换回来。
|
|
170
|
+
|
|
171
|
+
- `undefined` _(默认)_:`msgstr` 值被视为普通字符串 —— 不进行转换。大多数 PO 文件使用此选项。
|
|
172
|
+
- `'icu'`:`msgstr` 值使用 ICU 消息语法(例如 `{count, plural, one {# item} other {# items}}`)。
|
|
173
|
+
- `'i18next'`:`msgstr` 值使用 i18next 插值语法(例如 `{{variable}}`)。
|
|
174
|
+
- `'vue-i18n'`:`msgstr` 值使用 Vue I18n 语法。
|
|
175
|
+
|
|
176
|
+
> 转换由 `@intlayer/chokidar` 的 `formatDictionary` 在加载时应用,并在写入时通过 `formatDictionaryOutput` 反转。对于像 ICU 复数这样的复杂规则,不保证往返的保真度。
|
|
177
|
+
|
|
178
|
+
**示例 —— PO 文件包含 i18next 风格的插值:**
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
syncPO({
|
|
182
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
183
|
+
format: "i18next",
|
|
184
|
+
}),
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### 多个 PO 源和优先级
|
|
188
|
+
|
|
189
|
+
您可以添加多个 `syncPO` 插件来同步不同的 PO 源。当您的项目中有多个翻译源或不同的 PO 结构时,这很有用。
|
|
190
|
+
|
|
191
|
+
#### 优先级系统
|
|
192
|
+
|
|
193
|
+
当多个插件针对同一个字典键时,`priority` 参数决定哪个插件优先:
|
|
194
|
+
|
|
195
|
+
- 高优先级数字胜过低优先级数字
|
|
196
|
+
- `.content` 文件的默认优先级为 `0`
|
|
197
|
+
- 插件的默认优先级为 `0`
|
|
198
|
+
- 具有相同优先级的插件按照它们在配置中出现的顺序进行处理
|
|
199
|
+
|
|
200
|
+
```ts fileName="intlayer.config.ts"
|
|
201
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
202
|
+
import { syncPO } from "@intlayer/sync-po-plugin";
|
|
203
|
+
|
|
204
|
+
const config: IntlayerConfig = {
|
|
205
|
+
internationalization: {
|
|
206
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
207
|
+
defaultLocale: Locales.ENGLISH,
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
plugins: [
|
|
211
|
+
// 主要 PO 源(最高优先级)
|
|
212
|
+
syncPO({
|
|
213
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
214
|
+
location: "main-translations",
|
|
215
|
+
priority: 10,
|
|
216
|
+
}),
|
|
217
|
+
|
|
218
|
+
// 后备 PO 源(较低优先级)
|
|
219
|
+
syncPO({
|
|
220
|
+
source: ({ locale }) => `./fallback-locales/${locale}.po`,
|
|
221
|
+
location: "fallback-translations",
|
|
222
|
+
priority: 5,
|
|
223
|
+
}),
|
|
224
|
+
|
|
225
|
+
// 遗留 PO 源(最低优先级)
|
|
226
|
+
syncPO({
|
|
227
|
+
source: ({ locale }) => `/my/other/app/legacy/${locale}/messages.po`,
|
|
228
|
+
location: "legacy-translations",
|
|
229
|
+
priority: 1,
|
|
230
|
+
}),
|
|
231
|
+
],
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export default config;
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Load PO 插件
|
|
238
|
+
|
|
239
|
+
### 快速开始
|
|
240
|
+
|
|
241
|
+
将插件添加到您的 `intlayer.config.ts` 以将现有的 PO 文件作为 Intlayer 字典摄取。此插件是只读的(不会写入磁盘):
|
|
242
|
+
|
|
243
|
+
```ts fileName="intlayer.config.ts"
|
|
244
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
245
|
+
import { loadPO } from "@intlayer/sync-po-plugin";
|
|
246
|
+
|
|
247
|
+
const config: IntlayerConfig = {
|
|
248
|
+
internationalization: {
|
|
249
|
+
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
250
|
+
defaultLocale: Locales.ENGLISH,
|
|
251
|
+
},
|
|
252
|
+
|
|
253
|
+
plugins: [
|
|
254
|
+
// 摄取位于源树中任何位置的 PO 消息
|
|
255
|
+
loadPO({
|
|
256
|
+
source: ({ key }) => `./src/**/${key}.i18n.po`,
|
|
257
|
+
// 每个插件实例加载一个语言(默认为配置的 defaultLocale)
|
|
258
|
+
locale: Locales.ENGLISH,
|
|
259
|
+
priority: 0,
|
|
260
|
+
}),
|
|
261
|
+
],
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
export default config;
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
备选方案:按语言布局,仍然是只读的(仅加载选定的语言):
|
|
268
|
+
|
|
269
|
+
```ts fileName="intlayer.config.ts"
|
|
270
|
+
import { Locales, type IntlayerConfig } from "intlayer";
|
|
271
|
+
import { loadPO } from "@intlayer/sync-po-plugin";
|
|
272
|
+
|
|
273
|
+
const config: IntlayerConfig = {
|
|
274
|
+
internationalization: {
|
|
275
|
+
locales: [Locales.ENGLISH, Locales.FRENCH],
|
|
276
|
+
defaultLocale: Locales.ENGLISH,
|
|
277
|
+
},
|
|
278
|
+
plugins: [
|
|
279
|
+
loadPO({
|
|
280
|
+
// 只有 Locales.FRENCH 的文件将从此模式加载
|
|
281
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
282
|
+
locale: Locales.FRENCH,
|
|
283
|
+
}),
|
|
284
|
+
],
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
export default config;
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### 工作原理
|
|
291
|
+
|
|
292
|
+
- 发现:从您的 `source` 构建器构建一个 glob 并收集匹配的 PO 文件。
|
|
293
|
+
- 摄取:使用提供的 `locale` 将每个 PO 文件加载为 Intlayer 字典。
|
|
294
|
+
- 只读:不写入或格式化输出文件;如果您需要双向同步,请使用 `syncPO`。
|
|
295
|
+
- 自动填充准备:定义一个 `fill` 路径,以便 `intlayer content fill` 可以填充缺失的键。
|
|
296
|
+
|
|
297
|
+
### API
|
|
298
|
+
|
|
299
|
+
```ts
|
|
300
|
+
loadPO({
|
|
301
|
+
// 构建指向您的 PO 的路径。如果您的结构没有语言段,则 `locale` 是可选的
|
|
302
|
+
source: ({ key, locale }) => string,
|
|
303
|
+
|
|
304
|
+
// 由此插件实例加载的字典的目标语言
|
|
305
|
+
// 默认为 configuration.internationalization.defaultLocale
|
|
306
|
+
locale?: Locale,
|
|
307
|
+
|
|
308
|
+
// 用于识别源的可选标签
|
|
309
|
+
location?: string, // 默认:"plugin"
|
|
310
|
+
|
|
311
|
+
// 用于与其他源进行冲突解决的优先级
|
|
312
|
+
priority?: number, // 默认:0
|
|
313
|
+
});
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### 行为和约定
|
|
317
|
+
|
|
318
|
+
- 如果您的 `source` 掩码包含语言占位符,则仅摄取所选 `locale` 的文件。
|
|
319
|
+
- 如果掩码中没有 `{key}` 段,则字典键为 "index"。
|
|
320
|
+
- 键通过替换 `source` 构建器中的 `{key}` 占位符从文件路径派生。
|
|
321
|
+
- 插件仅使用发现的文件,不会伪造缺失的语言或键。
|
|
322
|
+
- `fill` 路径从您的 `source` 推导出来,并在您选择启用时用于通过 CLI 更新缺失的值。
|
|
323
|
+
|
|
324
|
+
## 冲突解决
|
|
325
|
+
|
|
326
|
+
当多个 PO 源中存在相同的翻译键时:
|
|
327
|
+
|
|
328
|
+
1. 具有最高优先级的插件决定最终值
|
|
329
|
+
2. 较低优先级的源用作缺失键的后备
|
|
330
|
+
3. 这允许您保留遗留翻译,同时逐步迁移到新结构
|
|
331
|
+
|
|
332
|
+
## CLI
|
|
333
|
+
|
|
334
|
+
同步的 PO 文件将被视为与其他 `.content` 文件相同。这意味着,所有 intlayer 命令都将可用于同步的 PO 文件。包括:
|
|
335
|
+
|
|
336
|
+
- `intlayer content test` 测试是否有缺失的翻译
|
|
337
|
+
- `intlayer content list` 列出同步的 PO 文件
|
|
338
|
+
- `intlayer content fill` 填充缺失的翻译
|
|
339
|
+
- `intlayer content push` 推送同步的 PO 文件
|
|
340
|
+
- `intlayer content pull` 拉取同步的 PO 文件
|
|
341
|
+
|
|
342
|
+
有关更多详细信息,请参阅 [Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md)。
|
|
343
|
+
|
|
344
|
+
## 局限性(当前)
|
|
345
|
+
|
|
346
|
+
- 针对第三方库时不支持插值或复数/ICU。
|
|
347
|
+
- 可视化编辑器尚不适用于非 Intlayer 运行时。
|
|
348
|
+
- 仅限 PO 同步;不支持非 PO 目录格式。
|
|
349
|
+
|
|
350
|
+
## 为什么这很重要
|
|
351
|
+
|
|
352
|
+
- 我们可以推荐成熟的 i18n 解决方案,并将 Intlayer 定位为补充。
|
|
353
|
+
- 我们通过教程利用他们的 SEO/关键词,教程最后建议使用 Intlayer 来管理 PO。
|
|
354
|
+
- 将目标受众从“新项目”扩展到“任何已经在使用 i18n 的团队”。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intlayer/docs",
|
|
3
|
-
"version": "8.9.4
|
|
3
|
+
"version": "8.9.4",
|
|
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.9.4
|
|
76
|
-
"@intlayer/core": "8.9.4
|
|
77
|
-
"@intlayer/types": "8.9.4
|
|
75
|
+
"@intlayer/config": "8.9.4",
|
|
76
|
+
"@intlayer/core": "8.9.4",
|
|
77
|
+
"@intlayer/types": "8.9.4"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
80
|
-
"@intlayer/api": "8.9.4
|
|
81
|
-
"@intlayer/cli": "8.9.4
|
|
80
|
+
"@intlayer/api": "8.9.4",
|
|
81
|
+
"@intlayer/cli": "8.9.4",
|
|
82
82
|
"@types/node": "25.6.2",
|
|
83
83
|
"@utils/ts-config": "1.0.4",
|
|
84
84
|
"@utils/ts-config-types": "1.0.4",
|
|
@@ -3316,6 +3316,26 @@ export const docsEntry = {
|
|
|
3316
3316
|
vi: readLocale('plugins/sync-json.md', 'vi'),
|
|
3317
3317
|
uk: readLocale('plugins/sync-json.md', 'uk'),
|
|
3318
3318
|
} as unknown as Record<LocalesValues, Promise<string>>,
|
|
3319
|
+
'./docs/en/plugins/sync-po.md': {
|
|
3320
|
+
en: readLocale('plugins/sync-po.md', 'en'),
|
|
3321
|
+
ru: readLocale('plugins/sync-po.md', 'ru'),
|
|
3322
|
+
ja: readLocale('plugins/sync-po.md', 'ja'),
|
|
3323
|
+
fr: readLocale('plugins/sync-po.md', 'fr'),
|
|
3324
|
+
ko: readLocale('plugins/sync-po.md', 'ko'),
|
|
3325
|
+
zh: readLocale('plugins/sync-po.md', 'zh'),
|
|
3326
|
+
es: readLocale('plugins/sync-po.md', 'es'),
|
|
3327
|
+
de: readLocale('plugins/sync-po.md', 'de'),
|
|
3328
|
+
ar: readLocale('plugins/sync-po.md', 'ar'),
|
|
3329
|
+
it: readLocale('plugins/sync-po.md', 'it'),
|
|
3330
|
+
'en-GB': readLocale('plugins/sync-po.md', 'en-GB'),
|
|
3331
|
+
pt: readLocale('plugins/sync-po.md', 'pt'),
|
|
3332
|
+
hi: readLocale('plugins/sync-po.md', 'hi'),
|
|
3333
|
+
tr: readLocale('plugins/sync-po.md', 'tr'),
|
|
3334
|
+
pl: readLocale('plugins/sync-po.md', 'pl'),
|
|
3335
|
+
id: readLocale('plugins/sync-po.md', 'id'),
|
|
3336
|
+
vi: readLocale('plugins/sync-po.md', 'vi'),
|
|
3337
|
+
uk: readLocale('plugins/sync-po.md', 'uk'),
|
|
3338
|
+
} as unknown as Record<LocalesValues, Promise<string>>,
|
|
3319
3339
|
'./docs/en/readme.md': {
|
|
3320
3340
|
en: readLocale('readme.md', 'en'),
|
|
3321
3341
|
ru: readLocale('readme.md', 'ru'),
|