@intlayer/docs 6.0.1 → 6.0.2
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/blog.cjs.map +1 -1
- package/dist/cjs/common.cjs +6 -5
- package/dist/cjs/common.cjs.map +1 -1
- package/dist/cjs/generated/blog.entry.cjs +318 -1863
- package/dist/cjs/generated/blog.entry.cjs.map +1 -1
- package/dist/cjs/generated/docs.entry.cjs +1317 -6282
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/cjs/generated/frequentQuestions.entry.cjs +197 -1182
- package/dist/cjs/generated/frequentQuestions.entry.cjs.map +1 -1
- package/dist/cjs/generated/legal.entry.cjs +43 -84
- package/dist/cjs/generated/legal.entry.cjs.map +1 -1
- package/dist/esm/blog.mjs.map +1 -1
- package/dist/esm/common.mjs +2 -5
- package/dist/esm/common.mjs.map +1 -1
- package/dist/esm/generated/blog.entry.mjs +318 -1863
- package/dist/esm/generated/blog.entry.mjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +1317 -6282
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/esm/generated/frequentQuestions.entry.mjs +197 -1182
- package/dist/esm/generated/frequentQuestions.entry.mjs.map +1 -1
- package/dist/esm/generated/legal.entry.mjs +43 -84
- package/dist/esm/generated/legal.entry.mjs.map +1 -1
- package/dist/types/blog.d.ts +1 -1
- package/dist/types/blog.d.ts.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/generated/blog.entry.d.ts +1 -1
- package/dist/types/generated/blog.entry.d.ts.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -1
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts +1 -1
- package/dist/types/generated/frequentQuestions.entry.d.ts.map +1 -1
- package/dist/types/generated/legal.entry.d.ts +1 -1
- package/dist/types/generated/legal.entry.d.ts.map +1 -1
- package/docs/ar/intlayer_CMS.md +261 -85
- package/docs/ar/releases/v6.md +273 -0
- package/docs/ar/roadmap.md +1 -3
- package/docs/ar/vs_code_extension.md +94 -63
- package/docs/de/intlayer_CMS.md +247 -65
- package/docs/de/releases/v6.md +298 -0
- package/docs/de/roadmap.md +1 -3
- package/docs/de/vs_code_extension.md +89 -58
- package/docs/en/configuration.md +9 -2
- package/docs/en/intlayer_CMS.md +205 -23
- package/docs/en/intlayer_cli.md +4 -4
- package/docs/en/intlayer_visual_editor.md +7 -6
- package/docs/en/intlayer_with_nextjs_14.md +17 -1
- package/docs/en/intlayer_with_nextjs_15.md +17 -1
- package/docs/en/releases/v6.md +268 -0
- package/docs/en/roadmap.md +1 -3
- package/docs/en/vs_code_extension.md +79 -49
- package/docs/en-GB/intlayer_CMS.md +216 -52
- package/docs/en-GB/releases/v6.md +297 -0
- package/docs/en-GB/roadmap.md +1 -3
- package/docs/en-GB/vs_code_extension.md +79 -48
- package/docs/es/intlayer_CMS.md +257 -84
- package/docs/es/releases/v6.md +274 -0
- package/docs/es/roadmap.md +1 -3
- package/docs/es/vs_code_extension.md +90 -60
- package/docs/fr/intlayer_CMS.md +250 -68
- package/docs/fr/releases/v6.md +274 -0
- package/docs/fr/roadmap.md +1 -3
- package/docs/fr/vs_code_extension.md +94 -63
- package/docs/hi/intlayer_CMS.md +253 -77
- package/docs/hi/releases/v6.md +273 -0
- package/docs/hi/roadmap.md +1 -3
- package/docs/hi/vs_code_extension.md +92 -61
- package/docs/it/intlayer_CMS.md +251 -73
- package/docs/it/releases/v6.md +273 -0
- package/docs/it/roadmap.md +1 -3
- package/docs/it/vs_code_extension.md +94 -63
- package/docs/ja/intlayer_CMS.md +282 -97
- package/docs/ja/releases/v6.md +273 -0
- package/docs/ja/roadmap.md +1 -3
- package/docs/ja/vs_code_extension.md +99 -68
- package/docs/ko/intlayer_CMS.md +267 -93
- package/docs/ko/releases/v6.md +273 -0
- package/docs/ko/roadmap.md +1 -3
- package/docs/ko/vs_code_extension.md +88 -57
- package/docs/pt/intlayer_CMS.md +261 -83
- package/docs/pt/releases/v6.md +273 -0
- package/docs/pt/roadmap.md +1 -3
- package/docs/pt/vs_code_extension.md +89 -58
- package/docs/ru/intlayer_CMS.md +240 -65
- package/docs/ru/releases/v6.md +274 -0
- package/docs/ru/roadmap.md +1 -1
- package/docs/ru/vs_code_extension.md +83 -52
- package/docs/tr/intlayer_CMS.md +278 -96
- package/docs/tr/intlayer_with_nextjs_page_router.md +1 -1
- package/docs/tr/intlayer_with_tanstack.md +3 -0
- package/docs/tr/releases/v6.md +273 -0
- package/docs/tr/roadmap.md +1 -1
- package/docs/tr/vs_code_extension.md +100 -71
- package/docs/zh/intlayer_CMS.md +257 -76
- package/docs/zh/releases/v6.md +273 -0
- package/docs/zh/roadmap.md +1 -3
- package/docs/zh/vs_code_extension.md +99 -68
- package/package.json +11 -10
- package/src/blog.ts +1 -1
- package/src/common.ts +2 -6
- package/src/generated/blog.entry.ts +323 -1864
- package/src/generated/docs.entry.ts +1317 -6278
- package/src/generated/frequentQuestions.entry.ts +202 -1183
- package/src/generated/legal.entry.ts +48 -85
package/docs/ja/intlayer_CMS.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
createdAt:
|
|
3
|
-
updatedAt: 2025-
|
|
4
|
-
title: Intlayer CMS | Intlayer CMS
|
|
5
|
-
description: Intlayer CMS
|
|
2
|
+
createdAt: 2025-08-23
|
|
3
|
+
updatedAt: 2025-08-23
|
|
4
|
+
title: Intlayer CMS | コンテンツをIntlayer CMSに外部化する
|
|
5
|
+
description: コンテンツ管理をチームに委任するために、コンテンツをIntlayer CMSに外部化します。
|
|
6
6
|
keywords:
|
|
7
7
|
- CMS
|
|
8
8
|
- ビジュアルエディター
|
|
9
9
|
- 国際化
|
|
10
|
-
-
|
|
10
|
+
- ドキュメンテーション
|
|
11
11
|
- Intlayer
|
|
12
12
|
- Next.js
|
|
13
13
|
- JavaScript
|
|
@@ -19,70 +19,70 @@ slugs:
|
|
|
19
19
|
youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
|
|
20
20
|
---
|
|
21
21
|
|
|
22
|
-
# Intlayer
|
|
22
|
+
# Intlayer コンテンツ管理システム(CMS)ドキュメント
|
|
23
23
|
|
|
24
|
-
<iframe title="
|
|
24
|
+
<iframe title="あなたのWebアプリのためのビジュアルエディター + CMS: Intlayerの説明" class="m-auto aspect-[16/9] w-full overflow-hidden rounded-lg border-0" allow="autoplay; gyroscope;" loading="lazy" width="1080" height="auto" src="https://www.youtube.com/embed/UDDTnirwi_4?autoplay=0&origin=http://intlayer.org&controls=0&rel=1"/>
|
|
25
25
|
|
|
26
|
-
Intlayer CMS
|
|
26
|
+
Intlayer CMSは、Intlayerプロジェクトのコンテンツを外部化できるアプリケーションです。
|
|
27
27
|
|
|
28
|
-
そのために、Intlayer
|
|
28
|
+
そのために、Intlayerは「遠隔辞書(distant dictionaries)」の概念を導入しています。
|
|
29
29
|
|
|
30
30
|

|
|
31
31
|
|
|
32
32
|
## 遠隔辞書の理解
|
|
33
33
|
|
|
34
|
-
Intlayer
|
|
34
|
+
Intlayerは「ローカル辞書」と「遠隔辞書」を区別しています。
|
|
35
35
|
|
|
36
|
-
-
|
|
36
|
+
- 「ローカル」辞書とは、Intlayerプロジェクト内で宣言されている辞書のことです。例えば、ボタンの宣言ファイルやナビゲーションバーなどです。この場合、コンテンツは頻繁に変更されることを想定していないため、コンテンツを外部化することは意味がありません。
|
|
37
37
|
|
|
38
|
-
-
|
|
38
|
+
- 「遠隔」辞書とは、Intlayer CMSを通じて管理される辞書のことです。これは、チームがウェブサイト上で直接コンテンツを管理できるようにするために役立ち、さらにA/Bテスト機能やSEOの自動最適化を利用することも目的としています。
|
|
39
39
|
|
|
40
|
-
##
|
|
40
|
+
## ビジュアルエディターとCMSの違い
|
|
41
41
|
|
|
42
|
-
[Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)
|
|
42
|
+
[Intlayer Visual](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md) エディターは、ローカル辞書のコンテンツをビジュアルエディターで管理できるツールです。変更が行われると、コンテンツはコードベースに置き換えられます。つまり、アプリケーションが再ビルドされ、ページがリロードされて新しいコンテンツが表示されることを意味します。
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
これに対して、Intlayer CMSは、遠隔辞書のコンテンツをビジュアルエディターで管理できるツールです。変更が行われても、コンテンツはコードベースに影響を与えません。そして、ウェブサイトは自動的に変更されたコンテンツを表示します。
|
|
45
45
|
|
|
46
46
|
## 統合
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
パッケージのインストール方法の詳細については、以下の該当セクションを参照してください。
|
|
49
49
|
|
|
50
|
-
### Next.js
|
|
50
|
+
### Next.jsとの統合
|
|
51
51
|
|
|
52
|
-
Next.js
|
|
52
|
+
Next.jsとの統合については、[セットアップガイド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_nextjs_15.md)を参照してください。
|
|
53
53
|
|
|
54
|
-
### Create React App
|
|
54
|
+
### Create React Appとの統合
|
|
55
55
|
|
|
56
|
-
Create React App
|
|
56
|
+
Create React Appとの統合については、[セットアップガイド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_create_react_app.md)を参照してください。
|
|
57
57
|
|
|
58
|
-
### Vite + React
|
|
58
|
+
### Vite + Reactとの統合
|
|
59
59
|
|
|
60
|
-
Vite + React
|
|
60
|
+
Vite + Reactとの統合については、[セットアップガイド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_with_vite+react.md)を参照してください。
|
|
61
61
|
|
|
62
62
|
## 設定
|
|
63
63
|
|
|
64
|
-
Intlayer
|
|
64
|
+
Intlayerの設定ファイル内で、CMSの設定をカスタマイズできます:
|
|
65
65
|
|
|
66
66
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
67
67
|
import type { IntlayerConfig } from "intlayer";
|
|
68
68
|
|
|
69
69
|
const config: IntlayerConfig = {
|
|
70
|
-
// ...
|
|
70
|
+
// ... その他の設定
|
|
71
71
|
editor: {
|
|
72
72
|
/**
|
|
73
73
|
* 必須
|
|
74
74
|
*
|
|
75
|
-
* アプリケーションの
|
|
76
|
-
*
|
|
75
|
+
* アプリケーションのURL。
|
|
76
|
+
* これはビジュアルエディターがターゲットとするURLです。
|
|
77
77
|
*/
|
|
78
78
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
81
|
* 必須
|
|
82
82
|
*
|
|
83
|
-
*
|
|
83
|
+
* エディターを有効にするためにクライアントIDとクライアントシークレットが必要です。
|
|
84
84
|
* これらはコンテンツを編集しているユーザーを識別するために使用されます。
|
|
85
|
-
* Intlayer
|
|
85
|
+
* Intlayerダッシュボードのプロジェクト(https://intlayer.org/dashboard/projects)で新しいクライアントを作成することで取得できます。
|
|
86
86
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
87
87
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
88
88
|
*/
|
|
@@ -92,19 +92,19 @@ const config: IntlayerConfig = {
|
|
|
92
92
|
/**
|
|
93
93
|
* 任意
|
|
94
94
|
*
|
|
95
|
-
* Intlayer CMS
|
|
95
|
+
* Intlayer CMSをセルフホスティングしている場合、CMSのURLを設定できます。
|
|
96
96
|
*
|
|
97
|
-
* Intlayer CMS
|
|
97
|
+
* Intlayer CMSのURL。
|
|
98
98
|
* デフォルトでは https://intlayer.org に設定されています。
|
|
99
99
|
*/
|
|
100
100
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
101
101
|
|
|
102
102
|
/**
|
|
103
|
-
*
|
|
103
|
+
* オプション
|
|
104
104
|
*
|
|
105
|
-
* Intlayer CMS
|
|
105
|
+
* Intlayer CMSをセルフホスティングしている場合、バックエンドのURLを設定できます。
|
|
106
106
|
*
|
|
107
|
-
* Intlayer CMS
|
|
107
|
+
* Intlayer CMSのURL。
|
|
108
108
|
* デフォルトでは https://back.intlayer.org に設定されています。
|
|
109
109
|
*/
|
|
110
110
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
@@ -122,17 +122,17 @@ const config = {
|
|
|
122
122
|
/**
|
|
123
123
|
* 必須
|
|
124
124
|
*
|
|
125
|
-
* アプリケーションの
|
|
126
|
-
*
|
|
125
|
+
* アプリケーションのURL。
|
|
126
|
+
* これはビジュアルエディタが対象とするURLです。
|
|
127
127
|
*/
|
|
128
128
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
129
129
|
|
|
130
130
|
/**
|
|
131
131
|
* 必須
|
|
132
132
|
*
|
|
133
|
-
*
|
|
133
|
+
* エディタを有効にするには、クライアントIDとクライアントシークレットが必要です。
|
|
134
134
|
* これらはコンテンツを編集しているユーザーを識別するために使用されます。
|
|
135
|
-
* Intlayer
|
|
135
|
+
* Intlayerダッシュボードのプロジェクト(https://intlayer.org/dashboard/projects)で新しいクライアントを作成することで取得できます。
|
|
136
136
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
137
137
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
138
138
|
*/
|
|
@@ -142,19 +142,19 @@ const config = {
|
|
|
142
142
|
/**
|
|
143
143
|
* 任意
|
|
144
144
|
*
|
|
145
|
-
* Intlayer CMS
|
|
145
|
+
* Intlayer CMSをセルフホスティングしている場合、CMSのURLを設定できます。
|
|
146
146
|
*
|
|
147
|
-
* Intlayer CMS
|
|
147
|
+
* Intlayer CMSのURL。
|
|
148
148
|
* デフォルトでは https://intlayer.org に設定されています。
|
|
149
149
|
*/
|
|
150
150
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
151
151
|
|
|
152
152
|
/**
|
|
153
|
-
*
|
|
153
|
+
* オプション
|
|
154
154
|
*
|
|
155
|
-
* Intlayer CMS
|
|
155
|
+
* Intlayer CMSをセルフホスティングしている場合、バックエンドのURLを設定できます。
|
|
156
156
|
*
|
|
157
|
-
* Intlayer CMS
|
|
157
|
+
* Intlayer CMSのURL。
|
|
158
158
|
* デフォルトでは https://back.intlayer.org に設定されています。
|
|
159
159
|
*/
|
|
160
160
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
@@ -167,22 +167,22 @@ export default config;
|
|
|
167
167
|
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
168
168
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
169
169
|
const config = {
|
|
170
|
-
// ...
|
|
170
|
+
// ... その他の設定
|
|
171
171
|
editor: {
|
|
172
172
|
/**
|
|
173
173
|
* 必須
|
|
174
174
|
*
|
|
175
|
-
* アプリケーションの
|
|
176
|
-
*
|
|
175
|
+
* アプリケーションのURL。
|
|
176
|
+
* これはビジュアルエディターがターゲットとするURLです。
|
|
177
177
|
*/
|
|
178
178
|
applicationURL: process.env.INTLAYER_APPLICATION_URL,
|
|
179
179
|
|
|
180
180
|
/**
|
|
181
181
|
* 必須
|
|
182
182
|
*
|
|
183
|
-
*
|
|
183
|
+
* エディターを有効にするには、クライアントIDとクライアントシークレットが必要です。
|
|
184
184
|
* これらはコンテンツを編集しているユーザーを識別するために使用されます。
|
|
185
|
-
* Intlayer
|
|
185
|
+
* Intlayerダッシュボードのプロジェクトページ(https://intlayer.org/dashboard/projects)で新しいクライアントを作成することで取得できます。
|
|
186
186
|
* clientId: process.env.INTLAYER_CLIENT_ID,
|
|
187
187
|
* clientSecret: process.env.INTLAYER_CLIENT_SECRET,
|
|
188
188
|
*/
|
|
@@ -192,18 +192,19 @@ const config = {
|
|
|
192
192
|
/**
|
|
193
193
|
* 任意
|
|
194
194
|
*
|
|
195
|
-
* Intlayer CMS
|
|
195
|
+
* Intlayer CMSをセルフホスティングしている場合、CMSのURLを設定できます。
|
|
196
196
|
*
|
|
197
|
-
* Intlayer CMS
|
|
197
|
+
* Intlayer CMSのURL。
|
|
198
198
|
* デフォルトでは https://intlayer.org に設定されています。
|
|
199
|
+
*/
|
|
199
200
|
cmsURL: process.env.INTLAYER_CMS_URL,
|
|
200
201
|
|
|
201
202
|
/**
|
|
202
|
-
*
|
|
203
|
+
* オプション
|
|
203
204
|
*
|
|
204
|
-
* Intlayer CMS
|
|
205
|
+
* Intlayer CMSをセルフホスティングしている場合、バックエンドのURLを設定できます。
|
|
205
206
|
*
|
|
206
|
-
* Intlayer CMS
|
|
207
|
+
* Intlayer CMSのURLです。
|
|
207
208
|
* デフォルトでは https://back.intlayer.org に設定されています。
|
|
208
209
|
*/
|
|
209
210
|
backendURL: process.env.INTLAYER_BACKEND_URL,
|
|
@@ -213,73 +214,88 @@ const config = {
|
|
|
213
214
|
module.exports = config;
|
|
214
215
|
```
|
|
215
216
|
|
|
216
|
-
> クライアント
|
|
217
|
+
> クライアントIDとクライアントシークレットをお持ちでない場合は、[Intlayerダッシュボード - プロジェクト](https://intlayer.org/dashboard/projects)で新しいクライアントを作成して取得できます。
|
|
217
218
|
|
|
218
219
|
> 利用可能なすべてのパラメータについては、[設定ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)を参照してください。
|
|
219
220
|
|
|
220
|
-
## CMS
|
|
221
|
+
## CMSの使用方法
|
|
221
222
|
|
|
222
|
-
###
|
|
223
|
+
### 設定のプッシュ
|
|
223
224
|
|
|
224
|
-
Intlayer CMS
|
|
225
|
+
Intlayer CMSを設定するには、[intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ja/intlayer_cli.md)コマンドを使用できます。
|
|
225
226
|
|
|
226
227
|
```bash
|
|
227
228
|
npx intlayer config push
|
|
228
229
|
```
|
|
229
230
|
|
|
230
|
-
> `intlayer.config.ts
|
|
231
|
+
> `intlayer.config.ts`設定ファイルで環境変数を使用している場合は、`--env`引数を使って希望の環境を指定できます:
|
|
231
232
|
|
|
232
233
|
```bash
|
|
233
234
|
npx intlayer config push --env production
|
|
234
235
|
```
|
|
235
236
|
|
|
236
|
-
このコマンドは設定を
|
|
237
|
+
このコマンドは設定をIntlayer CMSにアップロードします。
|
|
237
238
|
|
|
238
239
|
### 辞書をプッシュする
|
|
239
240
|
|
|
240
|
-
|
|
241
|
+
ロケール辞書をリモート辞書に変換するには、[intlayer CLI](https://github.com/aymericzip/intlayer/tree/main/docs/ja/intlayer_cli.md)コマンドを使用できます。
|
|
241
242
|
|
|
242
243
|
```bash
|
|
243
244
|
npx intlayer dictionary push -d my-first-dictionary-key
|
|
244
245
|
```
|
|
245
246
|
|
|
246
|
-
> `intlayer.config.ts` 設定ファイルで環境変数を使用している場合は、`--env`
|
|
247
|
+
> `intlayer.config.ts` 設定ファイルで環境変数を使用している場合は、`--env` 引数を使って希望の環境を指定できます。
|
|
247
248
|
|
|
248
249
|
```bash
|
|
249
250
|
npx intlayer dictionary push -d my-first-dictionary-key --env production
|
|
250
251
|
```
|
|
251
252
|
|
|
252
|
-
|
|
253
|
+
このコマンドは初期コンテンツの辞書をアップロードし、Intlayer プラットフォームを通じて非同期に取得および編集できるようにします。
|
|
253
254
|
|
|
254
|
-
###
|
|
255
|
+
### 辞書の編集
|
|
255
256
|
|
|
256
257
|
その後、[Intlayer CMS](https://intlayer.org/dashboard/content) で辞書を確認および管理できるようになります。
|
|
257
258
|
|
|
258
|
-
##
|
|
259
|
+
## ライブ同期
|
|
260
|
+
|
|
261
|
+
ライブ同期は、アプリが実行時に CMS のコンテンツ変更を反映できるようにします。再ビルドや再デプロイは不要です。有効にすると、更新がライブ同期サーバーにストリームされ、アプリケーションが読み込む辞書が更新されます。
|
|
259
262
|
|
|
260
|
-
|
|
263
|
+
> Live Syncは継続的なサーバー接続を必要とし、エンタープライズプランで利用可能です。
|
|
261
264
|
|
|
262
|
-
|
|
263
|
-
[`liveSync`](https://intlayer.org/doc/concept/configuration#editor-configuration) 設定を有効にすると、変更が検出された際にアプリケーションは自動的に更新されたコンテンツを置き換えます。
|
|
265
|
+
Intlayerの設定を更新してLive Syncを有効にします:
|
|
264
266
|
|
|
265
267
|
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
266
268
|
import type { IntlayerConfig } from "intlayer";
|
|
267
269
|
|
|
268
270
|
const config: IntlayerConfig = {
|
|
269
|
-
// ...
|
|
271
|
+
// ... その他の設定
|
|
270
272
|
editor: {
|
|
271
|
-
// ... 他の設定
|
|
272
|
-
|
|
273
273
|
/**
|
|
274
|
-
*
|
|
275
|
-
*
|
|
274
|
+
* 変更が検出されたときにロケール設定のホットリロードを有効にします。
|
|
275
|
+
* 例えば、辞書が追加または更新された場合、アプリケーションは
|
|
276
|
+
* ページに表示されるコンテンツを更新します。
|
|
276
277
|
*
|
|
277
|
-
*
|
|
278
|
+
* ホットリロードは継続的なサーバー接続を必要とするため、
|
|
279
|
+
* `enterprise`プランのクライアントのみ利用可能です。
|
|
278
280
|
*
|
|
279
281
|
* デフォルト: false
|
|
280
282
|
*/
|
|
281
283
|
liveSync: true,
|
|
282
284
|
},
|
|
285
|
+
build: {
|
|
286
|
+
/**
|
|
287
|
+
* 辞書のインポート方法を制御します:
|
|
288
|
+
*
|
|
289
|
+
* - "live":辞書はLive Sync APIを使用して動的に取得されます。
|
|
290
|
+
* useIntlayerの代わりにuseDictionaryDynamicを使用します。
|
|
291
|
+
*
|
|
292
|
+
* 注意:ライブモードはLive Sync APIを使用して辞書を取得します。API呼び出しが
|
|
293
|
+
* 失敗した場合、辞書は動的にインポートされます。
|
|
294
|
+
* 注意:リモートコンテンツかつ"live"フラグが付いた辞書のみがライブモードを使用します。
|
|
295
|
+
* その他はパフォーマンスのために動的モードを使用します。
|
|
296
|
+
*/
|
|
297
|
+
importMode: "live",
|
|
298
|
+
},
|
|
283
299
|
};
|
|
284
300
|
|
|
285
301
|
export default config;
|
|
@@ -288,20 +304,34 @@ export default config;
|
|
|
288
304
|
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
289
305
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
290
306
|
const config = {
|
|
291
|
-
// ...
|
|
307
|
+
// ... その他の設定
|
|
292
308
|
editor: {
|
|
293
|
-
// ... 他の設定
|
|
294
|
-
|
|
295
309
|
/**
|
|
296
|
-
*
|
|
297
|
-
*
|
|
310
|
+
* ロケール設定の変更が検出されたときにホットリロードを有効にします。
|
|
311
|
+
* 例えば、辞書が追加または更新された場合、アプリケーションは
|
|
312
|
+
* ページに表示されるコンテンツを更新します。
|
|
298
313
|
*
|
|
299
|
-
*
|
|
314
|
+
* ホットリロードはサーバーへの継続的な接続を必要とするため、
|
|
315
|
+
* `enterprise` プランのクライアントのみ利用可能です。
|
|
300
316
|
*
|
|
301
317
|
* デフォルト: false
|
|
302
318
|
*/
|
|
303
319
|
liveSync: true,
|
|
304
320
|
},
|
|
321
|
+
build: {
|
|
322
|
+
/**
|
|
323
|
+
* 辞書のインポート方法を制御します:
|
|
324
|
+
*
|
|
325
|
+
* - "live": Live Sync APIを使用して辞書を動的に取得します。
|
|
326
|
+
* useIntlayerをuseDictionaryDynamicに置き換えます。
|
|
327
|
+
*
|
|
328
|
+
* 注意: ライブモードはLive Sync APIを使用して辞書を取得します。API呼び出しが
|
|
329
|
+
* 失敗した場合、辞書は動的にインポートされます。
|
|
330
|
+
* 注意: リモートコンテンツを持ち、かつ "live" フラグが設定された辞書のみがライブモードを使用します。
|
|
331
|
+
* その他の辞書はパフォーマンスのためにダイナミックモードを使用します。
|
|
332
|
+
*/
|
|
333
|
+
importMode: "live",
|
|
334
|
+
},
|
|
305
335
|
};
|
|
306
336
|
|
|
307
337
|
export default config;
|
|
@@ -310,46 +340,201 @@ export default config;
|
|
|
310
340
|
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
311
341
|
/** @type {import('intlayer').IntlayerConfig} */
|
|
312
342
|
const config = {
|
|
313
|
-
// ...
|
|
343
|
+
// ... その他の設定
|
|
314
344
|
editor: {
|
|
315
|
-
// ... 他の設定
|
|
316
|
-
|
|
317
345
|
/**
|
|
318
|
-
*
|
|
319
|
-
*
|
|
346
|
+
* 変更が検出された際にロケール設定のホットリロードを有効にします。
|
|
347
|
+
* 例えば、辞書が追加または更新された場合、アプリケーションは
|
|
348
|
+
* ページに表示されるコンテンツを更新します。
|
|
320
349
|
*
|
|
321
|
-
*
|
|
350
|
+
* ホットリロードはサーバーへの継続的な接続を必要とするため、
|
|
351
|
+
* `enterprise` プランのクライアントのみ利用可能です。
|
|
322
352
|
*
|
|
323
353
|
* デフォルト: false
|
|
324
354
|
*/
|
|
325
355
|
liveSync: true,
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* Live Syncサーバーのポート番号。
|
|
359
|
+
*
|
|
360
|
+
* デフォルト: 4000
|
|
361
|
+
*/
|
|
362
|
+
liveSyncPort: 4000,
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Live SyncサーバーのURL。
|
|
366
|
+
*
|
|
367
|
+
* デフォルト: http://localhost:{liveSyncPort}
|
|
368
|
+
*/
|
|
369
|
+
liveSyncURL: "https://live.example.com",
|
|
370
|
+
},
|
|
371
|
+
build: {
|
|
372
|
+
/**
|
|
373
|
+
* 辞書のインポート方法を制御します:
|
|
374
|
+
*
|
|
375
|
+
* - "live": Live Sync APIを使用して辞書を動的に取得します。
|
|
376
|
+
* useIntlayerをuseDictionaryDynamicに置き換えます。
|
|
377
|
+
*
|
|
378
|
+
* 注意: ライブモードはLive Sync APIを使用して辞書を取得します。API呼び出しが失敗した場合、
|
|
379
|
+
* 辞書は動的にインポートされます。
|
|
380
|
+
* 注意: リモートコンテンツかつ"live"フラグが付いた辞書のみがライブモードを使用します。
|
|
381
|
+
* その他はパフォーマンスのために動的モードを使用します。
|
|
382
|
+
*/
|
|
383
|
+
importMode: "live",
|
|
326
384
|
},
|
|
327
385
|
};
|
|
328
386
|
|
|
329
387
|
module.exports = config;
|
|
330
388
|
```
|
|
331
389
|
|
|
332
|
-
|
|
390
|
+
アプリケーションをラップするために Live Sync サーバーを起動します:
|
|
333
391
|
|
|
334
|
-
|
|
335
|
-
|
|
392
|
+
Next.js を使用した例:
|
|
393
|
+
|
|
394
|
+
```json5 fileName="package.json"
|
|
395
|
+
{
|
|
396
|
+
"scripts": {
|
|
397
|
+
// ... その他のスクリプト
|
|
398
|
+
"build": "next build",
|
|
399
|
+
"dev": "next dev",
|
|
400
|
+
"start": "npx intlayer live --process 'next start'",
|
|
401
|
+
},
|
|
402
|
+
}
|
|
403
|
+
```
|
|
336
404
|
|
|
337
|
-
|
|
405
|
+
Vite を使用した例:
|
|
406
|
+
|
|
407
|
+
```json5 fileName="package.json"
|
|
408
|
+
{
|
|
409
|
+
"scripts": {
|
|
410
|
+
// ... その他のスクリプト
|
|
411
|
+
"build": "vite build",
|
|
412
|
+
"dev": "vite dev",
|
|
413
|
+
"start": "npx intlayer live --process 'vite start'",
|
|
414
|
+
},
|
|
415
|
+
}
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
Live Sync サーバーはあなたのアプリケーションをラップし、更新されたコンテンツが到着すると自動的に適用します。
|
|
419
|
+
|
|
420
|
+
CMSからの変更通知を受け取るために、Live SyncサーバーはバックエンドとのSSE接続を維持します。CMSのコンテンツが変更されると、バックエンドは更新情報をLive Syncサーバーに転送し、新しい辞書を書き込みます。アプリケーションは次のナビゲーションまたはブラウザのリロード時に更新を反映し、再ビルドは不要です。
|
|
421
|
+
|
|
422
|
+
フローチャート(CMS/バックエンド -> Live Syncサーバー -> アプリケーションサーバー -> フロントエンド):
|
|
423
|
+
|
|
424
|
+

|
|
425
|
+
|
|
426
|
+
動作の仕組み:
|
|
427
|
+
|
|
428
|
+

|
|
429
|
+
|
|
430
|
+
### 開発ワークフロー(ローカル)
|
|
431
|
+
|
|
432
|
+
- 開発中は、アプリケーション起動時にすべてのリモート辞書が取得されるため、更新をすばやくテストできます。
|
|
433
|
+
- Next.jsでローカルにLive Syncをテストするには、開発サーバーをラップします:
|
|
434
|
+
|
|
435
|
+
```json5 fileName="package.json"
|
|
436
|
+
{
|
|
437
|
+
"scripts": {
|
|
438
|
+
// ... 他のスクリプト
|
|
439
|
+
"dev": "npx intlayer live --process 'next dev'",
|
|
440
|
+
// "dev": "npx intlayer live --process 'vite dev'", // Vite用
|
|
441
|
+
},
|
|
442
|
+
}
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
開発中にIntlayerがLiveインポート変換を適用するように最適化を有効にします:
|
|
446
|
+
|
|
447
|
+
```typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
448
|
+
import type { IntlayerConfig } from "intlayer";
|
|
449
|
+
|
|
450
|
+
const config: IntlayerConfig = {
|
|
451
|
+
editor: {
|
|
452
|
+
applicationURL: "http://localhost:5173",
|
|
453
|
+
liveSyncURL: "http://localhost:4000",
|
|
454
|
+
liveSync: true,
|
|
455
|
+
},
|
|
456
|
+
build: {
|
|
457
|
+
optimize: true,
|
|
458
|
+
importMode: "live",
|
|
459
|
+
},
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
export default config;
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
```javascript fileName="intlayer.config.mjs" codeFormat="esm"
|
|
466
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
467
|
+
const config = {
|
|
468
|
+
editor: {
|
|
469
|
+
applicationURL: "http://localhost:5173",
|
|
470
|
+
liveSyncURL: "http://localhost:4000",
|
|
471
|
+
liveSync: true,
|
|
472
|
+
},
|
|
473
|
+
build: {
|
|
474
|
+
optimize: true,
|
|
475
|
+
importMode: "live",
|
|
476
|
+
},
|
|
477
|
+
};
|
|
478
|
+
|
|
479
|
+
export default config;
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
```javascript fileName="intlayer.config.cjs" codeFormat="commonjs"
|
|
483
|
+
/** @type {import('intlayer').IntlayerConfig} */
|
|
484
|
+
const config = {
|
|
485
|
+
editor: {
|
|
486
|
+
applicationURL: "http://localhost:5173",
|
|
487
|
+
liveSyncURL: "http://localhost:4000",
|
|
488
|
+
liveSync: true,
|
|
489
|
+
},
|
|
490
|
+
build: {
|
|
491
|
+
optimize: true,
|
|
492
|
+
importMode: "live",
|
|
493
|
+
},
|
|
494
|
+
};
|
|
495
|
+
|
|
496
|
+
module.exports = config;
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
この設定により、開発サーバーがLive Syncサーバーでラップされ、起動時にリモート辞書を取得し、CMSからの更新をSSE経由でストリーミングします。変更を確認するにはページをリロードしてください。
|
|
500
|
+
|
|
501
|
+
注意事項と制約:
|
|
502
|
+
|
|
503
|
+
- サイトのセキュリティポリシー(CSP)にLive Syncのオリジンを追加してください。`connect-src`(および該当する場合は`frame-ancestors`)にLive SyncのURLが許可されていることを確認してください。
|
|
504
|
+
- Live Syncは静的出力では動作しません。Next.jsの場合、ページは動的である必要があり、ランタイムで更新を受け取るために(例:`generateStaticParams`、`generateMetadata`、`getServerSideProps`、または`getStaticProps`を適切に使用して)完全な静的のみの制約を回避してください。
|
|
505
|
+
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
このセットアップは、開発サーバーを Live Sync サーバーでラップし、起動時にリモート辞書を取得し、CMS からの更新を SSE 経由でストリーミングします。変更を確認するにはページをリフレッシュしてください。
|
|
509
|
+
|
|
510
|
+
注意事項と制約:
|
|
511
|
+
|
|
512
|
+
- Live Sync のオリジンをサイトのセキュリティポリシー(CSP)に追加してください。Live Sync の URL が `connect-src`(および該当する場合は `frame-ancestors`)で許可されていることを確認してください。
|
|
513
|
+
- Live Sync は静的出力では動作しません。Next.js の場合、ページはランタイムで更新を受け取るために動的である必要があります(例:完全な静的のみの制約を避けるために、`generateStaticParams`、`generateMetadata`、`getServerSideProps`、または `getStaticProps` を適切に使用してください)。
|
|
514
|
+
- CMSでは、各辞書に`live`フラグがあります。`live=true`の辞書のみがライブ同期APIを通じて取得され、それ以外は動的にインポートされ、実行時には変更されません。
|
|
515
|
+
- `live`フラグはビルド時に各辞書ごとに評価されます。ビルド時にリモートコンテンツが`live=true`に設定されていなかった場合、その辞書のライブ同期を有効にするには再ビルドが必要です。
|
|
516
|
+
- ライブ同期サーバーは`.intlayer`に書き込み可能でなければなりません。コンテナ環境では`/.intlayer`への書き込み権限を確保してください。
|
|
338
517
|
|
|
339
518
|
## デバッグ
|
|
340
519
|
|
|
341
|
-
CMS
|
|
520
|
+
CMSで問題が発生した場合は、以下を確認してください:
|
|
521
|
+
|
|
522
|
+
- アプリケーションが稼働していること。
|
|
342
523
|
|
|
343
|
-
-
|
|
524
|
+
- [`editor`](https://intlayer.org/doc/concept/configuration#editor-configuration)の設定がIntlayerの設定ファイルで正しく行われていること。
|
|
525
|
+
- 必須フィールド:
|
|
526
|
+
- アプリケーションのURLは、エディター設定の `applicationURL` と一致している必要があります。
|
|
527
|
+
- CMSのURL
|
|
344
528
|
|
|
345
|
-
- Intlayer
|
|
346
|
-
- 必須フィールド:
|
|
347
|
-
- アプリケーション URL がエディタ設定 (`applicationURL`) に設定したものと一致していること。
|
|
348
|
-
- CMS URL
|
|
529
|
+
- プロジェクトの設定がIntlayer CMSにプッシュされていることを確認してください。
|
|
349
530
|
|
|
350
|
-
-
|
|
351
|
-
- ビジュアルエディタは iframe を使用してウェブサイトを表示します。ウェブサイトのコンテンツセキュリティポリシー (CSP) が `frame-ancestors` として CMS URL ('https://intlayer.org' がデフォルト) を許可していることを確認してください。エディタコンソールでエラーを確認してください。
|
|
531
|
+
- ビジュアルエディターはiframeを使用してウェブサイトを表示します。ウェブサイトのコンテンツセキュリティポリシー(CSP)がCMSのURLを `frame-ancestors`(デフォルトは 'https://intlayer.org')として許可していることを確認してください。エディターのコンソールでエラーがないか確認してください。
|
|
352
532
|
|
|
353
533
|
## ドキュメント履歴
|
|
354
534
|
|
|
355
|
-
|
|
535
|
+
| バージョン | 日付 | 変更内容 |
|
|
536
|
+
| ---------- | ---------- | --------------------------------------- |
|
|
537
|
+
| 6.0.1 | 2025-09-22 | ライブ同期のドキュメントを追加 |
|
|
538
|
+
| 6.0.0 | 2025-09-04 | `hotReload` フィールドを `liveSync` に置き換え |
|
|
539
|
+
| 5.5.10 | 2025-06-29 | 履歴を初期化 |
|
|
540
|
+
```
|