@intlayer/docs 8.4.5 → 8.4.7
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/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
- 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/intlayer_with_storybook.md +521 -0
- package/docs/bn/intlayer_with_hono.md +428 -0
- package/docs/de/intlayer_with_storybook.md +521 -0
- package/docs/en/configuration.md +160 -508
- package/docs/en/intlayer_with_storybook.md +521 -0
- package/docs/en-GB/intlayer_with_storybook.md +521 -0
- package/docs/es/configuration.md +387 -754
- package/docs/es/intlayer_with_storybook.md +521 -0
- package/docs/fr/configuration.md +384 -757
- package/docs/fr/intlayer_with_storybook.md +521 -0
- package/docs/hi/intlayer_with_storybook.md +521 -0
- package/docs/id/intlayer_with_storybook.md +521 -0
- package/docs/it/intlayer_with_storybook.md +521 -0
- package/docs/ja/intlayer_with_storybook.md +521 -0
- package/docs/ko/intlayer_with_storybook.md +521 -0
- package/docs/pl/intlayer_with_storybook.md +521 -0
- package/docs/pt/intlayer_with_storybook.md +521 -0
- package/docs/ru/intlayer_with_storybook.md +521 -0
- package/docs/tr/intlayer_with_storybook.md +521 -0
- package/docs/uk/intlayer_with_storybook.md +521 -0
- package/docs/ur/intlayer_with_hono.md +428 -0
- package/docs/vi/intlayer_with_storybook.md +521 -0
- package/docs/zh/intlayer_with_storybook.md +521 -0
- package/package.json +6 -6
- package/src/generated/docs.entry.ts +20 -0
- package/docs/ar/configuration.md +0 -1124
- package/docs/de/configuration.md +0 -1296
- package/docs/en-GB/configuration.md +0 -1123
- package/docs/hi/configuration.md +0 -1118
- package/docs/id/configuration.md +0 -1235
- package/docs/it/configuration.md +0 -1301
- package/docs/ja/configuration.md +0 -1121
- package/docs/ko/configuration.md +0 -1121
- package/docs/pl/configuration.md +0 -1226
- package/docs/pt/configuration.md +0 -1293
- package/docs/ru/configuration.md +0 -1112
- package/docs/tr/configuration.md +0 -1114
- package/docs/uk/configuration.md +0 -1241
- package/docs/vi/configuration.md +0 -1263
- package/docs/zh/configuration.md +0 -1115
package/docs/ko/configuration.md
DELETED
|
@@ -1,1121 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-03-12
|
|
4
|
-
title: 구성
|
|
5
|
-
description: 애플리케이션에 맞게 Intlayer를 구성하는 방법을 배우세요. Intlayer를 사용자 요구에 맞게 맞춤 설정할 수 있는 다양한 설정과 옵션을 이해하세요.
|
|
6
|
-
keywords:
|
|
7
|
-
- 구성
|
|
8
|
-
- 설정
|
|
9
|
-
- 맞춤화
|
|
10
|
-
- Intlayer
|
|
11
|
-
- 옵션
|
|
12
|
-
slugs:
|
|
13
|
-
- doc
|
|
14
|
-
- concept
|
|
15
|
-
- configuration
|
|
16
|
-
history:
|
|
17
|
-
- version: 8.3.0
|
|
18
|
-
date: 2026-03-11
|
|
19
|
-
changes: "'baseDir'을 'content' 구성에서 'system' 구성으로 이동"
|
|
20
|
-
- version: 8.2.0
|
|
21
|
-
date: 2026-03-10
|
|
22
|
-
changes: 컴파일러 옵션 업데이트, 'output' 및 'noMetadata' 지원 추가
|
|
23
|
-
- version: 8.1.7
|
|
24
|
-
date: 2026-02-25
|
|
25
|
-
changes: 컴파일러 옵션 업데이트
|
|
26
|
-
- version: 8.0.6
|
|
27
|
-
date: 2026-02-12
|
|
28
|
-
changes: Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face, Together.ai 제공업체 지원 추가
|
|
29
|
-
- version: 8.0.5
|
|
30
|
-
date: 2026-02-06
|
|
31
|
-
changes: AI 구성에 `dataSerialization` 추가
|
|
32
|
-
- version: 8.0.0
|
|
33
|
-
date: 2026-01-22
|
|
34
|
-
changes: importMode 빌드 구성을 사전 구성으로 이동.
|
|
35
|
-
- version: 8.0.0
|
|
36
|
-
date: 2026-01-18
|
|
37
|
-
changes: 시스템 구성에서 콘텐츠 구성을 분리합니다. 내부 경로를 `system` 속성으로 이동합니다. 콘텐츠 파일과 코드 변환을 분리하기 위해 `codeDir`를 추가합니다.
|
|
38
|
-
- version: 8.0.0
|
|
39
|
-
date: 2026-01-18
|
|
40
|
-
changes: 사전 옵션 `location` 및 `schema` 추가
|
|
41
|
-
- version: 7.5.1
|
|
42
|
-
date: 2026-01-10
|
|
43
|
-
changes: JSON5 및 JSONC 파일 형식 지원 추가
|
|
44
|
-
- version: 7.5.0
|
|
45
|
-
date: 2025-12-17
|
|
46
|
-
changes: "`buildMode` 옵션 추가"
|
|
47
|
-
- version: 6.0.0
|
|
48
|
-
date: 2025-09-16
|
|
49
|
-
changes: "`live` 가져오기 모드 추가"
|
|
50
|
-
- version: 6.0.0
|
|
51
|
-
date: 2025-09-16
|
|
52
|
-
changes: "`live` import 모드 추가"
|
|
53
|
-
- version: 6.0.0
|
|
54
|
-
date: 2025-09-04
|
|
55
|
-
changes: "`hotReload` 필드를 `liveSync`로 교체하고 `liveSyncPort` 및 `liveSyncURL` 필드 추가"
|
|
56
|
-
- version: 5.6.1
|
|
57
|
-
date: 2025-07-25
|
|
58
|
-
changes: "`activateDynamicImport`을 `importMode` 옵션으로 교체"
|
|
59
|
-
- version: 5.6.0
|
|
60
|
-
date: 2025-07-13
|
|
61
|
-
changes: 기본 contentDir를 `['src']`에서 `['.']`로 변경
|
|
62
|
-
- version: 5.5.11
|
|
63
|
-
date: 2025-06-29
|
|
64
|
-
changes: "`docs` 명령어 추가"
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
# Intlayer 구성 문서
|
|
68
|
-
|
|
69
|
-
## 개요
|
|
70
|
-
|
|
71
|
-
Intlayer 구성 파일은 국제화, 미들웨어, 콘텐츠 처리 등 플러그인의 다양한 측면을 사용자 정의할 수 있게 합니다. 이 문서는 구성 내 각 속성에 대한 자세한 설명을 제공합니다.
|
|
72
|
-
|
|
73
|
-
---
|
|
74
|
-
|
|
75
|
-
## 목차
|
|
76
|
-
|
|
77
|
-
<TOC/>
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## 구성 파일 지원
|
|
82
|
-
|
|
83
|
-
Intlayer는 JSON, JS, MJS, TS 구성 파일 형식을 지원합니다:
|
|
84
|
-
|
|
85
|
-
- `intlayer.config.ts`
|
|
86
|
-
- `intlayer.config.js`
|
|
87
|
-
- `intlayer.config.json`
|
|
88
|
-
- `intlayer.config.json5`
|
|
89
|
-
- `intlayer.config.jsonc`
|
|
90
|
-
- `intlayer.config.cjs`
|
|
91
|
-
- `intlayer.config.mjs`
|
|
92
|
-
- `.intlayerrc`
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## 예제 구성 파일
|
|
97
|
-
|
|
98
|
-
````typescript fileName="intlayer.config.ts" codeFormat="typescript"
|
|
99
|
-
import { Locales, type IntlayerConfig } from "intlayer";
|
|
100
|
-
import { nextjsRewrite } from "intlayer/routing";
|
|
101
|
-
import { z } from "zod";
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Example Intlayer configuration file showing all available options.
|
|
105
|
-
*/
|
|
106
|
-
const config: IntlayerConfig = {
|
|
107
|
-
/**
|
|
108
|
-
* Configuration for internationalization settings.
|
|
109
|
-
*/
|
|
110
|
-
internationalization: {
|
|
111
|
-
/**
|
|
112
|
-
* List of supported locales in the application.
|
|
113
|
-
* Default: [Locales.ENGLISH]
|
|
114
|
-
*/
|
|
115
|
-
locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* List of required locales that must be defined in every dictionary.
|
|
119
|
-
* If empty, all locales are required in `strict` mode.
|
|
120
|
-
* Default: []
|
|
121
|
-
*/
|
|
122
|
-
requiredLocales: [Locales.ENGLISH],
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Strictness level for internationalized content.
|
|
126
|
-
* - "strict": Errors if any declared locale is missing or undeclared.
|
|
127
|
-
* - "inclusive": Warnings if a declared locale is missing.
|
|
128
|
-
* - "loose": Accepts any existing locale.
|
|
129
|
-
* Default: "inclusive"
|
|
130
|
-
*/
|
|
131
|
-
strictMode: "inclusive",
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Default locale used as a fallback if the requested locale is not found.
|
|
135
|
-
* Default: Locales.ENGLISH
|
|
136
|
-
*/
|
|
137
|
-
defaultLocale: Locales.ENGLISH,
|
|
138
|
-
},
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Settings that control dictionary operations and fallback behavior.
|
|
142
|
-
*/
|
|
143
|
-
dictionary: {
|
|
144
|
-
/**
|
|
145
|
-
* Controls how dictionaries are imported.
|
|
146
|
-
* - "static": Statically imported at build time.
|
|
147
|
-
* - "dynamic": Dynamically imported using Suspense.
|
|
148
|
-
* - "fetch": Fetched dynamically via the live sync API.
|
|
149
|
-
* Default: "static"
|
|
150
|
-
*/
|
|
151
|
-
importMode: "static",
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Strategy for auto-filling missing translations using AI.
|
|
155
|
-
* Can be a boolean or a path pattern to store filled content.
|
|
156
|
-
* Default: true
|
|
157
|
-
*/
|
|
158
|
-
fill: true,
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Physical location of the dictionary files.
|
|
162
|
-
* - "local": Stored in the local filesystem.
|
|
163
|
-
* - "remote": Stored in the Intlayer CMS.
|
|
164
|
-
* - "hybrid": Stored in the local filesystem and the Intlayer CMS.
|
|
165
|
-
* - "plugin" (or any custom string): Provided by a plugin or a custom source.
|
|
166
|
-
* Default: "local"
|
|
167
|
-
*/
|
|
168
|
-
location: "local",
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Whether to automatically transform content (e.g., Markdown to HTML).
|
|
172
|
-
* Default: false
|
|
173
|
-
*/
|
|
174
|
-
contentAutoTransformation: false,
|
|
175
|
-
},
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Routing and middleware configuration.
|
|
179
|
-
*/
|
|
180
|
-
routing: {
|
|
181
|
-
/**
|
|
182
|
-
* Locale routing strategy.
|
|
183
|
-
* - "prefix-no-default": Prefix all except the default locale (e.g., /dashboard, /fr/dashboard).
|
|
184
|
-
* - "prefix-all": Prefix all locales (e.g., /en/dashboard, /fr/dashboard).
|
|
185
|
-
* - "no-prefix": No locale in the URL.
|
|
186
|
-
* - "search-params": Use ?locale=...
|
|
187
|
-
* Default: "prefix-no-default"
|
|
188
|
-
*/
|
|
189
|
-
mode: "prefix-no-default",
|
|
190
|
-
|
|
191
|
-
/**
|
|
192
|
-
* Where to store the user's selected locale.
|
|
193
|
-
* Options: 'cookie', 'localStorage', 'sessionStorage', 'header', or an array of these.
|
|
194
|
-
* Default: ['cookie', 'header']
|
|
195
|
-
*/
|
|
196
|
-
storage: ["cookie", "header"],
|
|
197
|
-
|
|
198
|
-
/**
|
|
199
|
-
* Base path for the application URLs.
|
|
200
|
-
* Default: ""
|
|
201
|
-
*/
|
|
202
|
-
basePath: "",
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Custom URL rewriting rules for locale-specific paths.
|
|
206
|
-
*/
|
|
207
|
-
rewrite: nextjsRewrite({
|
|
208
|
-
"/[locale]/about": {
|
|
209
|
-
en: "/[locale]/about",
|
|
210
|
-
fr: "/[locale]/a-propos",
|
|
211
|
-
},
|
|
212
|
-
}),
|
|
213
|
-
},
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Settings for finding and processing content files.
|
|
217
|
-
*/
|
|
218
|
-
content: {
|
|
219
|
-
/**
|
|
220
|
-
* File extensions to scan for dictionaries.
|
|
221
|
-
* Default: ['.content.ts', '.content.js', '.content.json', etc.]
|
|
222
|
-
*/
|
|
223
|
-
fileExtensions: [".content.ts", ".content.js", ".content.json"],
|
|
224
|
-
|
|
225
|
-
/**
|
|
226
|
-
* Directories where .content files are located.
|
|
227
|
-
* Default: ["."]
|
|
228
|
-
*/
|
|
229
|
-
contentDir: ["src"],
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Directories where source code is located.
|
|
233
|
-
* Used for build optimization and code transformation.
|
|
234
|
-
* Default: ["."]
|
|
235
|
-
*/
|
|
236
|
-
codeDir: ["src"],
|
|
237
|
-
|
|
238
|
-
/**
|
|
239
|
-
* Patterns to exclude from scanning.
|
|
240
|
-
* Default: ['node_modules', '.intlayer', etc.]
|
|
241
|
-
*/
|
|
242
|
-
excludedPath: ["node_modules"],
|
|
243
|
-
|
|
244
|
-
/**
|
|
245
|
-
* Whether to watch for changes and rebuild dictionaries in development.
|
|
246
|
-
* Default: true in development
|
|
247
|
-
*/
|
|
248
|
-
watch: true,
|
|
249
|
-
|
|
250
|
-
/**
|
|
251
|
-
* Command to format newly created / updated .content files.
|
|
252
|
-
*/
|
|
253
|
-
formatCommand: 'npx prettier --write "{{file}}"',
|
|
254
|
-
},
|
|
255
|
-
|
|
256
|
-
/**
|
|
257
|
-
* Visual Editor configuration.
|
|
258
|
-
*/
|
|
259
|
-
editor: {
|
|
260
|
-
/**
|
|
261
|
-
* Whether the visual editor is enabled.
|
|
262
|
-
* Default: false
|
|
263
|
-
*/
|
|
264
|
-
enabled: true,
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* URL of your application for origin validation.
|
|
268
|
-
* Default: ""
|
|
269
|
-
*/
|
|
270
|
-
applicationURL: "http://localhost:3000",
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* Port for the local editor server.
|
|
274
|
-
* Default: 8000
|
|
275
|
-
*/
|
|
276
|
-
port: 8000,
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* Public URL for the editor.
|
|
280
|
-
* Default: "http://localhost:8000"
|
|
281
|
-
*/
|
|
282
|
-
editorURL: "http://localhost:8000",
|
|
283
|
-
|
|
284
|
-
/**
|
|
285
|
-
* Intlayer CMS URL.
|
|
286
|
-
* Default: "https://app.intlayer.org"
|
|
287
|
-
*/
|
|
288
|
-
cmsURL: "https://app.intlayer.org",
|
|
289
|
-
|
|
290
|
-
/**
|
|
291
|
-
* Backend API URL.
|
|
292
|
-
* Default: "https://back.intlayer.org"
|
|
293
|
-
*/
|
|
294
|
-
backendURL: "https://back.intlayer.org",
|
|
295
|
-
|
|
296
|
-
/**
|
|
297
|
-
* Whether to enable real-time content synchronization.
|
|
298
|
-
* Default: false
|
|
299
|
-
*/
|
|
300
|
-
liveSync: true,
|
|
301
|
-
},
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* AI-powered translation and generation settings.
|
|
305
|
-
*/
|
|
306
|
-
ai: {
|
|
307
|
-
/**
|
|
308
|
-
* AI provider to use.
|
|
309
|
-
* Options: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
|
|
310
|
-
* Default: 'openai'
|
|
311
|
-
*/
|
|
312
|
-
provider: "openai",
|
|
313
|
-
|
|
314
|
-
/**
|
|
315
|
-
* Model to use from the selected provider.
|
|
316
|
-
*/
|
|
317
|
-
model: "gpt-4o",
|
|
318
|
-
|
|
319
|
-
/**
|
|
320
|
-
* Provider API key.
|
|
321
|
-
*/
|
|
322
|
-
apiKey: process.env.OPENAI_API_KEY,
|
|
323
|
-
|
|
324
|
-
/**
|
|
325
|
-
* Global context to guide the AI in generating translations.
|
|
326
|
-
*/
|
|
327
|
-
applicationContext: "This is a travel booking application.",
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Base URL for the AI API.
|
|
331
|
-
*/
|
|
332
|
-
baseURL: "http://localhost:3000",
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
* 데이터 직렬화
|
|
336
|
-
*
|
|
337
|
-
* 옵션:
|
|
338
|
-
* - "json": 표준, 신뢰할 수 있음; 더 많은 토큰을 사용합니다.
|
|
339
|
-
* - "toon": 토큰을 덜 사용하지만 JSON만큼 일관성이 있지는 않습니다.
|
|
340
|
-
*
|
|
341
|
-
* 기본값: "json"
|
|
342
|
-
*/
|
|
343
|
-
dataSerialization: "json",
|
|
344
|
-
},
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Build and optimization settings.
|
|
348
|
-
*/
|
|
349
|
-
build: {
|
|
350
|
-
/**
|
|
351
|
-
* Build execution mode.
|
|
352
|
-
* - "auto": Automatic build during app build.
|
|
353
|
-
* - "manual": Requires explicit build command.
|
|
354
|
-
* Default: "auto"
|
|
355
|
-
*/
|
|
356
|
-
mode: "auto",
|
|
357
|
-
|
|
358
|
-
/**
|
|
359
|
-
* Whether to optimize the final bundle by pruning unused dictionaries.
|
|
360
|
-
* Default: true in production
|
|
361
|
-
*/
|
|
362
|
-
optimize: true,
|
|
363
|
-
|
|
364
|
-
/**
|
|
365
|
-
* Output format for generated dictionary files.
|
|
366
|
-
* Default: ['esm', 'cjs']
|
|
367
|
-
*/
|
|
368
|
-
outputFormat: ["esm"],
|
|
369
|
-
|
|
370
|
-
/**
|
|
371
|
-
* Indicates if the build should check TypeScript types.
|
|
372
|
-
* Default: false
|
|
373
|
-
*/
|
|
374
|
-
checkTypes: false,
|
|
375
|
-
},
|
|
376
|
-
|
|
377
|
-
/**
|
|
378
|
-
* Logger configuration.
|
|
379
|
-
*/
|
|
380
|
-
log: {
|
|
381
|
-
/**
|
|
382
|
-
* Logging level.
|
|
383
|
-
* - "default": Standard logging.
|
|
384
|
-
* - "verbose": Detailed debug logging.
|
|
385
|
-
* - "disabled": No logging.
|
|
386
|
-
* Default: "default"
|
|
387
|
-
*/
|
|
388
|
-
mode: "default",
|
|
389
|
-
|
|
390
|
-
/**
|
|
391
|
-
* Prefix for all log messages.
|
|
392
|
-
* Default: "[intlayer]"
|
|
393
|
-
*/
|
|
394
|
-
prefix: "[intlayer]",
|
|
395
|
-
},
|
|
396
|
-
|
|
397
|
-
/**
|
|
398
|
-
* System configuration (Advanced use cases)
|
|
399
|
-
*/
|
|
400
|
-
system: {
|
|
401
|
-
/**
|
|
402
|
-
* Directory for storing localization dictionaries.
|
|
403
|
-
*/
|
|
404
|
-
dictionariesDir: ".intlayer/dictionary",
|
|
405
|
-
|
|
406
|
-
/**
|
|
407
|
-
* Directory for module augmentation.
|
|
408
|
-
*/
|
|
409
|
-
moduleAugmentationDir: ".intlayer/types",
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* Directory for storing unmerged dictionaries.
|
|
413
|
-
*/
|
|
414
|
-
unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
|
|
415
|
-
|
|
416
|
-
/**
|
|
417
|
-
* Directory for storing dictionary types.
|
|
418
|
-
*/
|
|
419
|
-
typesDir: ".intlayer/types",
|
|
420
|
-
|
|
421
|
-
/**
|
|
422
|
-
* Directory where main application files are stored.
|
|
423
|
-
*/
|
|
424
|
-
mainDir: ".intlayer/main",
|
|
425
|
-
|
|
426
|
-
/**
|
|
427
|
-
* Directory where the configuration files are stored.
|
|
428
|
-
*/
|
|
429
|
-
configDir: ".intlayer/config",
|
|
430
|
-
|
|
431
|
-
/**
|
|
432
|
-
* Directory where the cache files are stored.
|
|
433
|
-
*/
|
|
434
|
-
cacheDir: ".intlayer/cache",
|
|
435
|
-
},
|
|
436
|
-
|
|
437
|
-
/**
|
|
438
|
-
* Compiler configuration (Advanced use cases)
|
|
439
|
-
*/
|
|
440
|
-
compiler: {
|
|
441
|
-
/**
|
|
442
|
-
* 컴파일러 활성화 여부를 나타냅니다.
|
|
443
|
-
*
|
|
444
|
-
* - false : 컴파일러를 비활성화합니다.
|
|
445
|
-
* - true : 컴파일러를 활성화합니다.
|
|
446
|
-
* - "build-only" : 개발 중에 컴파일러를 건너뛰고 시작 시간을 단축합니다.
|
|
447
|
-
*
|
|
448
|
-
* 기본값 : false
|
|
449
|
-
*/
|
|
450
|
-
enabled: true,
|
|
451
|
-
|
|
452
|
-
/**
|
|
453
|
-
* 출력 파일 경로를 정의합니다. `outputDir`을 대체합니다.
|
|
454
|
-
*
|
|
455
|
-
* - `./` 경로는 컴포넌트 디렉터리를 기준으로 해결됩니다.
|
|
456
|
-
* - `/` 경로는 프로젝트 루트(`baseDir`)를 기준으로 해결됩니다.
|
|
457
|
-
*
|
|
458
|
-
* - 경로에 `{{locale}}` 변수를 넣으면 언어별로 분리된 사전 생성이 활성화됩니다.
|
|
459
|
-
*
|
|
460
|
-
* 예시:
|
|
461
|
-
* ```ts
|
|
462
|
-
* {
|
|
463
|
-
* // 컴포넌트 옆에 다국어 .content.ts 파일 생성
|
|
464
|
-
* output: ({ fileName, extension }) => `./${fileName}${extension}`,
|
|
465
|
-
*
|
|
466
|
-
* // output: './{{fileName}}{{extension}}', // 문자열 템플릿을 사용한 동일한 표현
|
|
467
|
-
* }
|
|
468
|
-
* ```
|
|
469
|
-
*
|
|
470
|
-
* ```ts
|
|
471
|
-
* {
|
|
472
|
-
* // 프로젝트 루트의 언어별 중앙 집중식 JSON 파일 생성
|
|
473
|
-
* output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
|
|
474
|
-
*
|
|
475
|
-
* // output: '/locales/{{locale}}/{{key}}.content.json', // 문자열 템플릿을 사용한 동일한 표현
|
|
476
|
-
* }
|
|
477
|
-
* ```
|
|
478
|
-
*
|
|
479
|
-
* 변수 목록:
|
|
480
|
-
* - `fileName`: 파일 이름.
|
|
481
|
-
* - `key`: 콘텐츠 키.
|
|
482
|
-
* - `locale`: 콘텐츠 로케일.
|
|
483
|
-
* - `extension`: 파일 확장자.
|
|
484
|
-
* - `componentFileName`: 컴포넌트 파일 이름.
|
|
485
|
-
* - `componentExtension`: 컴포넌트 파일 확장자.
|
|
486
|
-
* - `format`: 사전 형식.
|
|
487
|
-
* - `componentFormat`: 컴포넌트 사전 형식.
|
|
488
|
-
* - `componentDirPath`: 컴포넌트 디렉터리 경로.
|
|
489
|
-
*/
|
|
490
|
-
output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
|
|
491
|
-
|
|
492
|
-
/**
|
|
493
|
-
* 변환된 후 구성 요소를 저장할지 여부를 나타냅니다.
|
|
494
|
-
* 이렇게 하면 컴파일러를 한 번만 실행하여 앱을 변환한 다음 제거할 수 있습니다.
|
|
495
|
-
*/
|
|
496
|
-
saveComponents: false,
|
|
497
|
-
|
|
498
|
-
/**
|
|
499
|
-
* 생성된 파일에 콘텐츠만 삽입합니다. 로케일별 i18next 또는 ICU MessageFormat JSON 출력에 유용합니다.
|
|
500
|
-
*/
|
|
501
|
-
noMetadata: false,
|
|
502
|
-
|
|
503
|
-
/**
|
|
504
|
-
* 사전 키 접두사
|
|
505
|
-
*/
|
|
506
|
-
dictionaryKeyPrefix: "", // 추출된 사전 키에 선택적 접두사 추가
|
|
507
|
-
},
|
|
508
|
-
|
|
509
|
-
/**
|
|
510
|
-
* Custom schemas to validate the dictionaries content.
|
|
511
|
-
*/
|
|
512
|
-
schemas: {
|
|
513
|
-
"my-schema": z.object({
|
|
514
|
-
title: z.string(),
|
|
515
|
-
}),
|
|
516
|
-
},
|
|
517
|
-
|
|
518
|
-
/**
|
|
519
|
-
* Plugins configuration.
|
|
520
|
-
*/
|
|
521
|
-
plugins: [],
|
|
522
|
-
};
|
|
523
|
-
|
|
524
|
-
export default config;
|
|
525
|
-
````
|
|
526
|
-
|
|
527
|
-
## 구성 참조
|
|
528
|
-
|
|
529
|
-
다음 섹션에서는 Intlayer에서 사용할 수 있는 다양한 구성 설정에 대해 설명합니다.
|
|
530
|
-
|
|
531
|
-
---
|
|
532
|
-
|
|
533
|
-
### 국제화 구성
|
|
534
|
-
|
|
535
|
-
애플리케이션에서 사용 가능한 로케일과 기본 로케일을 포함하여 국제화와 관련된 설정을 정의합니다.
|
|
536
|
-
|
|
537
|
-
#### 속성
|
|
538
|
-
|
|
539
|
-
- **locales**:
|
|
540
|
-
- _유형_: `string[]`
|
|
541
|
-
- _기본값_: `['en']`
|
|
542
|
-
- _설명_: 애플리케이션에서 지원하는 로케일 목록입니다.
|
|
543
|
-
- _예시_: `['en', 'fr', 'es']`
|
|
544
|
-
|
|
545
|
-
- **requiredLocales**:
|
|
546
|
-
- _유형_: `string[]`
|
|
547
|
-
- _기본값_: `[]`
|
|
548
|
-
- _설명_: 애플리케이션에서 필수로 요구되는 로케일 목록입니다.
|
|
549
|
-
- _예시_: `[]`
|
|
550
|
-
- _참고_: 비어 있으면 `strict` 모드에서 모든 로케일이 필수입니다.
|
|
551
|
-
- _참고_: 필수 로케일이 `locales` 필드에도 정의되어 있는지 확인하세요.
|
|
552
|
-
- **strictMode**:
|
|
553
|
-
- _유형_: `string`
|
|
554
|
-
- _기본값_: `inclusive`
|
|
555
|
-
- _설명_: 타입스크립트를 사용하여 국제화된 콘텐츠의 강력한 구현을 보장합니다.
|
|
556
|
-
- _참고_: "strict"로 설정하면, 번역 함수 `t`는 선언된 각 로케일이 정의되어 있어야 합니다. 하나의 로케일이 누락되었거나 구성에 선언되지 않은 로케일이 있으면 오류를 발생시킵니다.
|
|
557
|
-
- _참고_: "inclusive"로 설정하면, 번역 함수 `t`는 선언된 각 로케일이 정의되어 있어야 합니다. 하나의 로케일이 누락되면 경고를 발생시키지만, 구성에 선언되지 않았더라도 존재하는 로케일은 허용합니다.
|
|
558
|
-
- _참고_: "loose"로 설정하면, 번역 함수 `t`는 존재하는 모든 로케일을 허용합니다.
|
|
559
|
-
|
|
560
|
-
- **defaultLocale**:
|
|
561
|
-
- _유형_: `string`
|
|
562
|
-
- _기본값_: `'en'`
|
|
563
|
-
- _설명_: 요청한 로케일을 찾을 수 없을 때 대체로 사용되는 기본 로케일입니다.
|
|
564
|
-
- _예시_: `'en'`
|
|
565
|
-
- _참고_: URL, 쿠키 또는 헤더에 로케일이 지정되지 않은 경우 이 값을 사용하여 로케일을 결정합니다.
|
|
566
|
-
|
|
567
|
-
---
|
|
568
|
-
|
|
569
|
-
### 에디터 구성
|
|
570
|
-
|
|
571
|
-
통합 에디터와 관련된 설정을 정의하며, 서버 포트와 활성 상태를 포함합니다.
|
|
572
|
-
|
|
573
|
-
#### 속성
|
|
574
|
-
|
|
575
|
-
- **applicationURL**:
|
|
576
|
-
- _유형_: `string`
|
|
577
|
-
- _기본값_: `http://localhost:3000`
|
|
578
|
-
- _설명_: 애플리케이션의 URL입니다. 보안상의 이유로 에디터의 출처를 제한하는 데 사용됩니다.
|
|
579
|
-
- _예시_:
|
|
580
|
-
- `'http://localhost:3000'`
|
|
581
|
-
- `'https://example.com'`
|
|
582
|
-
- `process.env.INTLAYER_EDITOR_URL`
|
|
583
|
-
- _참고_: 애플리케이션의 URL입니다. 보안상의 이유로 에디터의 출처를 제한하는 데 사용됩니다. `'*'`로 설정하면 에디터는 모든 출처에서 접근할 수 있습니다.
|
|
584
|
-
|
|
585
|
-
- **port**:
|
|
586
|
-
- _유형_: `number`
|
|
587
|
-
- _기본값_: `8000`
|
|
588
|
-
- _설명_: 비주얼 에디터 서버가 사용하는 포트입니다.
|
|
589
|
-
|
|
590
|
-
- **editorURL**:
|
|
591
|
-
- _유형_: `string`
|
|
592
|
-
- _기본값_: `'http://localhost:8000'`
|
|
593
|
-
- _설명_: 에디터 서버의 URL입니다. 보안상의 이유로 에디터의 출처를 제한하는 데 사용됩니다.
|
|
594
|
-
- `'http://localhost:3000'`
|
|
595
|
-
- `'https://example.com'`
|
|
596
|
-
- `process.env.INTLAYER_EDITOR_URL`
|
|
597
|
-
- _참고_: 애플리케이션에서 접근하는 에디터 서버의 URL입니다. 보안상의 이유로 애플리케이션과 상호작용할 수 있는 출처를 제한하는 데 사용됩니다. `'*'`로 설정하면 모든 출처에서 에디터에 접근할 수 있습니다. 포트가 변경되었거나 에디터가 다른 도메인에 호스팅되는 경우 설정해야 합니다.
|
|
598
|
-
|
|
599
|
-
- **cmsURL**:
|
|
600
|
-
- _유형_: `string`
|
|
601
|
-
- _기본값_: `'https://intlayer.org'`
|
|
602
|
-
- _설명_: Intlayer CMS의 URL입니다.
|
|
603
|
-
- _예시_: `'https://intlayer.org'`
|
|
604
|
-
- _참고_: Intlayer CMS의 URL입니다.
|
|
605
|
-
|
|
606
|
-
- **backendURL**:
|
|
607
|
-
- _유형_: `string`
|
|
608
|
-
- _기본값_: `https://back.intlayer.org`
|
|
609
|
-
- _설명_: 백엔드 서버의 URL입니다.
|
|
610
|
-
- _예시_: `http://localhost:4000`
|
|
611
|
-
|
|
612
|
-
- **enabled**:
|
|
613
|
-
- _유형_: `boolean`
|
|
614
|
-
- _기본값_: `true`
|
|
615
|
-
- _설명_: 애플리케이션이 비주얼 에디터와 상호작용하는지 여부를 나타냅니다.
|
|
616
|
-
- _예시_: `process.env.NODE_ENV !== 'production'`
|
|
617
|
-
- _참고_: true인 경우, 에디터가 애플리케이션과 상호작용할 수 있습니다. false인 경우, 에디터가 애플리케이션과 상호작용할 수 없습니다. 어떤 경우든 에디터는 비주얼 에디터에 의해서만 활성화될 수 있습니다. 특정 환경에서 에디터를 비활성화하는 것은 보안을 강화하는 방법입니다.
|
|
618
|
-
|
|
619
|
-
- **clientId**:
|
|
620
|
-
- _유형_: `string` | `undefined`
|
|
621
|
-
- _기본값_: `undefined`
|
|
622
|
-
- _설명_: clientId와 clientSecret은 intlayer 패키지가 oAuth2 인증을 사용하여 백엔드와 인증할 수 있도록 합니다. 액세스 토큰은 프로젝트와 관련된 사용자를 인증하는 데 사용됩니다. 액세스 토큰을 얻으려면 https://app.intlayer.org/project 에서 계정을 생성하세요.
|
|
623
|
-
- _예시_: `true`
|
|
624
|
-
- _참고_: 중요: clientId와 clientSecret은 비밀로 유지되어야 하며 공개적으로 공유되어서는 안 됩니다. 환경 변수와 같은 안전한 위치에 보관하시기 바랍니다.
|
|
625
|
-
|
|
626
|
-
- **clientSecret**:
|
|
627
|
-
- _유형_: `string` | `undefined`
|
|
628
|
-
- _기본값_: `undefined`
|
|
629
|
-
- _설명_: clientId와 clientSecret은 intlayer 패키지가 oAuth2 인증을 사용하여 백엔드와 인증할 수 있도록 합니다. 액세스 토큰은 프로젝트와 관련된 사용자를 인증하는 데 사용됩니다. 액세스 토큰을 얻으려면 https://app.intlayer.org/project 에서 계정을 생성하세요.
|
|
630
|
-
- _예시_: `true`
|
|
631
|
-
- _참고_: 중요: clientId와 clientSecret은 비밀로 유지되어야 하며 공개적으로 공유해서는 안 됩니다. 환경 변수와 같은 안전한 위치에 보관하시기 바랍니다.
|
|
632
|
-
|
|
633
|
-
- **dictionaryPriorityStrategy**:
|
|
634
|
-
- _유형_: `string`
|
|
635
|
-
- _기본값_: `'local_first'`
|
|
636
|
-
- _설명_: 로컬 사전과 원격 사전이 모두 존재할 경우 사전의 우선순위를 정하는 전략입니다. `'distant_first'`로 설정하면 애플리케이션이 원격 사전을 로컬 사전보다 우선시합니다. `'local_first'`로 설정하면 애플리케이션이 로컬 사전을 원격 사전보다 우선시합니다.
|
|
637
|
-
- _예시_: `'distant_first'`
|
|
638
|
-
|
|
639
|
-
- **liveSync**:
|
|
640
|
-
- _유형_: `boolean`
|
|
641
|
-
- _기본값_: `false`
|
|
642
|
-
- _설명_: CMS / 비주얼 에디터 / 백엔드에서 변경 사항이 감지되었을 때 애플리케이션 서버가 콘텐츠를 핫 리로드할지 여부를 나타냅니다.
|
|
643
|
-
- _예시_: `true`
|
|
644
|
-
- _참고_: 예를 들어, 새로운 사전이 추가되거나 업데이트되면 애플리케이션이 페이지에 표시할 콘텐츠를 업데이트합니다.
|
|
645
|
-
- _참고_: 라이브 싱크는 애플리케이션의 콘텐츠를 다른 서버로 외부화해야 합니다. 이는 애플리케이션 성능에 약간의 영향을 미칠 수 있음을 의미합니다. 이를 제한하기 위해 애플리케이션과 라이브 싱크 서버를 동일한 머신에 호스팅할 것을 권장합니다. 또한, 라이브 싱크와 `optimize`의 조합은 라이브 싱크 서버에 상당한 수의 요청을 발생시킬 수 있습니다. 인프라 환경에 따라 두 옵션과 그 조합을 테스트해보는 것을 권장합니다.
|
|
646
|
-
|
|
647
|
-
- **liveSyncPort**:
|
|
648
|
-
- _유형_: `number`
|
|
649
|
-
- _기본값_: `4000`
|
|
650
|
-
- _설명_: 라이브 싱크 서버의 포트입니다.
|
|
651
|
-
- _예시_: `4000`
|
|
652
|
-
- _참고_: 라이브 싱크 서버의 포트입니다.
|
|
653
|
-
|
|
654
|
-
- **liveSyncURL**:
|
|
655
|
-
- _유형_: `string`
|
|
656
|
-
- _기본값_: `'http://localhost:{liveSyncPort}'`
|
|
657
|
-
- _설명_: 라이브 싱크 서버의 URL입니다.
|
|
658
|
-
- _예시_: `'https://example.com'`
|
|
659
|
-
- _참고_: 기본적으로 localhost를 가리키지만 원격 라이브 싱크 서버의 경우 어떤 URL로도 변경할 수 있습니다.
|
|
660
|
-
|
|
661
|
-
### 미들웨어 설정
|
|
662
|
-
|
|
663
|
-
애플리케이션이 쿠키, 헤더 및 로케일 관리를 위한 URL 접두사를 처리하는 방식을 제어하는 설정입니다.
|
|
664
|
-
|
|
665
|
-
#### 속성
|
|
666
|
-
|
|
667
|
-
- **headerName**:
|
|
668
|
-
- _유형_: `string`
|
|
669
|
-
- _기본값_: `'x-intlayer-locale'`
|
|
670
|
-
- _설명_: 로케일을 결정하는 데 사용되는 HTTP 헤더의 이름입니다.
|
|
671
|
-
- _예시_: `'x-custom-locale'`
|
|
672
|
-
- _참고_: API 기반 로케일 결정에 유용합니다.
|
|
673
|
-
|
|
674
|
-
- **cookieName**:
|
|
675
|
-
- _유형_: `string`
|
|
676
|
-
- _기본값_: `'intlayer-locale'`
|
|
677
|
-
- _설명_: 로케일을 저장하는 데 사용되는 쿠키의 이름입니다.
|
|
678
|
-
- _예시_: `'custom-locale'`
|
|
679
|
-
- _참고_: 세션 간 로케일을 유지하는 데 사용됩니다.
|
|
680
|
-
|
|
681
|
-
- **prefixDefault**:
|
|
682
|
-
- _유형_: `boolean`
|
|
683
|
-
- _기본값_: `false`
|
|
684
|
-
- _설명_: 기본 로케일을 URL에 포함할지 여부입니다.
|
|
685
|
-
- _예시_: `true`
|
|
686
|
-
- _참고_:
|
|
687
|
-
- `true`이고 `defaultLocale = 'en'`인 경우: 경로 = `/en/dashboard` 또는 `/fr/dashboard`
|
|
688
|
-
- `false`이고 `defaultLocale = 'en'`인 경우: 경로 = `/dashboard` 또는 `/fr/dashboard`
|
|
689
|
-
|
|
690
|
-
- **basePath**:
|
|
691
|
-
- _유형_: `string`
|
|
692
|
-
- _기본값_: `''`
|
|
693
|
-
- _설명_: 애플리케이션 URL의 기본 경로입니다.
|
|
694
|
-
- _예시_: `'/my-app'`
|
|
695
|
-
- _참고_:
|
|
696
|
-
- 애플리케이션이 `https://example.com/my-app`에 호스팅되는 경우
|
|
697
|
-
- 기본 경로는 `'/my-app'`입니다.
|
|
698
|
-
- URL은 `https://example.com/my-app/en`이 됩니다.
|
|
699
|
-
- 기본 경로가 설정되지 않은 경우, URL은 `https://example.com/en`이 됩니다.
|
|
700
|
-
|
|
701
|
-
- **rewrite**:
|
|
702
|
-
- _유형_: `Record<string, StrictModeLocaleMap<string>>`
|
|
703
|
-
- _기본값_: `undefined`
|
|
704
|
-
- _설명_: 특정 경로에 대한 기본 라우팅 모드를 재정의하는 사용자 정의 URL 재작성 규칙. 표준 라우팅 동작과 다른 언어별 경로를 정의할 수 있습니다. `[param]` 구문을 사용한 동적 라우트 매개변수를 지원합니다.
|
|
705
|
-
- _예시_:
|
|
706
|
-
```typescript
|
|
707
|
-
routing: {
|
|
708
|
-
mode: "prefix-no-default", // 폴백 전략
|
|
709
|
-
rewrite: nextjsRewrite({
|
|
710
|
-
"/[locale]/about": {
|
|
711
|
-
en: "/[locale]/about",
|
|
712
|
-
fr: "/[locale]/a-propos",
|
|
713
|
-
},
|
|
714
|
-
"/[locale]/product/[slug]": {
|
|
715
|
-
en: "/[locale]/product/[slug]",
|
|
716
|
-
fr: "/[locale]/produit/[slug]",
|
|
717
|
-
},
|
|
718
|
-
"/[locale]/blog/[category]/[id]": {
|
|
719
|
-
en: "/[locale]/blog/[category]/[id]",
|
|
720
|
-
fr: "/[locale]/journal/[category]/[id]",
|
|
721
|
-
},
|
|
722
|
-
}),
|
|
723
|
-
}
|
|
724
|
-
```
|
|
725
|
-
- _참고_: 재작성 규칙은 기본 `mode` 동작보다 우선순위가 높습니다. 경로가 재작성 규칙과 일치하는 경우, 표준 언어 접두사 대신 재작성 구성의 지역화된 경로가 사용됩니다.
|
|
726
|
-
- _참고_: 동적 라우트 매개변수는 대괄호 표기법(예: `[slug]`, `[id]`)을 사용하여 지원됩니다. 매개변수 값은 URL에서 자동으로 추출되어 재작성된 경로에 보간됩니다.
|
|
727
|
-
- _참고_: Next.js 및 Vite 애플리케이션에서 작동합니다. 미들웨어/프록시는 내부 라우트 구조와 일치하도록 들어오는 요청을 자동으로 재작성합니다.
|
|
728
|
-
- _참고_: `getLocalizedUrl()`로 URL을 생성할 때, 제공된 경로와 일치하는 경우 재작성 규칙이 자동으로 적용됩니다.
|
|
729
|
-
- _참조_: 자세한 내용은 [사용자 정의 URL 재작성](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/custom_url_rewrites.md)을 참조하세요.
|
|
730
|
-
|
|
731
|
-
- **serverSetCookie**:
|
|
732
|
-
- _유형_: `string`
|
|
733
|
-
- _기본값_: `'always'`
|
|
734
|
-
- _설명_: 서버에서 로케일 쿠키를 설정하는 규칙입니다.
|
|
735
|
-
- _옵션_: `'always'`, `'never'`
|
|
736
|
-
- _예시_: `'never'`
|
|
737
|
-
- _참고_: 로케일 쿠키를 모든 요청마다 설정할지 또는 전혀 설정하지 않을지를 제어합니다.
|
|
738
|
-
|
|
739
|
-
- **noPrefix**:
|
|
740
|
-
- _유형_: `boolean`
|
|
741
|
-
- _기본값_: `false`
|
|
742
|
-
- _설명_: URL에서 로케일 접두사를 생략할지 여부입니다.
|
|
743
|
-
- _예시_: `true`
|
|
744
|
-
- _참고_:
|
|
745
|
-
- `true`인 경우: URL에 접두사가 없습니다.
|
|
746
|
-
- `false`인 경우: URL에 접두사가 있습니다.
|
|
747
|
-
- `basePath = '/my-app'`인 경우 예시:
|
|
748
|
-
- `noPrefix = false`인 경우: URL은 `https://example.com/my-app/en`이 됩니다.
|
|
749
|
-
- `noPrefix = true`인 경우: URL은 `https://example.com`이 됩니다.
|
|
750
|
-
|
|
751
|
-
---
|
|
752
|
-
|
|
753
|
-
### 콘텐츠 구성
|
|
754
|
-
|
|
755
|
-
애플리케이션 내 콘텐츠 처리와 관련된 설정으로, 디렉터리 이름, 파일 확장자 및 파생 구성 등을 포함합니다.
|
|
756
|
-
|
|
757
|
-
#### 속성
|
|
758
|
-
|
|
759
|
-
- **autoFill**:
|
|
760
|
-
- _유형_: `boolean | string | FilePathPattern | { [key in Locales]?: string }`
|
|
761
|
-
- _기본값_: `undefined`
|
|
762
|
-
- _설명_: AI를 사용하여 콘텐츠를 자동으로 채우는 방식을 지정합니다. `intlayer.config.ts` 파일에서 전역으로 선언할 수 있습니다.
|
|
763
|
-
- _예시_: true
|
|
764
|
-
- _예시_: `'./{{fileName}}.content.json'`
|
|
765
|
-
- _예시_: `{ fr: './{{fileName}}.fr.content.json', es: './{{fileName}}.es.content.json' }`
|
|
766
|
-
- _참고_: 자동 채우기 설정은 다음과 같이 구성할 수 있습니다:
|
|
767
|
-
- boolean: 모든 로케일에 대해 자동 채우기 활성화
|
|
768
|
-
- string: 단일 파일 경로나 변수 템플릿 경로
|
|
769
|
-
- object: 로케일별 파일 경로
|
|
770
|
-
|
|
771
|
-
- **watch**:
|
|
772
|
-
- _타입_: `boolean`
|
|
773
|
-
- _기본값_: `process.env.NODE_ENV === 'development'`
|
|
774
|
-
- _설명_: Intlayer가 앱 내 콘텐츠 선언 파일의 변경 사항을 감지하여 관련 사전을 재빌드할지 여부를 나타냅니다.
|
|
775
|
-
|
|
776
|
-
- **fileExtensions**:
|
|
777
|
-
- _타입_: `string[]`
|
|
778
|
-
- _기본값_: `['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']`
|
|
779
|
-
- _설명_: 사전을 빌드할 때 찾을 파일 확장자들입니다.
|
|
780
|
-
- _예시_: `['.data.ts', '.data.js', '.data.json']`
|
|
781
|
-
- _참고_: 파일 확장자를 사용자 정의하면 충돌을 방지할 수 있습니다.
|
|
782
|
-
|
|
783
|
-
- **dictionaryOutput**:
|
|
784
|
-
- _유형_: `string[]`
|
|
785
|
-
- _기본값_: `['intlayer']`
|
|
786
|
-
- _설명_: 사용할 사전 출력 유형입니다. 예: `'intlayer'` 또는 `'i18next'`.
|
|
787
|
-
|
|
788
|
-
- **contentDir**:
|
|
789
|
-
- _유형_: `string[]`
|
|
790
|
-
- _기본값_: `['.']`
|
|
791
|
-
- _예시_: `['src', '../../ui-library', require.resolve("@my-package/content")]`
|
|
792
|
-
- _설명_: 콘텐츠 정의 파일(`.content.*`)이 저장된 디렉토리 경로입니다.
|
|
793
|
-
- _참고_: 사전을 다시 빌드하기 위해 콘텐츠 파일을 감시하는 데 사용됩니다.
|
|
794
|
-
|
|
795
|
-
- **codeDir**:
|
|
796
|
-
- _유형_: `string[]`
|
|
797
|
-
- _기본값_: `['.']`
|
|
798
|
-
- _예시_: `['src', '../../ui-library']`
|
|
799
|
-
- _설명_: 코드가 저장된 디렉토리 경로입니다(기본 디렉토리 기준 상대 경로)。
|
|
800
|
-
- _참고_: 코드 파일을 변환(정리, 최적화)하기 위해 감시하는 데 사용됩니다. 이를 `contentDir`와 분리해 두면 콘텐츠 파일의 불필요한 스캔을 피해 빌드 성능을 향상시킬 수 있습니다.
|
|
801
|
-
|
|
802
|
-
- **dictionariesDir**:
|
|
803
|
-
- _타입_: `string`
|
|
804
|
-
- _기본값_: `'.intlayer/dictionaries'`
|
|
805
|
-
- _설명_: 중간 결과나 출력 결과를 저장하는 디렉토리 경로입니다.
|
|
806
|
-
|
|
807
|
-
- **moduleAugmentationDir**:
|
|
808
|
-
- _타입_: `string`
|
|
809
|
-
- _기본값_: `'.intlayer/types'`
|
|
810
|
-
- _설명_: 모듈 확장을 위한 디렉토리로, IDE의 더 나은 제안과 타입 검사를 가능하게 합니다.
|
|
811
|
-
- _예시_: `'intlayer-types'`
|
|
812
|
-
- _참고_: 반드시 `tsconfig.json`에 포함시켜야 합니다.
|
|
813
|
-
|
|
814
|
-
- **unmergedDictionariesDir**:
|
|
815
|
-
- _타입_: `string`
|
|
816
|
-
- _기본값_: `'.intlayer/unmerged_dictionary'`
|
|
817
|
-
- _설명_: 병합되지 않은 사전을 저장하는 디렉토리입니다.
|
|
818
|
-
- _예시_: `'translations'`
|
|
819
|
-
|
|
820
|
-
- **dictionariesDir**:
|
|
821
|
-
- _유형_: `string`
|
|
822
|
-
- _기본값_: `'.intlayer/dictionary'`
|
|
823
|
-
- _설명_: 지역화 사전을 저장하는 디렉토리입니다.
|
|
824
|
-
- _예시_: `'translations'`
|
|
825
|
-
|
|
826
|
-
- **i18nextResourcesDir**:
|
|
827
|
-
- _유형_: `string`
|
|
828
|
-
- _기본값_: `'i18next_dictionary'`
|
|
829
|
-
- _설명_: i18n 사전을 저장하는 디렉토리입니다.
|
|
830
|
-
- _예시_: `'translations'`
|
|
831
|
-
- _참고_: 이 디렉토리가 i18next 출력 유형에 맞게 구성되어 있는지 확인하세요.
|
|
832
|
-
|
|
833
|
-
- **typesDir**:
|
|
834
|
-
- _유형_: `string`
|
|
835
|
-
- _기본값_: `'types'`
|
|
836
|
-
- _설명_: 사전 타입을 저장하는 디렉토리입니다.
|
|
837
|
-
- _예시_: `'intlayer-types'`
|
|
838
|
-
|
|
839
|
-
- **mainDir**:
|
|
840
|
-
- _유형_: `string`
|
|
841
|
-
- _기본값_: `'main'`
|
|
842
|
-
- _설명_: 주요 애플리케이션 파일이 저장되는 디렉토리입니다.
|
|
843
|
-
- _예시_: `'intlayer-main'`
|
|
844
|
-
|
|
845
|
-
- **excludedPath**:
|
|
846
|
-
- _유형_: `string[]`
|
|
847
|
-
- _기본값_: `['node_modules']`
|
|
848
|
-
- _설명_: 콘텐츠 검색에서 제외할 디렉토리 목록입니다.
|
|
849
|
-
- _참고_: 이 설정은 아직 사용되지 않았으며, 향후 구현될 예정입니다.
|
|
850
|
-
|
|
851
|
-
---
|
|
852
|
-
|
|
853
|
-
### 시스템 구성
|
|
854
|
-
|
|
855
|
-
Intlayer의 내부 경로 및 출력 결과와 관련된 설정입니다. 이러한 설정은 일반적으로 내부적이며 사용자가 수정할 필요가 없습니다.
|
|
856
|
-
|
|
857
|
-
#### 속성
|
|
858
|
-
|
|
859
|
-
- **baseDir**:
|
|
860
|
-
- _유형_: `string`
|
|
861
|
-
- _기본값_: `process.cwd()`
|
|
862
|
-
- _설명_: 프로젝트의 기본 디렉토리입니다.
|
|
863
|
-
- _예시_: `'/path/to/project'`
|
|
864
|
-
- _참고_: 모든 Intlayer 관련 디렉토리를 해석하는 데 사용됩니다.
|
|
865
|
-
|
|
866
|
-
### 사전 구성
|
|
867
|
-
|
|
868
|
-
자동 채우기 동작 및 콘텐츠 생성을 포함하여 사전 작업을 제어하는 설정입니다.
|
|
869
|
-
|
|
870
|
-
이 사전 구성은 두 가지 주요 목적을 제공합니다:
|
|
871
|
-
|
|
872
|
-
1. **기본값**: 콘텐츠 선언 파일을 생성할 때 기본값 정의
|
|
873
|
-
2. **폴백 동작**: 특정 필드가 정의되지 않은 경우 폴백 값을 제공하여 사전 작업 동작을 전역적으로 정의할 수 있도록 함
|
|
874
|
-
|
|
875
|
-
콘텐츠 선언 파일 및 구성 값 적용 방법에 대한 자세한 내용은 [콘텐츠 파일 문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md)를 참조하세요.
|
|
876
|
-
|
|
877
|
-
#### 속성
|
|
878
|
-
|
|
879
|
-
- **fill**
|
|
880
|
-
- **description**
|
|
881
|
-
- **locale**
|
|
882
|
-
- **location**
|
|
883
|
-
- **priority**
|
|
884
|
-
- **live**
|
|
885
|
-
- **schema**
|
|
886
|
-
- **title**
|
|
887
|
-
- **tags**
|
|
888
|
-
- **version**
|
|
889
|
-
|
|
890
|
-
---
|
|
891
|
-
|
|
892
|
-
### 로거 설정
|
|
893
|
-
|
|
894
|
-
로거를 제어하는 설정으로, 사용할 접두사(prefix)를 포함합니다.
|
|
895
|
-
|
|
896
|
-
#### 속성
|
|
897
|
-
|
|
898
|
-
- **mode**:
|
|
899
|
-
- _유형_: `string`
|
|
900
|
-
- _기본값_: `default`
|
|
901
|
-
- _설명_: 로거의 모드를 나타냅니다.
|
|
902
|
-
- _옵션_: `default`, `verbose`, `disabled`
|
|
903
|
-
- _예시_: `default`
|
|
904
|
-
- _참고_: 로거의 모드입니다. verbose 모드는 더 많은 정보를 기록하지만 디버깅 목적으로 사용할 수 있습니다. disabled 모드는 로거를 비활성화합니다.
|
|
905
|
-
|
|
906
|
-
- **prefix**:
|
|
907
|
-
- _유형_: `string`
|
|
908
|
-
- _기본값_: `'[intlayer] '`
|
|
909
|
-
- _설명_: 로거의 접두사입니다.
|
|
910
|
-
- _예시_: `'[my custom prefix] '`
|
|
911
|
-
- _참고_: 로거의 접두사입니다.
|
|
912
|
-
|
|
913
|
-
### AI 구성
|
|
914
|
-
|
|
915
|
-
Intlayer의 AI 기능을 제어하는 설정으로, 제공자(provider), 모델(model), API 키를 포함합니다.
|
|
916
|
-
|
|
917
|
-
이 구성은 [Intlayer 대시보드](https://app.intlayer.org/project)에 액세스 키로 등록된 경우 선택 사항입니다. Intlayer는 귀하의 요구에 가장 효율적이고 비용 효과적인 AI 솔루션을 자동으로 관리합니다. 기본 옵션을 사용하면 Intlayer가 가장 적합한 모델을 지속적으로 업데이트하므로 장기적인 유지 관리가 더 용이합니다.
|
|
918
|
-
|
|
919
|
-
자신의 API 키나 특정 모델을 사용하려는 경우, 사용자 정의 AI 구성을 정의할 수 있습니다.
|
|
920
|
-
이 AI 구성은 Intlayer 환경 전반에 걸쳐 전역적으로 사용됩니다. CLI 명령어는 이 설정을 기본값으로 사용하며(예: `fill`), SDK, 비주얼 에디터, CMS에서도 동일하게 적용됩니다. 특정 사용 사례에 대해서는 명령어 매개변수를 사용하여 이러한 기본값을 재정의할 수 있습니다.
|
|
921
|
-
|
|
922
|
-
Intlayer는 향상된 유연성과 선택권을 위해 여러 AI 공급자를 지원합니다. 현재 지원되는 공급자는 다음과 같습니다:
|
|
923
|
-
|
|
924
|
-
- **OpenAI** (기본값)
|
|
925
|
-
- **Anthropic Claude**
|
|
926
|
-
- **Mistral AI**
|
|
927
|
-
- **DeepSeek**
|
|
928
|
-
- **Google Gemini**
|
|
929
|
-
- **Meta Llama**
|
|
930
|
-
- **Ollama**
|
|
931
|
-
- **OpenRouter**
|
|
932
|
-
- **Alibaba Cloud**
|
|
933
|
-
- **Fireworks**
|
|
934
|
-
- **Hugging Face**
|
|
935
|
-
- **Groq**
|
|
936
|
-
- **Amazon Bedrock**
|
|
937
|
-
- **Google AI Studio**
|
|
938
|
-
- **Google Vertex**
|
|
939
|
-
- **Together.ai**
|
|
940
|
-
- **ollama**
|
|
941
|
-
|
|
942
|
-
#### 속성
|
|
943
|
-
|
|
944
|
-
- **provider**:
|
|
945
|
-
- _유형_: `string`
|
|
946
|
-
- _기본값_: `'openai'`
|
|
947
|
-
- _설명_: Intlayer의 AI 기능에 사용할 공급자입니다.
|
|
948
|
-
- _옵션_: `'openai'`, `'anthropic'`, `'mistral'`, `'deepseek'`, `'gemini'`, `'ollama'`, `'openrouter'`, `'alibaba'`, `'fireworks'`, `'groq'`, `'huggingface'`, `'bedrock'`, `'googleaistudio'`, `'googlevertex'`, `'togetherai'`
|
|
949
|
-
- _예시_: `'anthropic'`
|
|
950
|
-
- _참고_: 서로 다른 공급자는 서로 다른 API 키와 가격 모델을 요구할 수 있습니다.
|
|
951
|
-
|
|
952
|
-
- **model**:
|
|
953
|
-
- _유형_: `string`
|
|
954
|
-
- _기본값_: 없음
|
|
955
|
-
- _설명_: Intlayer의 AI 기능에 사용할 모델입니다.
|
|
956
|
-
- _예시_: `'gpt-4o-2024-11-20'`
|
|
957
|
-
- _참고_: 사용할 특정 모델은 공급자에 따라 다릅니다.
|
|
958
|
-
|
|
959
|
-
- **temperature**:
|
|
960
|
-
- _유형_: `number`
|
|
961
|
-
- _기본값_: 없음
|
|
962
|
-
- _설명_: temperature는 AI 응답의 무작위성을 제어합니다.
|
|
963
|
-
- _예시_: `0.1`
|
|
964
|
-
- _참고_: 더 높은 temperature는 AI를 더 창의적이고 예측 불가능하게 만듭니다.
|
|
965
|
-
|
|
966
|
-
- **apiKey**:
|
|
967
|
-
- _유형_: `string`
|
|
968
|
-
- _기본값_: 없음
|
|
969
|
-
- _설명_: 선택한 공급자에 대한 API 키입니다.
|
|
970
|
-
- _예시_: `process.env.OPENAI_API_KEY`
|
|
971
|
-
- _참고_: 중요: API 키는 비밀로 유지해야 하며 공개적으로 공유해서는 안 됩니다. 환경 변수와 같은 안전한 위치에 보관하시기 바랍니다.
|
|
972
|
-
|
|
973
|
-
- **applicationContext**:
|
|
974
|
-
- _유형_: `string`
|
|
975
|
-
- _기본값_: 없음
|
|
976
|
-
- _설명_: AI 모델에 애플리케이션에 대한 추가 컨텍스트를 제공하여 더 정확하고 상황에 적합한 번역을 생성하도록 돕습니다. 여기에는 앱의 도메인, 대상 사용자, 톤 또는 특정 용어에 대한 정보가 포함될 수 있습니다.
|
|
977
|
-
|
|
978
|
-
- **baseURL**:
|
|
979
|
-
- _유형_: `string`
|
|
980
|
-
- _기본값_: 없음
|
|
981
|
-
- _설명_: AI API의 기본 URL입니다.
|
|
982
|
-
- _예시_: `'https://api.openai.com/v1'`
|
|
983
|
-
- _참고_: 로컬 또는 사용자 정의 AI API 엔드포인트를 가리키는 데 사용할 수 있습니다.
|
|
984
|
-
|
|
985
|
-
- **dataSerialization**:
|
|
986
|
-
- _타입_: `'json' | 'toon'`
|
|
987
|
-
- _기본값_: `'json'`
|
|
988
|
-
- _설명_: Intlayer의 AI 기능에 사용할 데이터 직렬화 형식.
|
|
989
|
-
- _예시_: `'toon'`
|
|
990
|
-
- _참고_: `json`: 표준적이고 신뢰할 수 있음; 더 많은 토큰을 사용함. `toon`: 토큰이 적게 들지만 JSON보다 일관성이 떨어짐.
|
|
991
|
-
|
|
992
|
-
### 빌드 구성
|
|
993
|
-
|
|
994
|
-
Intlayer가 애플리케이션의 국제화를 최적화하고 빌드하는 방식을 제어하는 설정입니다.
|
|
995
|
-
|
|
996
|
-
빌드 옵션은 `@intlayer/babel` 및 `@intlayer/swc` 플러그인에 적용됩니다.
|
|
997
|
-
|
|
998
|
-
> 개발 모드에서는 Intlayer가 사전을 정적 임포트하여 개발 경험을 단순화합니다.
|
|
999
|
-
|
|
1000
|
-
> 최적화 시, Intlayer는 청크 최적화를 위해 사전 호출을 대체하여 최종 번들이 실제로 사용되는 사전만 임포트하도록 합니다.
|
|
1001
|
-
|
|
1002
|
-
#### 속성
|
|
1003
|
-
|
|
1004
|
-
- **mode**:
|
|
1005
|
-
- _타입_: `'auto' | 'manual'`
|
|
1006
|
-
- _기본값_: `'auto'`
|
|
1007
|
-
- _설명_: 빌드 모드를 제어합니다.
|
|
1008
|
-
- _예시_: `'manual'`
|
|
1009
|
-
- _참고_: 'auto'인 경우, 애플리케이션이 빌드될 때 빌드가 자동으로 활성화됩니다.
|
|
1010
|
-
- _참고_: 'manual'인 경우, 빌드 명령이 실행될 때만 빌드가 설정됩니다.
|
|
1011
|
-
- _참고_: 사전 빌드를 비활성화하는 데 사용할 수 있습니다. 예를 들어 Node.js 환경에서 실행을 피해야 하는 경우입니다.
|
|
1012
|
-
|
|
1013
|
-
- **checkTypes**:
|
|
1014
|
-
- _형식_: `boolean`
|
|
1015
|
-
- _기본값_: `false`
|
|
1016
|
-
- _설명_: 빌드가 TypeScript 유형을 확인하고 오류를 기록해야 하는지 여부를 나타냅니다.
|
|
1017
|
-
- _참고_: 이로 인해 빌드 속도가 느려질 수 있습니다.
|
|
1018
|
-
|
|
1019
|
-
- **optimize**:
|
|
1020
|
-
- _타입_: `boolean`
|
|
1021
|
-
- _기본값_: `process.env.NODE_ENV === 'production'`
|
|
1022
|
-
- _설명_: 빌드를 최적화할지 여부를 제어합니다.
|
|
1023
|
-
- _예시_: `true`
|
|
1024
|
-
- _참고_: 활성화되면 Intlayer는 청크 최적화를 위해 모든 사전 호출을 대체합니다. 이렇게 하면 최종 번들은 사용되는 사전만 임포트합니다. 모든 임포트는 사전 로딩 시 비동기 처리를 피하기 위해 정적 임포트로 유지됩니다.
|
|
1025
|
-
- _참고_: Intlayer는 `importMode` 옵션에 정의된 모드에 따라 모든 `useIntlayer` 호출을 대체하며, `getIntlayer`는 `getDictionary`로 대체합니다.
|
|
1026
|
-
- _참고_: 이 옵션은 `@intlayer/babel` 및 `@intlayer/swc` 플러그인에 의존합니다.
|
|
1027
|
-
- _참고_: `useIntlayer` 호출에서 모든 키가 정적으로 선언되어 있는지 확인하세요. 예: `useIntlayer('navbar')`.
|
|
1028
|
-
|
|
1029
|
-
- **outputFormat**:
|
|
1030
|
-
- _타입_: `'esm' | 'cjs'`
|
|
1031
|
-
- _기본값_: `'esm'`
|
|
1032
|
-
- _설명_: 사전의 출력 형식을 제어합니다.
|
|
1033
|
-
- _예시_: `'cjs'`
|
|
1034
|
-
- _참고_: 사전의 출력 형식입니다.
|
|
1035
|
-
|
|
1036
|
-
- **traversePattern**:
|
|
1037
|
-
- _유형_: `string[]`
|
|
1038
|
-
- _기본값_: `['**\/*.{js,ts,mjs,cjs,jsx,tsx}', '!**\/node_modules/**']`
|
|
1039
|
-
- _설명_: 최적화 중에 탐색할 파일을 정의하는 패턴입니다.
|
|
1040
|
-
- _예시_: `['src/**\/*.{ts,tsx}', '../ui-library/**\/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1041
|
-
- _참고_: 최적화를 관련 코드 파일로 제한하여 빌드 성능을 향상시키는 데 사용합니다.
|
|
1042
|
-
- _참고_: `optimize`가 비활성화된 경우 이 옵션은 무시됩니다.
|
|
1043
|
-
- _참고_: glob 패턴을 사용하세요.
|
|
1044
|
-
|
|
1045
|
-
---
|
|
1046
|
-
|
|
1047
|
-
### 컴파일러 설정
|
|
1048
|
-
|
|
1049
|
-
구성 요소에서 직접 사전을 추출하는 Intlayer 컴파일러를 제어하는 설정입니다.
|
|
1050
|
-
|
|
1051
|
-
#### 속성
|
|
1052
|
-
|
|
1053
|
-
- **enabled**:
|
|
1054
|
-
- _타입_: `boolean | 'build-only'`
|
|
1055
|
-
- _기본값_: `true`
|
|
1056
|
-
- _설명_: 사전을 추출하기 위해 컴파일러를 활성화해야 하는지 여부를 나타냅니다.
|
|
1057
|
-
- _예시_: `'build-only'`
|
|
1058
|
-
- _참고_: `'build-only'`로 설정하면 개발 모드 동안 컴파일러를 건너뛰어 시작 시간을 단축합니다. 빌드 명령 시에만 실행됩니다.
|
|
1059
|
-
|
|
1060
|
-
- **dictionaryKeyPrefix**:
|
|
1061
|
-
- _타입_: `string`
|
|
1062
|
-
- _기본값_: `''`
|
|
1063
|
-
- _설명_: 추출된 사전 키의 접두사입니다.
|
|
1064
|
-
- _예시_: `'my-key-'`
|
|
1065
|
-
- _참고_: 사전을 추출할 때 파일 이름을 기반으로 키가 생성됩니다. 충돌을 방지하기 위해 생성된 키에 이 접두사가 추가됩니다.
|
|
1066
|
-
|
|
1067
|
-
- **saveComponents**:
|
|
1068
|
-
- _타입_: `boolean`
|
|
1069
|
-
- _기본값_: `false`
|
|
1070
|
-
- _설명_: 변환 후 구성 요소를 저장해야 하는지 여부를 나타냅니다.
|
|
1071
|
-
- _참고_: true인 경우 컴파일러는 원본 파일을 변환된 파일로 대체합니다. 그렇게 하면 컴파일러를 한 번만 실행하여 앱을 변환한 다음 제거할 수 있습니다.
|
|
1072
|
-
|
|
1073
|
-
- **transformPattern**:
|
|
1074
|
-
- _타입_: `string | string[]`
|
|
1075
|
-
- _기본값_: `['**/*.{ts,tsx,jsx,js,cjs,mjs,svelte,vue}', '!**/node_modules/**']`
|
|
1076
|
-
- _설명_: 최적화 중에 탐색할 파일을 정의하는 패턴입니다.
|
|
1077
|
-
- _예시_: `['src/**/*.{ts,tsx}', '!**/node_modules/**']`
|
|
1078
|
-
- _참고_: 최적화를 관련 코드 파일로 제한하여 빌드 성능을 향상시키는 데 사용합니다.
|
|
1079
|
-
|
|
1080
|
-
- **excludePattern**:
|
|
1081
|
-
- _타입_: `string | string[]`
|
|
1082
|
-
- _기본값_: `['**/node_modules/**']`
|
|
1083
|
-
- _설명_: 최적화 중에 제외할 파일을 정의하는 패턴입니다.
|
|
1084
|
-
- _예시_: `['**/node_modules/**', '!**/node_modules/react/**']`
|
|
1085
|
-
|
|
1086
|
-
- **output**:
|
|
1087
|
-
- _형식_: `FilePathPattern`
|
|
1088
|
-
- _기본값_: `undefined`
|
|
1089
|
-
- _설명_: 출력 파일 경로를 정의합니다. `outputDir`을 대체합니다. 문자열 템플릿 또는 함수를 통해 동적 변수를 지원합니다. 지원되는 변수: `{{fileName}}`, `{{key}}`, `{{locale}}`, `{{extension}}`, `{{componentFileName}}`, `{{componentExtension}}`, `{{format}}`, `{{componentFormat}}`, `{{componentDirPath}}`.
|
|
1090
|
-
- _참고_: `./` 경로는 구성 요소를 기준으로 해결됩니다. `/` 경로는 프로젝트 루트(`baseDir`)를 기준으로 해결됩니다.
|
|
1091
|
-
- _참고_: 경로에 `{{locale}}` 변수를 포함하면 로케일별로 분리된 사전 생성이 활성화됩니다.
|
|
1092
|
-
- _예시_:
|
|
1093
|
-
- **구성 요소 옆에 다국어 파일 생성**:
|
|
1094
|
-
- 문자열: `'./{{fileName}}{{extension}}'`
|
|
1095
|
-
- 함수: `({ fileName, extension }) => \`./${fileName}${extension}\``
|
|
1096
|
-
|
|
1097
|
-
- **로케일별 중앙 집중식 JSON 출력**:
|
|
1098
|
-
- 문자열: `'/locales/{{locale}}/{{key}}.content.json'`
|
|
1099
|
-
- 함수: `({ key, locale }) => \`/locales/${locale}/${key}.content.json\``
|
|
1100
|
-
|
|
1101
|
-
- **noMetadata**:
|
|
1102
|
-
- _형식_: `boolean`
|
|
1103
|
-
- _기본값_: `false`
|
|
1104
|
-
- _설명_: 메타데이터를 파일에 저장할지 여부를 나타냅니다. true인 경우 컴파일러는 사전의 메타데이터(키, 콘텐츠 래퍼)를 저장하지 않습니다. 로케일별 i18next 또는 ICU MessageFormat JSON 출력에 유용합니다.
|
|
1105
|
-
- _참고_: `loadJSON` 플러그인과 함께 사용할 때 유용합니다.
|
|
1106
|
-
- _예시_:
|
|
1107
|
-
`true`인 경우:
|
|
1108
|
-
```json
|
|
1109
|
-
{
|
|
1110
|
-
"key": "value"
|
|
1111
|
-
}
|
|
1112
|
-
```
|
|
1113
|
-
`false`인 경우:
|
|
1114
|
-
```json
|
|
1115
|
-
{
|
|
1116
|
-
"key": "value",
|
|
1117
|
-
"content": {
|
|
1118
|
-
"key": "value"
|
|
1119
|
-
}
|
|
1120
|
-
}
|
|
1121
|
-
```
|