@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: Plugin Sync PO
|
|
5
|
+
description: Synchronizuj słowniki Intlayer z plikami Gettext PO. Zachowaj istniejące i18n, używając Intlayer do zarządzania, tłumaczenia i testowania swoich komunikatów.
|
|
6
|
+
keywords:
|
|
7
|
+
- Intlayer
|
|
8
|
+
- Sync PO
|
|
9
|
+
- Gettext
|
|
10
|
+
- i18n
|
|
11
|
+
- tłumaczenia
|
|
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: "Początkowa dokumentacja pluginu Sync PO"
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
# Sync PO (mosty i18n) - Sync PO ze wsparciem ICU / i18next
|
|
24
|
+
|
|
25
|
+
Używaj Intlayer jako dodatku do swojego istniejącego stosu i18n. Ten plugin utrzymuje synchronizację komunikatów Gettext PO ze słownikami Intlayer, dzięki czemu możesz:
|
|
26
|
+
|
|
27
|
+
- Zachować istniejący przepływ pracy tłumaczeń oparty na plikach PO.
|
|
28
|
+
- Zarządzać i tłumaczyć swoje komunikaty za pomocą Intlayer (CLI, CI, dostawcy, CMS), bez refaktoryzacji aplikacji.
|
|
29
|
+
- Dostarczać samouczki i treści SEO skierowane do każdego ekosystemu, sugerując Intlayer jako warstwę zarządzania plikami PO.
|
|
30
|
+
|
|
31
|
+
Uwagi i aktualny zakres:
|
|
32
|
+
|
|
33
|
+
- Externalizacja do CMS działa dla tłumaczeń i klasycznego tekstu.
|
|
34
|
+
- Brak jeszcze wsparcia dla wstawek, liczb mnogich/ICU lub zaawansowanych funkcji runtime innych bibliotek wewnątrz samych wpisów PO.
|
|
35
|
+
- Edytor wizualny nie jest jeszcze wspierany dla wyjść i18n firm trzecich.
|
|
36
|
+
|
|
37
|
+
### Kiedy używać tego pluginu
|
|
38
|
+
|
|
39
|
+
- Używasz już plików Gettext PO do swoich tłumaczeń.
|
|
40
|
+
- Chcesz korzystać z wypełniania wspomaganego przez AI, testów w CI i operacji na treści bez zmiany swojego runtime'u renderowania.
|
|
41
|
+
|
|
42
|
+
## Instalacja
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pnpm add -D @intlayer/sync-po-plugin
|
|
46
|
+
# lub
|
|
47
|
+
npm i -D @intlayer/sync-po-plugin
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Pluginy
|
|
51
|
+
|
|
52
|
+
Ten pakiet dostarcza dwa pluginy:
|
|
53
|
+
|
|
54
|
+
- `loadPO`: Ładuje pliki PO do słowników Intlayer.
|
|
55
|
+
- Ten plugin służy do ładowania plików PO ze źródła i zostaną one wczytane do słowników Intlayer. Może on przeszukiwać całą bazę kodu w poszukiwaniu konkretnych plików PO.
|
|
56
|
+
Plugin ten może być używany:
|
|
57
|
+
- jeśli używasz biblioteki i18n, która narzuca określoną lokalizację dla ładowania plików PO, ale chcesz umieścić swoją deklarację treści w dowolnym miejscu w swojej bazie kodu.
|
|
58
|
+
- Może być również używany, jeśli chcesz pobierać komunikaty ze zdalnego źródła (np. CMS, API itp.) i przechowywać je w plikach PO.
|
|
59
|
+
|
|
60
|
+
> Pod maską ten plugin przeszuka całą bazę kodu, znajdzie konkretne pliki PO i załaduje je do słowników Intlayer.
|
|
61
|
+
> Pamiętaj, że ten plugin nie będzie zapisywał wyników i tłumaczeń z powrotem do plików PO.
|
|
62
|
+
|
|
63
|
+
- `syncPO`: Synchronizuje pliki PO ze słownikami Intlayer.
|
|
64
|
+
- Ten plugin służy do synchronizacji plików PO ze słownikami Intlayer. Może on przeszukiwać podaną lokalizację i ładować pliki PO pasujące do wzorca. Plugin ten jest przydatny, jeśli chcesz czerpać korzyści z Intlayer, korzystając jednocześnie z innej biblioteki i18n.
|
|
65
|
+
|
|
66
|
+
## Używanie obu pluginów
|
|
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
|
+
// Utrzymuj synchronizację aktualnych plików PO ze słownikami Intlayer
|
|
79
|
+
plugins: [
|
|
80
|
+
/**
|
|
81
|
+
* Załaduje wszystkie pliki PO w src pasujące do wzorca {key}.i18n.po
|
|
82
|
+
*/
|
|
83
|
+
loadPO({
|
|
84
|
+
source: ({ key }) => `./src/**/${key}.i18n.po`,
|
|
85
|
+
locale: Locales.ENGLISH,
|
|
86
|
+
priority: 1, // Zapewnia, że te pliki PO mają pierwszeństwo przed plikami w `./locales/en/${key}.po`
|
|
87
|
+
}),
|
|
88
|
+
/**
|
|
89
|
+
* Załaduje i zapisze wyniki oraz tłumaczenia z powrotem do plików PO w katalogu locales
|
|
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
|
+
## Plugin `syncPO`
|
|
102
|
+
|
|
103
|
+
### Szybki start
|
|
104
|
+
|
|
105
|
+
Dodaj plugin do swojego `intlayer.config.ts` i skieruj go na istniejącą strukturę plików 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
|
+
// Utrzymuj synchronizację aktualnych plików PO ze słownikami Intlayer
|
|
118
|
+
plugins: [
|
|
119
|
+
syncPO({
|
|
120
|
+
// Układ według języka i przestrzeni nazw
|
|
121
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
122
|
+
}),
|
|
123
|
+
],
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export default config;
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Alternatywa: pojedynczy plik na język:
|
|
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
|
+
#### Jak to działa
|
|
151
|
+
|
|
152
|
+
- Odczyt: plugin wykrywa pliki PO za pomocą konstruktora `source` i ładuje je jako słowniki Intlayer.
|
|
153
|
+
- Zapis: po zbudowaniu i wypełnieniu, zapisuje zlokalizowane pliki PO z powrotem pod tymi samymi ścieżkami (z odpowiednimi nagłówkami Gettext).
|
|
154
|
+
- Automatyczne wypełnianie: plugin deklaruje ścieżkę `autoFill` dla każdego słownika. Uruchomienie `intlayer fill` domyślnie aktualizuje tylko brakujące tłumaczenia w plikach PO.
|
|
155
|
+
|
|
156
|
+
API:
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
syncPO({
|
|
160
|
+
source: ({ key, locale }) => string, // wymagane
|
|
161
|
+
location?: string, // opcjonalna etykieta, domyślnie: "sync-po::path/to/source"
|
|
162
|
+
priority?: number, // opcjonalny priorytet dla rozwiązywania konfliktów, domyślnie: 0
|
|
163
|
+
format?: 'icu' | 'i18next' | 'vue-i18n', // opcjonalne, potrzebne tylko gdy wartości msgstr używają specyficznej składni interpolacji
|
|
164
|
+
});
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
#### `format` ('icu' | 'i18next' | 'vue-i18n')
|
|
168
|
+
|
|
169
|
+
Pliki PO to zawsze pliki Gettext Portable Object — to jest stałe. Ta opcja opisuje jedynie **składnię interpolacji** używaną wewnątrz wartości `msgstr`, dzięki czemu Intlayer może przekonwertować je na własny format w czasie parsowania (przez `formatDictionary`) i z powrotem podczas zapisywania wyników.
|
|
170
|
+
|
|
171
|
+
- `undefined` _(domyślnie)_: wartości `msgstr` są traktowane jako zwykłe ciągi znaków — brak transformacji. Używaj tego dla większości plików PO.
|
|
172
|
+
- `'icu'`: wartości `msgstr` używają składni komunikatów ICU (np. `{count, plural, one {# item} other {# items}}`).
|
|
173
|
+
- `'i18next'`: wartości `msgstr` używają składni interpolacji i18next (np. `{{variable}}`).
|
|
174
|
+
- `'vue-i18n'`: wartości `msgstr` używają składni Vue I18n.
|
|
175
|
+
|
|
176
|
+
> Transformacja jest nakładana przez `formatDictionary` z `@intlayer/chokidar` przy ładowaniu i odwracana za pomocą `formatDictionaryOutput` przy zapisie. W przypadku złożonych reguł, takich jak liczby mnogie ICU, wierność konwersji w obie strony nie jest gwarantowana.
|
|
177
|
+
|
|
178
|
+
**Przykład — pliki PO zawierają interpolację w stylu i18next:**
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
syncPO({
|
|
182
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
183
|
+
format: "i18next",
|
|
184
|
+
}),
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Wiele źródeł PO i priorytet
|
|
188
|
+
|
|
189
|
+
Możesz dodać wiele pluginów `syncPO`, aby synchronizować różne źródła PO. Jest to przydatne, gdy masz wiele źródeł tłumaczeń lub różne struktury PO w swoim projekcie.
|
|
190
|
+
|
|
191
|
+
#### System priorytetów
|
|
192
|
+
|
|
193
|
+
Gdy wiele pluginów celuje w ten sam klucz słownika, parametr `priority` decyduje, który plugin ma pierwszeństwo:
|
|
194
|
+
|
|
195
|
+
- Wyższe numery priorytetu wygrywają z niższymi
|
|
196
|
+
- Domyślny priorytet plików `.content` to `0`
|
|
197
|
+
- Domyślny priorytet pluginów to `0`
|
|
198
|
+
- Pluginy o tym samym priorytecie są przetwarzane w kolejności, w jakiej pojawiają się w konfiguracji
|
|
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
|
+
// Główne źródło PO (najwyższy priorytet)
|
|
212
|
+
syncPO({
|
|
213
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
214
|
+
location: "main-translations",
|
|
215
|
+
priority: 10,
|
|
216
|
+
}),
|
|
217
|
+
|
|
218
|
+
// Zapasowe źródło PO (niższy priorytet)
|
|
219
|
+
syncPO({
|
|
220
|
+
source: ({ locale }) => `./fallback-locales/${locale}.po`,
|
|
221
|
+
location: "fallback-translations",
|
|
222
|
+
priority: 5,
|
|
223
|
+
}),
|
|
224
|
+
|
|
225
|
+
// Starsze źródło PO (najniższy priorytet)
|
|
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
|
+
## Plugin Load PO
|
|
238
|
+
|
|
239
|
+
### Szybki start
|
|
240
|
+
|
|
241
|
+
Dodaj plugin do swojego `intlayer.config.ts`, aby wczytać istniejące pliki PO jako słowniki Intlayer. Ten plugin jest tylko do odczytu (brak zapisu na dysku):
|
|
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
|
+
// Wczytaj komunikaty PO znajdujące się w dowolnym miejscu w drzewie źródeł
|
|
255
|
+
loadPO({
|
|
256
|
+
source: ({ key }) => `./src/**/${key}.i18n.po`,
|
|
257
|
+
// Ładuj jeden język na instancję pluginu (domyślnie defaultLocale z konfiguracji)
|
|
258
|
+
locale: Locales.ENGLISH,
|
|
259
|
+
priority: 0,
|
|
260
|
+
}),
|
|
261
|
+
],
|
|
262
|
+
};
|
|
263
|
+
|
|
264
|
+
export default config;
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Alternatywa: układ według języka, nadal tylko do odczytu (ładowany jest tylko wybrany język):
|
|
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
|
+
// Tylko pliki dla Locales.FRENCH zostaną wczytane z tego wzorca
|
|
281
|
+
source: ({ key, locale }) => `./locales/${locale}/${key}.po`,
|
|
282
|
+
locale: Locales.FRENCH,
|
|
283
|
+
}),
|
|
284
|
+
],
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
export default config;
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Jak to działa
|
|
291
|
+
|
|
292
|
+
- Wykrywanie: buduje glob z konstruktora `source` i zbiera pasujące pliki PO.
|
|
293
|
+
- Wczytywanie: ładuje każdy plik PO jako słownik Intlayer z podanym `locale`.
|
|
294
|
+
- Tylko do odczytu: nie zapisuje ani nie formatuje plików wynikowych; użyj `syncPO`, jeśli potrzebujesz synchronizacji w obie strony.
|
|
295
|
+
- Gotowy do automatycznego wypełniania: definiuje ścieżkę `fill`, aby `intlayer content fill` mógł uzupełnić brakujące klucze.
|
|
296
|
+
|
|
297
|
+
### API
|
|
298
|
+
|
|
299
|
+
```ts
|
|
300
|
+
loadPO({
|
|
301
|
+
// Buduj ścieżki do plików PO. `locale` jest opcjonalny, jeśli Twoja struktura nie ma segmentu języka
|
|
302
|
+
source: ({ key, locale }) => string,
|
|
303
|
+
|
|
304
|
+
// Docelowy język dla słowników ładowanych przez tę instancję pluginu
|
|
305
|
+
// Domyślnie configuration.internationalization.defaultLocale
|
|
306
|
+
locale?: Locale,
|
|
307
|
+
|
|
308
|
+
// Opcjonalna etykieta do identyfikacji źródła
|
|
309
|
+
location?: string, // domyślnie: "plugin"
|
|
310
|
+
|
|
311
|
+
// Priorytet używany do rozwiązywania konfliktów z innymi źródłami
|
|
312
|
+
priority?: number, // domyślnie: 0
|
|
313
|
+
});
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Zachowanie i konwencje
|
|
317
|
+
|
|
318
|
+
- Jeśli maska `source` zawiera symbol zastępczy języka, wczytywane są tylko pliki dla wybranego `locale`.
|
|
319
|
+
- Jeśli w masce nie ma segmentu `{key}`, kluczem słownika jest "index".
|
|
320
|
+
- Klucze są wyprowadzane ze ścieżek plików poprzez zastąpienie symbolu zastępczego `{key}` w konstruktorze `source`.
|
|
321
|
+
- Plugin używa tylko wykrytych plików i nie tworzy brakujących języków ani kluczy.
|
|
322
|
+
- Ścieżka `fill` jest wywnioskowana z `source` i używana do aktualizacji brakujących wartości przez CLI, gdy się na to zdecydujesz.
|
|
323
|
+
|
|
324
|
+
## Rozwiązywanie konfliktów
|
|
325
|
+
|
|
326
|
+
Gdy ten sam klucz tłumaczenia istnieje w wielu źródłach PO:
|
|
327
|
+
|
|
328
|
+
1. Plugin o najwyższym priorytecie określa ostateczną wartość
|
|
329
|
+
2. Źródła o niższym priorytecie są używane jako rezerwowe dla brakujących kluczy
|
|
330
|
+
3. Pozwala to na zachowanie starszych tłumaczeń przy jednoczesnym stopniowym przechodzeniu na nowe struktury
|
|
331
|
+
|
|
332
|
+
## CLI
|
|
333
|
+
|
|
334
|
+
Zsynchronizowane pliki PO będą traktowane jak inne pliki `.content`. Oznacza to, że wszystkie polecenia intlayer będą dostępne dla zsynchronizowanych plików PO. W tym:
|
|
335
|
+
|
|
336
|
+
- `intlayer content test` aby przetestować, czy brakuje tłumaczeń
|
|
337
|
+
- `intlayer content list` aby wyświetlić listę zsynchronizowanych plików PO
|
|
338
|
+
- `intlayer content fill` aby wypełnić brakujące tłumaczenia
|
|
339
|
+
- `intlayer content push` aby wysłać zsynchronizowane pliki PO
|
|
340
|
+
- `intlayer content pull` aby pobrać zsynchronizowane pliki PO
|
|
341
|
+
|
|
342
|
+
Zobacz [Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/cli/index.md) po więcej szczegółów.
|
|
343
|
+
|
|
344
|
+
## Ograniczenia (aktualne)
|
|
345
|
+
|
|
346
|
+
- Brak wsparcia dla wstawek lub liczb mnogich/ICU przy celowaniu w biblioteki firm trzecich.
|
|
347
|
+
- Edytor wizualny nie jest jeszcze dostępny dla runtime'ów innych niż Intlayer.
|
|
348
|
+
- Tylko synchronizacja PO; formaty katalogów inne niż PO nie są wspierane.
|
|
349
|
+
|
|
350
|
+
## Dlaczego to ważne
|
|
351
|
+
|
|
352
|
+
- Możemy polecać uznane rozwiązania i18n i pozycjonować Intlayer jako dodatek.
|
|
353
|
+
- Wykorzystujemy ich SEO/słowa kluczowe za pomocą samouczków, które kończą się sugestią użycia Intlayer do zarządzania plikami PO.
|
|
354
|
+
- Rozszerza grono odbiorców z „nowych projektów” na „każdy zespół korzystający już z i18n”.
|
package/docs/pt/mcp_server.md
CHANGED
|
@@ -23,7 +23,7 @@ history:
|
|
|
23
23
|
changes: "Adicionado configuração do Claude Desktop"
|
|
24
24
|
- version: 5.5.12
|
|
25
25
|
date: 2025-07-10
|
|
26
|
-
changes: "Adicionado transporte
|
|
26
|
+
changes: "Adicionado transporte Streamable HTTP e servidor remoto"
|
|
27
27
|
- version: 5.5.10
|
|
28
28
|
date: 2025-06-29
|
|
29
29
|
changes: "Histórico inicial"
|
|
@@ -51,12 +51,12 @@ Ao ativar o Servidor MCP Intlayer na sua IDE, você desbloqueia:
|
|
|
51
51
|
|
|
52
52
|
> Veja a lista completa de comandos e opções na [documentação do Intlayer CLI](https://github.com/aymericzip/intlayer/blob/main/docs/docs/pt/cli/index.md).
|
|
53
53
|
|
|
54
|
-
## Servidor local (stdio) vs Servidor remoto (
|
|
54
|
+
## Servidor local (stdio) vs Servidor remoto (Streamable HTTP)
|
|
55
55
|
|
|
56
56
|
O servidor MCP pode ser usado de duas maneiras:
|
|
57
57
|
|
|
58
58
|
- Servidor local (stdio)
|
|
59
|
-
- Servidor remoto (
|
|
59
|
+
- Servidor remoto (Streamable HTTP)
|
|
60
60
|
|
|
61
61
|
### Servidor local (stdio) (recomendado)
|
|
62
62
|
|
|
@@ -64,7 +64,7 @@ O Intlayer fornece um pacote NPM que pode ser instalado localmente na sua máqui
|
|
|
64
64
|
|
|
65
65
|
Este servidor é a forma recomendada de usar o servidor MCP, pois integra todos os recursos do servidor MCP, incluindo as ferramentas CLI.
|
|
66
66
|
|
|
67
|
-
### Servidor remoto (
|
|
67
|
+
### Servidor remoto (Streamable HTTP)
|
|
68
68
|
|
|
69
69
|
O servidor MCP também pode ser usado remotamente, utilizando o método de transporte SSE. Este servidor é hospedado pelo Intlayer e está disponível em https://mcp.intlayer.org. Este servidor pode ser acessado publicamente, sem qualquer autenticação, e é gratuito para uso.
|
|
70
70
|
|
|
@@ -97,7 +97,7 @@ bun x intlayer init mcp
|
|
|
97
97
|
Este comando irá:
|
|
98
98
|
|
|
99
99
|
1. Perguntar qual plataforma você está usando (Cursor, VS Code, Claude Desktop, etc.).
|
|
100
|
-
2. Perguntar qual método de transporte você deseja usar (Servidor local (stdio) ou Servidor remoto (
|
|
100
|
+
2. Perguntar qual método de transporte você deseja usar (Servidor local (stdio) ou Servidor remoto (Streamable HTTP)).
|
|
101
101
|
3. Atualizar automaticamente seu arquivo de configuração (ex: `.cursor/mcp.json`, `.vscode/mcp.json` ou a configuração global do Claude Desktop).
|
|
102
102
|
|
|
103
103
|
---
|
|
@@ -107,7 +107,7 @@ Este comando irá:
|
|
|
107
107
|
1. Abra a paleta de comandos (Ctrl+Shift+P ou Cmd+Shift+P).
|
|
108
108
|
2. Digite `Intlayer: Setup AI Agent Skills`
|
|
109
109
|
3. Escolha a plataforma que você usa (ex: `VS Code`, `Cursor`, `Windsurf`, `OpenCode`, `Claude Code`, `GitHub Copilot Workspace`, etc.).
|
|
110
|
-
4. Escolha o MCP para instalar (stdio,
|
|
110
|
+
4. Escolha o MCP para instalar (stdio, Streamable HTTP)
|
|
111
111
|
5. Pressione Enter.
|
|
112
112
|
|
|
113
113
|
---
|
|
@@ -131,16 +131,16 @@ Na raiz do seu projeto, adicione o seguinte arquivo de configuração `.cursor/m
|
|
|
131
131
|
}
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
### Servidor remoto (
|
|
134
|
+
### Servidor remoto (Streamable HTTP)
|
|
135
135
|
|
|
136
|
-
Para conectar a um servidor Intlayer MCP remoto usando Server-Sent Events (
|
|
136
|
+
Para conectar a um servidor Intlayer MCP remoto usando Server-Sent Events (Streamable HTTP), você pode configurar seu cliente MCP para se conectar ao serviço hospedado.
|
|
137
137
|
|
|
138
138
|
```json fileName=".cursor/mcp.json"
|
|
139
139
|
{
|
|
140
140
|
"mcpServers": {
|
|
141
|
-
"intlayer": {
|
|
142
|
-
"
|
|
143
|
-
"
|
|
141
|
+
"intlayer-sse": {
|
|
142
|
+
"command": "npx",
|
|
143
|
+
"args": ["-y", "mcp-remote@latest", "https://mcp.intlayer.org"]
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
}
|
|
@@ -172,16 +172,16 @@ Crie um arquivo `.vscode/mcp.json` na raiz do seu projeto:
|
|
|
172
172
|
}
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
### Servidor remoto (
|
|
175
|
+
### Servidor remoto (Streamable HTTP)
|
|
176
176
|
|
|
177
|
-
Para conectar a um servidor Intlayer MCP remoto usando Server-Sent Events (
|
|
177
|
+
Para conectar a um servidor Intlayer MCP remoto usando Server-Sent Events (Streamable HTTP), você pode configurar seu cliente MCP para se conectar ao serviço hospedado.
|
|
178
178
|
|
|
179
179
|
```json fileName=".vscode/mcp.json"
|
|
180
180
|
{
|
|
181
181
|
"servers": {
|
|
182
|
-
"intlayer": {
|
|
183
|
-
"
|
|
184
|
-
"
|
|
182
|
+
"intlayer-sse": {
|
|
183
|
+
"command": "npx",
|
|
184
|
+
"args": ["-y", "mcp-remote@latest", "https://mcp.intlayer.org"]
|
|
185
185
|
}
|
|
186
186
|
}
|
|
187
187
|
}
|
|
@@ -191,7 +191,7 @@ Para conectar a um servidor Intlayer MCP remoto usando Server-Sent Events (SSE),
|
|
|
191
191
|
|
|
192
192
|
## Configuração no ChatGPT
|
|
193
193
|
|
|
194
|
-
### Servidor remoto (
|
|
194
|
+
### Servidor remoto (Streamable HTTP)
|
|
195
195
|
|
|
196
196
|
Siga a [documentação oficial](https://platform.openai.com/docs/mcp#test-and-connect-your-mcp-server) para configurar o servidor MCP no ChatGPT.
|
|
197
197
|
|
|
@@ -232,6 +232,19 @@ Caminho do arquivo de configuração:
|
|
|
232
232
|
}
|
|
233
233
|
```
|
|
234
234
|
|
|
235
|
+
### Servidor remoto (Streamable HTTP)
|
|
236
|
+
|
|
237
|
+
```json fileName="claude_desktop_config.json"
|
|
238
|
+
{
|
|
239
|
+
"mcpServers": {
|
|
240
|
+
"intlayer-sse": {
|
|
241
|
+
"command": "npx",
|
|
242
|
+
"args": ["-y", "mcp-remote@latest", "https://mcp.intlayer.org"]
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
235
248
|
---
|
|
236
249
|
|
|
237
250
|
## Usando o Servidor MCP via CLI
|