@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
|
+
既存の i18n スタックのアドオンとして Intlayer を使用します。このプラグインは、Gettext PO メッセージを Intlayer 辞書と同期させ、以下のことを可能にします。
|
|
26
|
+
|
|
27
|
+
- 既存の PO ベースの翻訳ワークフローを維持する。
|
|
28
|
+
- アプリをリファクタリングすることなく、Intlayer(CLI、CI、プロバイダー、CMS)を使用してメッセージを管理および翻訳する。
|
|
29
|
+
- Intlayer を PO 管理レイヤーとして提案しながら、各エコシステムをターゲットにしたチュートリアルや SEO コンテンツをリリースする。
|
|
30
|
+
|
|
31
|
+
注意点と現在の範囲:
|
|
32
|
+
|
|
33
|
+
- CMS への外部化は、翻訳と通常のテキストで機能します。
|
|
34
|
+
- 挿入、複数形/ICU、または PO エントリ自体の内部にある他のライブラリの高度なランタイム機能はまだサポートされていません。
|
|
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
|
+
このパッケージは 2 つのプラグインを提供します。
|
|
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, // `./locales/en/${key}.po` のファイルよりもこれらの 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
|
+
代替案:ロケールごとに 1 つのファイル:
|
|
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
|
+
既存の PO ファイルを Intlayer 辞書として取り込むために、プラグインを `intlayer.config.ts` に追加します。このプラグインは読み取り専用です(ディスクへの書き込みはありません)。
|
|
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
|
+
// プラグインインスタンスごとに単一のロケールをロードします (デフォルトは config の 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
|
+
- 取り込み: 各 PO ファイルを指定された `locale` で Intlayer 辞書として読み込みます。
|
|
294
|
+
- 読み取り専用: 出力ファイルを書き込んだりフォーマットしたりしません。ラウンドトリップ同期が必要な場合は `syncPO` を使用してください。
|
|
295
|
+
- 自動補完対応: `intlayer content fill` が不足しているキーを入力できるように `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` ファイルと同様に扱われます。つまり、同期された PO ファイルに対してすべての intlayer コマンドが利用可能になります。以下を含みます。
|
|
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
|
+
- Intlayer を使用して PO を管理することを提案して終わるチュートリアルで、彼らの SEO/キーワードを活用します。
|
|
354
|
+
- 対応可能なオーディエンスを「新しいプロジェクト」から「すでに i18n を使用しているチーム」へと拡大します。
|
package/docs/ko/mcp_server.md
CHANGED
|
@@ -23,7 +23,7 @@ history:
|
|
|
23
23
|
changes: "Claude Desktop 설정 추가"
|
|
24
24
|
- version: 5.5.12
|
|
25
25
|
date: 2025-07-10
|
|
26
|
-
changes: "
|
|
26
|
+
changes: "Streamable HTTP 전송 및 원격 서버 추가"
|
|
27
27
|
- version: 5.5.10
|
|
28
28
|
date: 2025-06-29
|
|
29
29
|
changes: "초기 기록"
|
|
@@ -51,12 +51,12 @@ Intlayer MCP 서버를 IDE에서 활성화하면 다음과 같은 기능을 사
|
|
|
51
51
|
|
|
52
52
|
> 전체 명령어 및 옵션 목록은 [Intlayer CLI 문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/index.md)에서 확인하세요.
|
|
53
53
|
|
|
54
|
-
## 로컬 서버 (stdio) vs 원격 서버 (
|
|
54
|
+
## 로컬 서버 (stdio) vs 원격 서버 (Streamable HTTP)
|
|
55
55
|
|
|
56
56
|
MCP 서버는 두 가지 방식으로 사용할 수 있습니다:
|
|
57
57
|
|
|
58
58
|
- 로컬 서버 (stdio)
|
|
59
|
-
- 원격 서버 (
|
|
59
|
+
- 원격 서버 (Streamable HTTP)
|
|
60
60
|
|
|
61
61
|
### 로컬 서버 (stdio) (권장)
|
|
62
62
|
|
|
@@ -64,9 +64,9 @@ Intlayer는 사용자의 컴퓨터에 로컬로 설치할 수 있는 NPM 패키
|
|
|
64
64
|
|
|
65
65
|
이 서버는 MCP 서버를 사용하는 권장 방법입니다. CLI 도구를 포함한 MCP 서버의 모든 기능이 통합되어 있기 때문입니다.
|
|
66
66
|
|
|
67
|
-
### 원격 서버 (
|
|
67
|
+
### 원격 서버 (Streamable HTTP)
|
|
68
68
|
|
|
69
|
-
MCP 서버는
|
|
69
|
+
MCP 서버는 Streamable HTTP 전송 방식을 사용하여 원격으로도 사용할 수 있습니다. 이 서버는 Intlayer에서 호스팅하며 https://mcp.intlayer.org 에서 이용할 수 있습니다. 이 서버는 인증 없이 공개적으로 접근할 수 있으며 무료로 사용할 수 있습니다.
|
|
70
70
|
|
|
71
71
|
원격 서버는 CLI 도구, AI 자동완성 등과 통합되어 있지 않다는 점에 유의하세요. 원격 서버는 Intlayer 생태계와 관련된 문서와 상호작용하여 AI 어시스턴트를 돕기 위한 용도로만 사용됩니다.
|
|
72
72
|
|
|
@@ -97,7 +97,7 @@ bun x intlayer init mcp
|
|
|
97
97
|
이 명령은 다음을 수행합니다:
|
|
98
98
|
|
|
99
99
|
1. 사용 중인 플랫폼(Cursor, VS Code, Claude Desktop 등)을 묻습니다.
|
|
100
|
-
2. 사용하려는 전송 방식(로컬 서버(stdio) 또는 원격 서버(
|
|
100
|
+
2. 사용하려는 전송 방식(로컬 서버(stdio) 또는 원격 서버(Streamable HTTP))을 묻습니다.
|
|
101
101
|
3. 구성 파일(예: `.cursor/mcp.json`, `.vscode/mcp.json` 또는 글로벌 Claude Desktop 설정)을 자동으로 업데이트합니다.
|
|
102
102
|
|
|
103
103
|
---
|
|
@@ -107,7 +107,7 @@ bun x intlayer init mcp
|
|
|
107
107
|
1. 명령 팔레트를 엽니다(Ctrl+Shift+P 또는 Cmd+Shift+P).
|
|
108
108
|
2. `Intlayer: Setup AI Agent Skills`를 입력합니다.
|
|
109
109
|
3. 사용하는 플랫폼을 선택합니다(예: `VS Code`, `Cursor`, `Windsurf`, `OpenCode`, `Claude Code`, `GitHub Copilot Workspace` 등).
|
|
110
|
-
4. 설치할 MCP를 선택합니다(stdio,
|
|
110
|
+
4. 설치할 MCP를 선택합니다(stdio, Streamable HTTP).
|
|
111
111
|
5. Enter를 누릅니다.
|
|
112
112
|
|
|
113
113
|
---
|
|
@@ -131,16 +131,16 @@ Cursor에서 MCP 서버를 구성하려면 [공식 문서](https://docs.cursor.c
|
|
|
131
131
|
}
|
|
132
132
|
```
|
|
133
133
|
|
|
134
|
-
### 원격 서버 (
|
|
134
|
+
### 원격 서버 (Streamable HTTP)
|
|
135
135
|
|
|
136
|
-
Server-Sent Events (
|
|
136
|
+
Server-Sent Events (Streamable HTTP)를 사용하여 원격 Intlayer MCP 서버에 연결하려면, MCP 클라이언트를 호스팅된 서비스에 연결하도록 구성할 수 있습니다.
|
|
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 @@ VS Code에서 Intlayer MCP 서버를 사용하려면 작업 공간 또는 사용
|
|
|
172
172
|
}
|
|
173
173
|
```
|
|
174
174
|
|
|
175
|
-
### 원격 서버 (
|
|
175
|
+
### 원격 서버 (Streamable HTTP)
|
|
176
176
|
|
|
177
|
-
Server-Sent Events (
|
|
177
|
+
Server-Sent Events (Streamable HTTP)를 사용하여 원격 Intlayer MCP 서버에 연결하려면, MCP 클라이언트를 호스팅된 서비스에 연결하도록 구성할 수 있습니다.
|
|
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 @@ Server-Sent Events (SSE)를 사용하여 원격 Intlayer MCP 서버에 연결하
|
|
|
191
191
|
|
|
192
192
|
## ChatGPT 설정
|
|
193
193
|
|
|
194
|
-
### 원격 서버 (
|
|
194
|
+
### 원격 서버 (Streamable HTTP)
|
|
195
195
|
|
|
196
196
|
ChatGPT에서 MCP 서버를 구성하려면 [공식 문서](https://platform.openai.com/docs/mcp#test-and-connect-your-mcp-server)를 참조하세요.
|
|
197
197
|
|
|
@@ -232,6 +232,19 @@ ChatGPT에서 MCP 서버를 구성하려면 [공식 문서](https://platform.ope
|
|
|
232
232
|
}
|
|
233
233
|
```
|
|
234
234
|
|
|
235
|
+
### 원격 서버 (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
|
## CLI를 통한 MCP 서버 사용
|