@intlayer/docs 8.4.6 → 8.4.8

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.
Files changed (33) hide show
  1. package/blog/en/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  2. package/blog/en-GB/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  3. package/blog/es/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  4. package/blog/id/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  5. package/blog/it/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  6. package/blog/ja/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  7. package/blog/ko/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  8. package/blog/uk/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  9. package/blog/vi/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  10. package/blog/zh/next-i18next_vs_next-intl_vs_intlayer.md +1 -3
  11. package/docs/ar/configuration.md +300 -264
  12. package/docs/cs/configuration.md +958 -0
  13. package/docs/de/configuration.md +285 -249
  14. package/docs/en/configuration.md +115 -137
  15. package/docs/en-GB/configuration.md +272 -237
  16. package/docs/es/configuration.md +161 -125
  17. package/docs/fr/configuration.md +137 -101
  18. package/docs/it/configuration.md +294 -259
  19. package/docs/ja/configuration.md +269 -233
  20. package/docs/nl/configuration.md +958 -0
  21. package/docs/pt/configuration.md +311 -275
  22. package/docs/ru/configuration.md +287 -272
  23. package/docs/tr/configuration.md +265 -229
  24. package/package.json +6 -6
  25. package/docs/bn/configuration.md +0 -922
  26. package/docs/hi/configuration.md +0 -922
  27. package/docs/id/configuration.md +0 -922
  28. package/docs/ko/configuration.md +0 -922
  29. package/docs/pl/configuration.md +0 -922
  30. package/docs/uk/configuration.md +0 -922
  31. package/docs/ur/configuration.md +0 -922
  32. package/docs/vi/configuration.md +0 -922
  33. package/docs/zh/configuration.md +0 -922
@@ -1,922 +0,0 @@
1
- ---
2
- createdAt: 2024-08-13
3
- updatedAt: 2026-03-20
4
- title: 설정 (Configuration)
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.4.0
18
- date: 2026-03-20
19
- changes: 'compiler.output' 및 'dictionary.fill'에 대한 로케일별 객체 표기법 추가
20
- - version: 8.3.0
21
- date: 2026-03-11
22
- changes: 'baseDir'을 'content' 설정에서 'system' 설정으로 이동
23
- - version: 8.2.0
24
- date: 2026-03-09
25
- changes: 컴파일러 옵션 업데이트, 'output' 및 'noMetadata' 지원 추가
26
- - version: 8.1.7
27
- date: 2026-02-25
28
- changes: 컴파일러 옵션 업데이트
29
- - version: 8.1.5
30
- date: 2026-02-23
31
- changes: 컴파일러 옵션 'build-only' 및 딕셔너리 접두사 추가
32
- - version: 8.0.6
33
- date: 2026-02-12
34
- changes: Open Router, Alibaba, Amazon, Google Vertex Bedrock, Fireworks, Groq, Hugging Face 및 Together.ai 제공업체 지원 추가
35
- - version: 8.0.5
36
- date: 2026-02-06
37
- changes: AI 설정에 `dataSerialization` 추가
38
- - version: 8.0.0
39
- date: 2026-01-24
40
- changes: 기본 메커니즘을 더 잘 설명하기 위해 가져오기 모드 `live`를 `fetch`로 변경.
41
- - version: 8.0.0
42
- date: 2026-01-22
43
- changes: 빌드 설정 `importMode`를 `dictionary` 설정으로 이동.
44
- - version: 8.0.0
45
- date: 2026-01-22
46
- changes: 라우팅 설정에 `rewrite` 옵션 추가
47
- - version: 8.0.0
48
- date: 2026-01-18
49
- changes: 시스템 설정을 콘텐츠 설정에서 분리. 내부 경로를 `system` 속성으로 이동. 콘텐츠 파일과 코드 변환을 분리하기 위해 `codeDir` 추가.
50
- - version: 8.0.0
51
- date: 2026-01-18
52
- changes: 딕셔너리 옵션 `location` 및 `schema` 추가
53
- - version: 7.5.1
54
- date: 2026-01-10
55
- changes: JSON5 및 JSONC 파일 형식 지원 추가
56
- - version: 7.5.0
57
- date: 2025-12-17
58
- changes: `buildMode` 옵션 추가
59
- - version: 7.0.0
60
- date: 2025-10-25
61
- changes: `dictionary` 설정 추가
62
- - version: 7.0.0
63
- date: 2025-10-21
64
- changes: `middleware`를 라우팅 설정 `routing`으로 대체
65
- - version: 7.0.0
66
- date: 2025-10-12
67
- changes: `formatCommand` 옵션 추가
68
- - version: 6.2.0
69
- date: 2025-10-12
70
- changes: `excludedPath` 옵션 업데이트
71
- - version: 6.0.2
72
- date: 2025-09-23
73
- changes: `outputFormat` 옵션 추가
74
- - version: 6.0.0
75
- date: 2025-09-21
76
- changes: `dictionaryOutput` 필드 및 `i18nextResourcesDir` 필드 삭제
77
- - version: 6.0.0
78
- date: 2025-09-16
79
- changes: `live` 가져오기 모드 추가
80
- - version: 6.0.0
81
- date: 2025-09-04
82
- changes: `hotReload` 필드를 `liveSync`로 대체하고 `liveSyncPort` 및 `liveSyncURL` 필드 추가
83
- - version: 5.6.1
84
- date: 2025-07-25
85
- changes: `activateDynamicImport`를 `importMode` 옵션으로 대체
86
- - version: 5.6.0
87
- date: 2025-07-13
88
- changes: 기본 contentDir을 `['src']`에서 `['.']`로 변경
89
- - version: 5.5.11
90
- date: 2025-06-29
91
- changes: `docs` 명령 추가
92
- ---
93
-
94
- # Intlayer 설정 문서
95
-
96
- ## 개요
97
-
98
- Intlayer 설정 파일을 사용하면 국제화 (internationalization), 미들웨어, 콘텐츠 처리 등 플러그인의 다양한 측면을 맞춤 설정할 수 있습니다. 이 문서는 설정의 각 속성에 대한 심층적인 설명을 제공합니다.
99
-
100
- ---
101
-
102
- ## 목차
103
-
104
- <TOC/>
105
-
106
- ---
107
-
108
- ## 지원되는 설정 파일 형식
109
-
110
- Intlayer는 JSON, JS, MJS, TS를 포함한 설정 파일 형식을 허용합니다.
111
-
112
- - `intlayer.config.ts`
113
- - `intlayer.config.js`
114
- - `intlayer.config.json`
115
- - `intlayer.config.json5`
116
- - `intlayer.config.jsonc`
117
- - `intlayer.config.cjs`
118
- - `intlayer.config.mjs`
119
- - `.intlayerrc`
120
-
121
- ---
122
-
123
- ## 설정 파일 예시
124
-
125
- ````typescript fileName="intlayer.config.ts" codeFormat="typescript"
126
- import { Locales, type IntlayerConfig } from "intlayer";
127
- import { nextjsRewrite } from "intlayer/routing";
128
- import { z } from "zod";
129
-
130
- /**
131
- * 사용 가능한 모든 옵션을 보여주는 Intlayer 설정 파일 예시.
132
- */
133
- const config: IntlayerConfig = {
134
- /**
135
- * 국제화 설정 구성.
136
- */
137
- internationalization: {
138
- /**
139
- * 애플리케이션에서 지원되는 로케일 (locales) 목록.
140
- * 기본값: [Locales.ENGLISH]
141
- */
142
- locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
143
-
144
- /**
145
- * 각 딕셔너리에 정의되어야 하는 필수 로케일 목록.
146
- * 비어 있는 경우, `strict` 모드에서 모든 로케일이 필수입니다.
147
- * 기본값: []
148
- */
149
- requiredLocales: [Locales.ENGLISH],
150
-
151
- /**
152
- * 국제화된 콘텐츠의 엄격도 수준.
153
- * - "strict": 선언된 로케일이 누락되었거나 선언되지 않은 경우 오류.
154
- * - "inclusive": 선언된 로케일이 누락된 경우 경고.
155
- * - "loose": 기존의 모든 로케일을 수용.
156
- * 기본값: "inclusive"
157
- */
158
- strictMode: "inclusive",
159
-
160
- /**
161
- * 요청된 로케일을 찾을 수 없을 때 폴백(fallback)으로 요청되는 기본 로케일.
162
- * 기본값: Locales.ENGLISH
163
- */
164
- defaultLocale: Locales.ENGLISH,
165
- },
166
-
167
- /**
168
- * 딕셔너리 작업 및 폴백 동작을 제어하는 설정.
169
- */
170
- dictionary: {
171
- /**
172
- * 딕셔너리를 가져오는 방법을 제어합니다.
173
- * - "static": 빌드 시 정적으로 가져옵니다.
174
- * - "dynamic": Suspense를 사용하여 동적으로 가져옵니다.
175
- * - "fetch": Live Sync API를 통해 동적으로 가져옵니다.
176
- * 기본값: "static"
177
- */
178
- importMode: "static",
179
-
180
- /**
181
- * AI를 사용하여 누락된 번역을 자동으로 채우는 전략.
182
- * 불리언 값 또는 채워진 콘텐츠를 저장할 경로 패턴일 수 있습니다.
183
- * 기본값: true
184
- */
185
- fill: true,
186
-
187
- /**
188
- * 딕셔너리 파일의 물리적 위치.
189
- * - "local": 로컬 파일 시스템에 저장.
190
- * - "remote": Intlayer CMS에 저장.
191
- * - "hybrid": 로컬과 Intlayer CMS 모두에 저장.
192
- * - "plugin" (또는 모든 사용자 정의 문자열): 플러그인 또는 사용자 정의 소스에 의해 제공.
193
- * 기본값: "local"
194
- */
195
- location: "local",
196
-
197
- /**
198
- * 콘텐츠를 자동으로 변환할지 여부 (예: Markdown을 HTML로).
199
- * 기본값: false
200
- */
201
- contentAutoTransformation: false,
202
- },
203
-
204
- /**
205
- * 라우팅 및 미들웨어 설정.
206
- */
207
- routing: {
208
- /**
209
- * 로케일 라우팅 전략.
210
- * - "prefix-no-default": 기본 로케일을 제외한 모든 로케일에 접두사를 붙입니다 (예: /dashboard, /fr/dashboard).
211
- * - "prefix-all": 모든 로케일에 접두사를 붙입니다 (예: /en/dashboard, /fr/dashboard).
212
- * - "no-prefix": URL에 로케일이 없습니다.
213
- * - "search-params": ?locale=... 사용.
214
- * 기본값: "prefix-no-default"
215
- */
216
- mode: "prefix-no-default",
217
-
218
- /**
219
- * 사용자가 선택한 로케일을 저장할 위치.
220
- * 옵션: 'cookie', 'localStorage', 'sessionStorage', 'header' 또는 이들의 배열.
221
- * 기본값: ['cookie', 'header']
222
- */
223
- storage: ["cookie", "header"],
224
-
225
- /**
226
- * 애플리케이션 URL의 기본 경로.
227
- * 기본값: ""
228
- */
229
- basePath: "",
230
-
231
- /**
232
- * 로케일별 특정 경로에 대한 사용자 정의 URL 리라이트(rewrite) 규칙.
233
- */
234
- rewrite: nextjsRewrite({
235
- "/[locale]/about": {
236
- en: "/[locale]/about",
237
- fr: "/[locale]/a-propos",
238
- },
239
- }),
240
- },
241
-
242
- /**
243
- * 콘텐츠 파일 찾기 및 처리와 관련된 설정.
244
- */
245
- content: {
246
- /**
247
- * 딕셔너리를 스캔하기 위한 파일 확장자.
248
- * 기본값: ['.content.ts', '.content.js', '.content.json' 등]
249
- */
250
- fileExtensions: [".content.ts", ".content.js", ".content.json"],
251
-
252
- /**
253
- * .content 파일이 위치한 디렉토리.
254
- * 기본값: ["."]
255
- */
256
- contentDir: ["src"],
257
-
258
- /**
259
- * 소스 코드가 위치한 곳.
260
- * 빌드 최적화 및 코드 변환에 사용됩니다.
261
- * 기본값: ["."]
262
- */
263
- codeDir: ["src"],
264
-
265
- /**
266
- * 스캔에서 제외되는 패턴.
267
- * 기본값: ['node_modules', '.intlayer' 등]
268
- */
269
- excludedPath: ["node_modules"],
270
-
271
- /**
272
- * 개발 중에 변경 사항을 모니터링하고 딕셔너리를 재구축할지 여부.
273
- * 기본값: 개발 환경에서 true
274
- */
275
- watch: true,
276
-
277
- /**
278
- * 새로 생성/업데이트된 .content 파일을 포맷하는 데 사용되는 명령.
279
- */
280
- formatCommand: 'npx prettier --write "{{file}}"',
281
- },
282
-
283
- /**
284
- * 비주얼 에디터 (Visual Editor) 설정.
285
- */
286
- editor: {
287
- /**
288
- * 비주얼 에디터 활성화 여부.
289
- * 기본값: false
290
- */
291
- enabled: true,
292
-
293
- /**
294
- * 오리진 검증(origin validation)을 위한 애플리케이션 URL.
295
- * 기본값: ""
296
- */
297
- applicationURL: "http://localhost:3000",
298
-
299
- /**
300
- * 로컬 에디터 서버를 위한 포트.
301
- * 기본값: 8000
302
- */
303
- port: 8000,
304
-
305
- /**
306
- * 에디터의 공개 URL.
307
- * 기본값: "http://localhost:8000"
308
- */
309
- editorURL: "http://localhost:8000",
310
-
311
- /**
312
- * Intlayer CMS URL.
313
- * 기본값: "https://app.intlayer.org"
314
- */
315
- cmsURL: "https://app.intlayer.org",
316
-
317
- /**
318
- * 백엔드 API URL.
319
- * 기본값: "https://back.intlayer.org"
320
- */
321
- backendURL: "https://back.intlayer.org",
322
-
323
- /**
324
- * 실시간 콘텐츠 동기화 활성화 여부.
325
- * 기본값: false
326
- */
327
- liveSync: true,
328
- },
329
-
330
- /**
331
- * AI 기반 번역 및 구축 설정.
332
- */
333
- ai: {
334
- /**
335
- * 사용할 AI 제공업체.
336
- * 옵션: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai'
337
- * 기본값: 'openai'
338
- */
339
- provider: "openai",
340
-
341
- /**
342
- * 사용할 선택된 제공업체의 모델.
343
- */
344
- model: "gpt-4o",
345
-
346
- /**
347
- * 제공업체 API 키.
348
- */
349
- apiKey: process.env.OPENAI_API_KEY,
350
-
351
- /**
352
- * 번역 생성 시 AI를 안내하기 위한 전역 컨텍스트.
353
- */
354
- applicationContext: "이것은 여행 예약 애플리케이션입니다.",
355
-
356
- /**
357
- * AI API의 기본 경로 URL.
358
- */
359
- baseURL: "http://localhost:3000",
360
-
361
- /**
362
- * 데이터 직렬화 (Data Serialization)
363
- *
364
- * 옵션:
365
- * - "json": 기본값, 견고함, 더 많은 토큰 소모.
366
- * - "toon": 토큰 소모 적음, JSON만큼 일관적이지 않을 수 있음.
367
- *
368
- * 기본값: "json"
369
- */
370
- dataSerialization: "json",
371
- },
372
-
373
- /**
374
- * 빌드 및 최적화 설정.
375
- */
376
- build: {
377
- /**
378
- * 빌드 실행 모드.
379
- * - "auto": 애플리케이션 빌드 중에 자동으로 빌드됩니다.
380
- * - "manual": 명시적인 빌드 명령이 필요합니다.
381
- * 기본값: "auto"
382
- */
383
- mode: "auto",
384
-
385
- /**
386
- * 사용되지 않는 딕셔너리를 제거하여 최종 번들을 최적화할지 여부.
387
- * 기본값: 프로덕션 환경에서 true
388
- */
389
- optimize: true,
390
-
391
- /**
392
- * 생성된 딕셔너리 파일의 출력 형식.
393
- * 기본값: ['cjs', 'esm']
394
- */
395
- outputFormat: ["cjs", "esm"],
396
-
397
- /**
398
- * 빌드가 TypeScript 유형을 확인해야 하는지 여부를 나타냅니다.
399
- * 기본값: false
400
- */
401
- checkTypes: false,
402
- },
403
-
404
- /**
405
- * 로거 (Logger) 설정.
406
- */
407
- log: {
408
- /**
409
- * 로깅 레벨.
410
- * - "default": 표준 로깅.
411
- * - "verbose": 심층 디버그 로깅.
412
- * - "disabled": 로깅 비활성화.
413
- * 기본값: "default"
414
- */
415
- mode: "default",
416
-
417
- /**
418
- * 모든 로그 메시지에 대한 접두사.
419
- * 기본값: "[intlayer]"
420
- */
421
- prefix: "[intlayer]",
422
- },
423
-
424
- /**
425
- * 시스템 설정 (고급 사용자용)
426
- */
427
- system: {
428
- /**
429
- * 현지화된 딕셔너리를 저장하기 위한 디렉토리.
430
- */
431
- dictionariesDir: ".intlayer/dictionary",
432
-
433
- /**
434
- * TypeScript 모듈 증강(module augmentation)을 위한 디렉토리.
435
- */
436
- moduleAugmentationDir: ".intlayer/types",
437
-
438
- /**
439
- * 병합되지 않은 딕셔너리를 저장하기 위한 디렉토리.
440
- */
441
- unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
442
-
443
- /**
444
- * 딕셔너리 유형을 저장하기 위한 디렉토리.
445
- */
446
- typesDir: ".intlayer/types",
447
-
448
- /**
449
- * 기본 애플리케이션 파일이 저장되는 디렉토리.
450
- */
451
- mainDir: ".intlayer/main",
452
-
453
- /**
454
- * 설정 파일이 저장되는 디렉토리.
455
- */
456
- configDir: ".intlayer/config",
457
-
458
- /**
459
- * 캐시 파일이 저장되는 디렉토리.
460
- */
461
- cacheDir: ".intlayer/cache",
462
- },
463
-
464
- /**
465
- * 컴파일러 설정 (고급 사용자용)
466
- */
467
- compiler: {
468
- /**
469
- * 컴파일러 활성화 여부를 나타냅니다.
470
- *
471
- * - false: 컴파일러를 비활성화합니다.
472
- * - true: 컴파일러를 활성화합니다.
473
- * - "build-only": 개발 중 컴파일러를 건너뛰고 시작 시간을 단축합니다.
474
- *
475
- * 기본값: false
476
- */
477
- enabled: true,
478
-
479
- /**
480
- * 출력 파일의 경로를 정의합니다. `outputDir`을 대체합니다.
481
- *
482
- * - `./` 경로는 컴포넌트 디렉토리를 기준으로 해석됩니다.
483
- * - `/` 경로는 프로젝트 루트(`baseDir`)를 기준으로 해석됩니다.
484
- *
485
- * - 경로에 `{{locale}}` 변수를 포함하면 언어별로 별도의 딕셔너리가 생성됩니다.
486
- *
487
- * 예시:
488
- * ```ts
489
- * {
490
- * // 컴포넌트 옆에 다국어 .content.ts 파일 생성
491
- * output: ({ fileName, extension }) => `./${fileName}${extension}`,
492
- *
493
- * // output: './{{fileName}}{{extension}}', // 템플릿 문자열을 사용한 동일 방식
494
- * }
495
- * ```
496
- *
497
- * ```ts
498
- * {
499
- * // 프로젝트 루트의 언어별 중앙 집중식 JSON 생성
500
- * output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
501
- *
502
- * // output: '/locales/{{locale}}/{{key}}.content.json', // 템플릿 문자열을 사용한 동일 방식
503
- * }
504
- * ```
505
- *
506
- * 변수 목록:
507
- * - `fileName`: 파일 이름.
508
- * - `key`: 콘텐츠 키.
509
- * - `locale`: 콘텐츠 로케일.
510
- * - `extension`: 파일 확장자.
511
- * - `componentFileName`: 컴포넌트 파일 이름.
512
- * - `componentExtension`: 컴포넌트 파일 확장자.
513
- * - `format`: 딕셔너리 형식.
514
- * - `componentFormat`: 컴포넌트 딕셔너리 형식.
515
- * - `componentDirPath`: 컴포넌트 디렉토리 경로.
516
- */
517
- output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
518
-
519
- /**
520
- * 변환된 후 컴포넌트를 저장해야 하는지 여부를 나타냅니다.
521
- * 이렇게 하면 컴파일러를 한 번만 실행하여 애플리케이션을 변환한 다음 제거할 수 있습니다.
522
- */
523
- saveComponents: false,
524
-
525
- /**
526
- * 생성된 파일에 콘텐츠만 삽입합니다. i18next 또는 ICU MessageFormat 형식의 언어별 JSON 출력에 유용합니다.
527
- */
528
- noMetadata: false,
529
-
530
- /**
531
- * 딕셔너리 키 접두사
532
- */
533
- dictionaryKeyPrefix: "", // 추출된 딕셔너리 키에 선택적 접두사 추가
534
- },
535
-
536
- /**
537
- * 딕셔너리 콘텐츠 검증을 위한 사용자 정의 스키마.
538
- */
539
- schemas: {
540
- "my-schema": z.object({
541
- title: z.string(),
542
- }),
543
- },
544
-
545
- /**
546
- * 플러그인 설정.
547
- */
548
- plugins: [],
549
- };
550
-
551
- export default config;
552
- ````
553
-
554
- ---
555
-
556
- ## 설정 참조 (Configuration Reference)
557
-
558
- 다음 섹션은 Intlayer에서 사용 가능한 다양한 설정 항목에 대해 설명합니다.
559
-
560
- ---
561
-
562
- ### 국제화 설정 (Internationalization Configuration)
563
-
564
- 사용 가능한 로케일 및 애플리케이션의 기본 로케일을 포함하여 국제화와 관련된 설정을 정의합니다.
565
-
566
- | 필드 | 유형 | 설명 | 예시 | 참고 |
567
- | ----------------- | ---------- | ---------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
568
- | `locales` | `string[]` | 애플리케이션에서 지원되는 로케일 목록. 기본값: `[Locales.ENGLISH]` | `['en', 'fr', 'es']` | |
569
- | `requiredLocales` | `string[]` | 애플리케이션의 필수 로케일 목록. 기본값: `[]` | `[]` | 비어 있는 경우, `strict` 모드에서 모든 로케일이 필수입니다. 필수 로케일이 `locales` 필드에도 정의되어 있는지 확인하세요. |
570
- | `strictMode` | `string` | TypeScript를 사용하여 견고한 국제화 콘텐츠 구현을 보장합니다. 기본값: `inclusive` | | `"strict"`인 경우: `t` 기능은 선언된 모든 로케일이 정의되어야 함을 요구합니다 — 누락되거나 선언되지 않은 경우 오류를 발생시킵니다. `"inclusive"`인 경우: 누락된 로케일에 대해 경고하지만 기존에 선언되지 않은 로케일을 수용합니다. `"loose"`인 경우: 기존의 모든 로케일을 수용합니다. |
571
- | `defaultLocale` | `string` | 요청된 로케일을 찾을 수 없을 때 폴백으로 사용되는 기본 로케일. 기본값: `Locales.ENGLISH` | `'en'` | URL, 쿠키 또는 헤더에 로케일이 지정되지 않은 경우 로케일을 결정하는 데 사용됩니다. |
572
-
573
- ---
574
-
575
- ### 에디터 설정 (Editor Configuration)
576
-
577
- 서버 포트 및 활동 상태를 포함하여 통합 에디터와 관련된 설정을 정의합니다.
578
-
579
- | 필드 | 유형 | 설명 | 예시 | 참고 |
580
- | ---------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
581
- | `applicationURL` | `string` | 애플리케이션의 URL. 기본값: `''` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | 보안상의 이유로 에디터의 오리진(origin)을 제한하는 데 사용됩니다. `'*'`로 설정하면 모든 오리진에서 에디터에 액세스할 수 있습니다. |
582
- | `port` | `number` | 비주얼 에디터 서버에서 사용하는 포트. 기본값: `8000` | | |
583
- | `editorURL` | `string` | 에디터 서버 URL. 기본값: `'http://localhost:8000'` | `'http://localhost:3000'`, `'https://example.com'`, `process.env.INTLAYER_EDITOR_URL` | 애플리케이션과 상호 작용할 수 있는 오리진을 제한하는 데 사용됩니다. `'*'`로 설정하면 모든 오리진에서 액세스할 수 있습니다. 포트를 변경하거나 에디터가 다른 도메인에서 호스팅되는 경우 설정해야 합니다. |
584
- | `cmsURL` | `string` | Intlayer CMS URL. 기본값: `'https://intlayer.org'` | `'https://intlayer.org'` | |
585
- | `backendURL` | `string` | 백엔드 서버 URL. 기본값: `https://back.intlayer.org` | `http://localhost:4000` | |
586
- | `enabled` | `boolean` | 앱이 비주얼 에디터와 상호 작용할지 여부를 나타냅니다. 기본값: `true` | `process.env.NODE_ENV !== 'production'` | `false`인 경우 에디터는 앱과 상호 작용할 수 없습니다. 특정 환경에 대해 비활성화하면 보안이 강화됩니다. |
587
- | `clientId` | `string &#124; undefined` | oAuth2를 사용하여 백엔드에서 인증할 수 있도록 intlayer 패키지를 활성화합니다. 액세스 토큰을 받으려면 [intlayer.org/project](https://app.intlayer.org/project)로 이동하세요. 기본값: `undefined` | | 비밀로 유지하고 환경 변수에 저장하세요. |
588
- | `clientSecret` | `string &#124; undefined` | oAuth2를 사용하여 백엔드에서 인증할 수 있도록 intlayer 패키지를 활성화합니다. 액세스 토큰을 받으려면 [intlayer.org/project](https://app.intlayer.org/project)로 이동하세요. 기본값: `undefined` | | 비밀로 유지하고 환경 변수에 저장하세요. |
589
- | `dictionaryPriorityStrategy` | `string` | 로컬 딕셔너리와 원격 딕셔너리가 모두 존재하는 경우 딕셔너리 우선순위 지정을 위한 전략. 기본값: `'local_first'` | `'distant_first'` | `'distant_first'`: 로컬보다 원격을 우선시합니다. `'local_first'`: 원격보다 로컬을 우선시합니다. |
590
- | `liveSync` | `boolean` | CMS / 비주얼 에디터 / 백엔드에서 변경이 감지될 때 앱 서버 속 콘텐츠를 핫 리로드해야 하는지 여부를 나타냅니다. 기본값: `true` | `true` | 딕셔너리가 추가/업데이트되면 앱은 페이지 콘텐츠를 업데이트합니다. 라이브 동기화는 콘텐츠를 다른 서버에 원격으로 처리하므로 성능에 약간의 영향을 줄 수 있습니다. 두 가지를 동일한 머신에서 호스팅하는 것이 권장됩니다. |
591
- | `liveSyncPort` | `number` | 라이브 동기화 서버 포트. 기본값: `4000` | `4000` | |
592
- | `liveSyncURL` | `string` | 라이브 동기화 서버 URL. 기본값: `'http://localhost:{liveSyncPort}'` | `'https://example.com'` | 기본적으로 localhost를 가리키며, 원격 라이브 동기화 서버로 변경할 수 있습니다. |
593
-
594
- ### 라우팅 설정 (Routing Configuration)
595
-
596
- URL 구조, 로케일 저장 및 미들웨어 처리를 포함하여 라우팅 동작을 제어하는 설정.
597
-
598
- | 필드 | 유형 | 설명 | 예시 | 참고 |
599
- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
600
- | `mode` | `'prefix-no-default' &#124; 'prefix-all' &#124; 'no-prefix' &#124; 'search-params'` | 로케일 처리를 위한 URL 라우팅 모드. 기본값: `'prefix-no-default'` | `'prefix-no-default'`: `/dashboard` (en) 또는 `/fr/dashboard` (fr). `'prefix-all'`: `/en/dashboard`. `'no-prefix'`: 다른 수단으로 로케일 처리. `'search-params'`: `/dashboard?locale=fr` | 쿠키 또는 로케일 저장소 관리에는 영향을 주지 않습니다. |
601
- | `storage` | `false &#124; 'cookie' &#124; 'localStorage' &#124; 'sessionStorage' &#124; 'header' &#124; CookiesAttributes &#124; StorageAttributes &#124; Array` | 클라이언트에 로케일을 저장하기 위한 구성. 기본값: `['cookie', 'header']` | `'localStorage'`, `[{ type: 'cookie', name: 'custom-locale', secure: true }]` | 아래의 저장소 옵션 테이블을 참조하세요. |
602
- | `basePath` | `string` | 애플리케이션 URL의 기본 경로. 기본값: `''` | `'/my-app'` | 앱이 `https://example.com/my-app`에 있는 경우 basePath는 `'/my-app'`이며 URL은 `https://example.com/my-app/en`이 됩니다. |
603
- | `rewrite` | `Record<string, StrictModeLocaleMap<string>>` | 특정 경로에 대해 기본 라우팅 모드를 대체하는 사용자 정의 URL 리라이트 규칙. 동적 매개변수 `[param]`를 지원합니다. 기본값: `undefined` | 아래 예시 참조 | 리라이트 규칙은 `mode`보다 우선순위가 높습니다. Next.js 및 Vite와 함께 작동합니다. `getLocalizedUrl()`은 일치하는 규칙을 자동으로 적용합니다. [사용자 정의 URL 리라이트](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/custom_url_rewrites.md)를 참조하세요. |
604
-
605
- **`rewrite` 예시**:
606
-
607
- ```typescript
608
- routing: {
609
- mode: "prefix-no-default", // 폴백 전략
610
- rewrite: nextjsRewrite({
611
- "/about": {
612
- en: "/about",
613
- fr: "/a-propos",
614
- },
615
- "/product/[slug]": {
616
- en: "/product/[slug]",
617
- fr: "/produit/[slug]",
618
- },
619
- "/blog/[category]/[id]": {
620
- en: "/blog/[category]/[id]",
621
- fr: "/journal/[category]/[id]",
622
- },
623
- }),
624
- }
625
- ```
626
-
627
- #### 저장소 옵션 (Storage Options)
628
-
629
- | 값 | 설명 | 참고 |
630
- | ------------------ | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
631
- | `'cookie'` | 쿠키에 로케일을 저장합니다 — 클라이언트와 서버 측 모두에서 액세스 가능합니다. | GDPR 준수를 위해 적절한 사용자 동의를 얻었는지 확인하세요. `CookiesAttributes`를 통해 맞춤 설정 가능합니다 (`{ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }`). |
632
- | `'localStorage'` | 만료 날짜 없이 브라우저에 로케일을 저장합니다 — 클라이언트 측 전용입니다. | 명시적으로 삭제하지 않는 한 만료되지 않습니다. Intlayer 프록시는 이에 액세스할 수 없습니다. `StorageAttributes`를 통해 맞춤 설정 가능합니다 (`{ type: 'localStorage', name: 'custom-locale' }`). |
633
- | `'sessionStorage'` | 페이지 세션 동안 로케일을 저장합니다 — 클라이언트 측 전용입니다. | 탭/창을 닫으면 지워집니다. Intlayer 프록시는 이에 액세스할 수 없습니다. `StorageAttributes`를 통해 맞춤 설정 가능합니다 (`{ type: 'sessionStorage', name: 'custom-locale' }`). |
634
- | `'header'` | HTTP 헤더를 통해 로케일을 저장하거나 전송합니다 — 서버 측 전용입니다. | API 호출에 유용합니다. 클라이언트 측에서는 액세스할 수 없습니다. `StorageAttributes`를 통해 맞춤 설정 가능합니다 (`{ type: 'header', name: 'custom-locale' }`). |
635
-
636
- #### 쿠키 속성 (Cookie Attributes)
637
-
638
- 쿠키 저장소를 사용할 때 추가 쿠키 속성을 구성할 수 있습니다.
639
-
640
- | 필드 | 유형 | 설명 |
641
- | ---------- | ------------------------------------- | ---------------------------------------- |
642
- | `name` | `string` | 쿠키 이름. 기본값: `'INTLAYER_LOCALE'` |
643
- | `domain` | `string` | 쿠키 도메인. 기본값: `undefined` |
644
- | `path` | `string` | 쿠키 경로. 기본값: `undefined` |
645
- | `secure` | `boolean` | HTTPS가 필요합니다. 기본값: `undefined` |
646
- | `httpOnly` | `boolean` | HTTP 전용 플래그. 기본값: `undefined` |
647
- | `sameSite` | `'strict' &#124; 'lax' &#124; 'none'` | SameSite 정책. |
648
- | `expires` | `Date &#124; number` | 만료 날짜 또는 일수. 기본값: `undefined` |
649
-
650
- #### 로케일 저장소 속성 (Locale Storage Attributes)
651
-
652
- localStorage 또는 sessionStorage를 사용할 때:
653
-
654
- | 필드 | 유형 | 설명 |
655
- | ------ | ---------------------------------------- | ------------------------------------------- |
656
- | `type` | `'localStorage' &#124; 'sessionStorage'` | 저장소 유형. |
657
- | `name` | `string` | 저장소 키 이름. 기본값: `'INTLAYER_LOCALE'` |
658
-
659
- #### 설정 예시
660
-
661
- 새로운 v7 라우팅 구조에 대한 몇 가지 일반적인 설정 예시는 다음과 같습니다.
662
-
663
- **기본 구성 (기본값)**:
664
-
665
- ```typescript
666
- import { Locales, type IntlayerConfig } from "intlayer";
667
- // intlayer.config.ts
668
- const config: IntlayerConfig = {
669
- internationalization: {
670
- locales: ["en", "fr", "es"],
671
- defaultLocale: "en",
672
- },
673
- routing: {
674
- mode: "prefix-no-default",
675
- storage: "localStorage",
676
- basePath: "",
677
- },
678
- };
679
-
680
- export default config;
681
- ```
682
-
683
- **GDPR 준수 구성**:
684
-
685
- ```typescript
686
- import { Locales, type IntlayerConfig } from "intlayer";
687
- // intlayer.config.ts
688
- const config: IntlayerConfig = {
689
- internationalization: {
690
- locales: ["en", "fr", "es"],
691
- defaultLocale: "en",
692
- },
693
- routing: {
694
- mode: "prefix-no-default",
695
- storage: [
696
- {
697
- type: "localStorage",
698
- name: "user-locale",
699
- },
700
- {
701
- type: "cookie",
702
- name: "user-locale",
703
- secure: true,
704
- sameSite: "strict",
705
- httpOnly: false,
706
- },
707
- ],
708
- basePath: "",
709
- },
710
- };
711
-
712
- export default config;
713
- ```
714
-
715
- **검색 매개변수 모드 (Search Parameters Mode)**:
716
-
717
- ```typescript
718
- import { Locales, type IntlayerConfig } from "intlayer";
719
- // intlayer.config.ts
720
- const config: IntlayerConfig = {
721
- internationalization: {
722
- locales: ["en", "fr", "es"],
723
- defaultLocale: "en",
724
- },
725
- routing: {
726
- mode: "search-params",
727
- storage: "localStorage",
728
- basePath: "",
729
- },
730
- };
731
-
732
- export default config;
733
- ```
734
-
735
- **사용자 정의 저장소를 사용한 접두사 없음(No Prefix) 모드**:
736
-
737
- ```typescript
738
- import { Locales, type IntlayerConfig } from "intlayer";
739
- // intlayer.config.ts
740
- const config: IntlayerConfig = {
741
- internationalization: {
742
- locales: ["en", "fr", "es"],
743
- defaultLocale: "en",
744
- },
745
- routing: {
746
- mode: "no-prefix",
747
- storage: {
748
- type: "sessionStorage",
749
- name: "app-locale",
750
- },
751
- basePath: "/my-app",
752
- },
753
- };
754
-
755
- export default config;
756
- ```
757
-
758
- **동적 경로를 사용한 사용자 정의 URL 리라이트**:
759
-
760
- ```typescript
761
- // intlayer.config.ts
762
- import { nextjsRewrite } from "intlayer/routing";
763
-
764
- const config: IntlayerConfig = {
765
- internationalization: {
766
- locales: ["en", "fr"],
767
- defaultLocale: "en",
768
- },
769
- routing: {
770
- mode: "prefix-no-default", // 리라이트되지 않은 경로에 대한 폴백
771
- storage: "cookie",
772
- rewrite: nextjsRewrite({
773
- "/about": {
774
- en: "/about",
775
- fr: "/a-propos",
776
- },
777
- "/product/[slug]": {
778
- en: "/product/[slug]",
779
- fr: "/produit/[slug]",
780
- },
781
- "/blog/[category]/[id]": {
782
- en: "/blog/[category]/[id]",
783
- fr: "/journal/[category]/[id]",
784
- },
785
- }),
786
- },
787
- };
788
-
789
- export default config;
790
- ```
791
-
792
- ---
793
-
794
- ### 콘텐츠 설정 (Content Configuration)
795
-
796
- 애플리케이션 내 콘텐츠 처리와 관련된 설정 (디렉토리 이름, 파일 확장자 및 파생 설정).
797
-
798
- | 필드 | 유형 | 설명 | 예시 | 참고 |
799
- | ---------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------- |
800
- | `watch` | `boolean` | 딕셔너리를 재구축하기 위해 Intlayer가 콘텐츠 선언 파일의 변경 사항을 감시해야 하는지 여부를 나타냅니다. 기본값: `process.env.NODE_ENV === 'development'` | | |
801
- | `fileExtensions` | `string[]` | 콘텐츠 선언 파일을 스캔하는 데 사용되는 파일 확장자. 기본값: `['.content.ts', '.content.js', '.content.mjs', '.content.cjs', '.content.json', '.content.json5', '.content.jsonc']` | `['.content.ts', '.content.js']` | |
802
- | `contentDir` | `string[]` | 콘텐츠 선언 파일이 위치한 디렉토리에 대한 경로. 기본값: `['.']` | `['src/content']` | |
803
- | `codeDir` | `string[]` | 애플리케이션 소스 코드 파일이 위치한 디렉토리에 대한 경로. 기본값: `['.']` | `['src']` | 빌드를 최적화하고 코드 변환 및 핫 리로드가 필요한 파일에만 적용되도록 하는 데 사용됩니다. |
804
- | `excludedPath` | `string[]` | 콘텐츠 스캔에서 제외되는 경로. 기본값: `['node_modules', '.intlayer', '.next', 'dist', 'build']` | `['src/styles']` | |
805
- | `formatCommand` | `string` | 새로 생성되거나 업데이트된 콘텐츠 파일을 포맷하기 위해 실행될 명령. 기본값: `undefined` | `'npx prettier --write "{{file}}"'` | 콘텐츠 추출 시 또는 비주얼 에디터를 통해 사용됩니다. |
806
-
807
- ---
808
-
809
- ### 딕셔너리 설정 (Dictionary Configuration)
810
-
811
- 자동 채우기 동작 및 콘텐츠 생성을 포함하여 딕셔너리 작업을 제어하는 설정입니다.
812
-
813
- 이 딕셔너리 설정은 두 가지 주요 목적을 가집니다:
814
-
815
- 1. **기본값**: 콘텐츠 선언 파일을 생성할 때 기본값을 정의합니다.
816
- 2. **폴백 동작**: 특정 필드가 정의되지 않았을 때 폴백 값을 제공하여 딕셔너리 작업 동작을 전역적으로 정의할 수 있도록 합니다.
817
-
818
- 콘텐츠 선언 파일 및 설정값이 적용되는 방식에 대한 자세한 내용은 [콘텐츠 파일 문서](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/dictionary/content_file.md)를 참조하세요.
819
-
820
- | 필드 | 유형 | 설명 | 예시 | 참고 |
821
- | --------------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
822
- | `fill` | `boolean &#124; FilePathPattern &#124; Partial<Record<Locale, boolean &#124; FilePathPattern>>` | 자동 채우기(AI 번역) 출력 파일이 생성되는 방식을 제어합니다. 기본값: `true` | 아래 예시 참조 | `true`: 기본 경로(소스와 동일한 파일). `false`: 비활성화. 문자열/함수 템플릿은 로케일별 파일을 생성합니다. 로케일별 객체: 각 로케일은 자체 패턴에 매핑됩니다. `false`는 해당 로케일을 건너뜁니다. `{{locale}}`을 포함하면 로케일별 생성이 트리거됩니다. 딕셔너리 수준의 `fill`은 항상 이 전역 설정보다 우선합니다. |
823
- | `importMode` | `'static' &#124; 'dynamic' &#124; 'fetch'` | 딕셔너리를 가져오는 방법을 제어합니다. 기본값: `'static'` | `'dynamic'` | `'static'`: 정적으로 가져옵니다. `'dynamic'`: Suspense를 통해 동적으로 가져옵니다. `'fetch'`: Live Sync API를 통해 동적으로 가져옵니다. `getIntlayer`, `getDictionary`, `useDictionary` 등에는 영향을 주지 않습니다. |
824
- | `location` | `'local' &#124; 'remote' &#124; 'hybrid' &#124; string` | 딕셔너리가 저장되는 위치입니다. 기본값: `'local'` | `'remote'` | `'local'`: 파일 시스템. `'remote'`: Intlayer CMS. `'hybrid'`: 둘 다. |
825
- | `contentAutoTransformation` | `boolean` | 콘텐츠 파일을 자동으로 변환해야 하는지 여부(예: Markdown에서 HTML로). 기본값: `false` | `true` | @intlayer/markdown을 통해 Markdown 필드를 처리하는 데 유용합니다. |
826
-
827
- **`fill` 예시**:
828
-
829
- ```ts
830
- dictionary: {
831
- fill: {
832
- en: '/locales/en/{{key}}.content.json',
833
- fr: ({ key }) => `/locales/fr/${key}.content.json`,
834
- es: false,
835
- }
836
- }
837
- ```
838
-
839
- ---
840
-
841
- ### AI 설정 (AI Configuration)
842
-
843
- 번역 구축과 같은 Intlayer의 AI 기반 기능에 대한 설정을 정의합니다.
844
-
845
- | 필드 | 유형 | 설명 | 예시 | 참고 |
846
- | -------------------- | ---------------------- | ---------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------------------------------------- |
847
- | `provider` | `string` | 사용할 AI 제공업체. | `'openai'`, `'anthropic'`, `'googlevertex'` | |
848
- | `model` | `string` | 사용할 AI 모델. | `'gpt-4o'`, `'claude-3-5-sonnet-20240620'` | |
849
- | `apiKey` | `string` | 선택한 제공업체의 API 키. | `process.env.OPENAI_API_KEY` | |
850
- | `applicationContext` | `string` | AI 번역 정확도를 높이기 위한 앱에 대한 추가 컨텍스트. | `'어린이를 위한 학습 플랫폼.'` | |
851
- | `baseURL` | `string` | API 호출을 위한 선택적 기본 URL. | | 프록시 또는 로컬 AI 배포를 사용하는 경우 유용합니다. |
852
- | `dataSerialization` | `'json' &#124; 'toon'` | 데이터를 AI로 전송하는 방법을 정의합니다. 기본값: `'json'` | `'json'` | `'json'`: 더 견고하고 정확함. `'toon'`: 토큰을 적게 소모하지만 안정성이 떨어질 수 있음. |
853
-
854
- ---
855
-
856
- ### 빌드 설정 (Build Configuration)
857
-
858
- Intlayer 빌드 프로세스 및 최적화 설정.
859
-
860
- | 필드 | 유형 | 설명 | 예시 | 참고 |
861
- | -------------- | ------------------------ | ---------------------------------------------------------------------------------------------------- | ---- | ---- |
862
- | `mode` | `'auto' &#124; 'manual'` | 앱의 프리빌드 단계에서 Intlayer가 자동으로 실행되어야 하는지 여부를 나타냅니다. 기본값: `'auto'` | | |
863
- | `optimize` | `boolean` | 컴파일된 딕셔너리가 런타임에 최적화되어야 하는지 여부를 나타냅니다. 기본값: 프로덕션 환경에서 `true` | | |
864
- | `outputFormat` | `('cjs' &#124; 'esm')[]` | 생성된 딕셔너리 파일의 출력 형식. 기본값: `['cjs', 'esm']` | | |
865
- | `checkTypes` | `boolean` | Intlayer가 생성된 파일의 유형을 확인해야 하는지 여부를 나타냅니다. 기본값: `false` | | |
866
-
867
- ---
868
-
869
- ### 시스템 설정 (System Configuration)
870
-
871
- 이 설정은 고급 사용 사례 및 Intlayer의 내부 구성을 위한 것입니다.
872
-
873
- | 필드 | 유형 | 설명 | 기본값 |
874
- | ------------------------- | -------- | -------------------------------- | --------------------------------- |
875
- | `dictionariesDir` | `string` | 컴파일된 딕셔너리 디렉토리. | `'.intlayer/dictionary'` |
876
- | `moduleAugmentationDir` | `string` | TypeScript 모듈 확장 디렉토리. | `'.intlayer/types'` |
877
- | `unmergedDictionariesDir` | `string` | 병합되지 않은 딕셔너리 디렉토리. | `'.intlayer/unmerged_dictionary'` |
878
- | `typesDir` | `string` | 생성된 유형 디렉토리. | `'.intlayer/types'` |
879
- | `mainDir` | `string` | 메인 Intlayer 파일 디렉토리. | `'.intlayer/main'` |
880
- | `configDir` | `string` | 컴파일된 설정 파일 디렉토리. | `'.intlayer/config'` |
881
- | `cacheDir` | `string` | 캐시 파일 디렉토리. | `'.intlayer/cache'` |
882
-
883
- ---
884
-
885
- ### 컴파일러 설정 (Compiler Configuration)
886
-
887
- Intlayer 컴파일러 (`intlayer compiler`) 설정.
888
-
889
- | 필드 | 유형 | 설명 | 기본값 |
890
- | --------------------- | ------------------------ | ---------------------------------------------------------------------- | ------- |
891
- | `enabled` | `boolean` | 컴파일러 활성화 여부를 나타냅니다. | `false` |
892
- | `output` | `string &#124; Function` | 추출된 딕셔너리의 출력 경로. | |
893
- | `saveComponents` | `boolean` | 원본 소스 파일을 변환된 버전으로 덮어쓸지 여부를 나타냅니다. | `false` |
894
- | `noMetadata` | `boolean` | `true`인 경우 컴파일러는 생성된 파일에 메타데이터를 포함하지 않습니다. | `false` |
895
- | `dictionaryKeyPrefix` | `string` | 선택적 딕셔너리 키 접두사. | `''` |
896
-
897
- ---
898
-
899
- ### 로거 설정 (Logger Configuration)
900
-
901
- Intlayer 로그 출력 맞춤 설정을 위한 설정.
902
-
903
- | 필드 | 유형 | 설명 | 기본값 |
904
- | -------- | ---------------------------------------------- | ------------------- | -------------- |
905
- | `mode` | `'default' &#124; 'verbose' &#124; 'disabled'` | 로깅 모드. | `'default'` |
906
- | `prefix` | `string` | 로그 메시지 접두사. | `'[intlayer]'` |
907
-
908
- ---
909
-
910
- ### 사용자 정의 스키마 (Custom Schemas)
911
-
912
- | 필드 | 유형 | 설명 |
913
- | --------- | --------------------------- | -------------------------------------------------------------- |
914
- | `schemas` | `Record<string, ZodSchema>` | 딕셔너리 구조를 검증하기 위한 Zod 스키마를 정의할 수 있습니다. |
915
-
916
- ---
917
-
918
- ### 플러그인 (Plugins)
919
-
920
- | 필드 | 유형 | 설명 |
921
- | --------- | ------------------ | -------------------------------- |
922
- | `plugins` | `IntlayerPlugin[]` | 활성화할 Intlayer 플러그인 목록. |