Intlayer 구성 문서
개요
Intlayer 구성 파일은 국제화, 미들웨어 및 콘텐츠 처리와 같은 플러그인의 다양한 측면을 사용자화할 수 있도록 합니다. 이 문서는 구성의 각 속성에 대한 자세한 설명을 제공합니다.
구성 파일 지원
Intlayer는 JSON, JS, MJS 및 TS 구성 파일 형식을 지원합니다:
- intlayer.config.ts
- intlayer.config.js
- intlayer.config.json
- intlayer.config.cjs
- intlayer.config.mjs
- .intlayerrc
예시 구성 파일
intlayer.config.ts
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { internationalization: { locales: [Locales.ENGLISH], }, content: { typesDir: "content/types", }, middleware: { noPrefix: false, },};export default config;
구성 참조
다음 섹션은 Intlayer에서 사용 가능한 다양한 구성 설정을 설명합니다.
국제화 구성
국제화와 관련된 설정을 정의하며, 사용 가능한 로케일과 응용 프로그램의 기본 로케일을 포함합니다.
속성
- locales:
- 형식: string[]
- 기본값: ['en']
- 설명: 응용 프로그램에서 지원하는 로케일 목록입니다.
- 예시: ['en', 'fr', 'es']
strictMode:
- 형식: string
- 기본값: required_only
- 설명: 타입스크립트를 사용하여 국제화된 콘텐츠의 강력한 구현을 보장합니다.
- 참고: "strict"로 설정하면 번역 t 함수가 선언된 각 로케일이 정의되어야 합니다. 하나의 로케일이 누락되거나, 구성에 선언되지 않은 로케일이 있을 경우 오류를 발생시킵니다.
- 참고: "required_only"로 설정하면 번역 t 함수가 선언된 각 로케일이 정의되어야 하며, 하나의 로케일이 누락될 경우 경고를 발생시킵니다. 그러나 구성에 선언되지 않은 로케일이 존재하는 경우 수용합니다.
- 참고: "loose"로 설정하면 번역 t 함수가 존재하는 모든 로케일을 수용합니다.
defaultLocale:
- 형식: string
- 기본값: 'en'
- 설명: 요청된 로케일이 발견되지 않을 경우 대체로 사용되는 기본 로케일입니다.
- 예시: 'en'
- 참고: URL, 쿠키 또는 헤더에서 지정되지 않은 경우 로케일을 결정하는 데 사용됩니다.
편집기 구성
서버 포트 및 활성 상태를 포함하여 통합 편집기와 관련된 설정을 정의합니다.
속성
backendURL:
- 형식: string
- 기본값: https://back.intlayer.org
- 설명: 백엔드 서버의 URL입니다.
- 예시: http://localhost:4000
enabled:
- 형식: boolean
- 기본값: true
- 설명: 편집기가 활성 상태인지 표시합니다.
- 예시: true
- 참고: NODE_ENV 또는 다른 전용 환경 변수를 사용하여 설정할 수 있습니다.
clientId:
- 형식: string | undefined
- 기본값: undefined
- 설명: clientId와 clientSecret은 intlayer 패키지가 oAuth2 인증을 사용하여 백엔드와 인증하는 데 필요합니다. 접근 토큰은 프로젝트와 관련된 사용자를 인증하는 데 사용됩니다. 접근 토큰을 얻으려면 /dashboard/project 로 가서 계정을 만드세요.
- 예시: true
- 참고: 중요: clientId와 clientSecret은 비공식적으로 공개되어서는 안 되며, 안전한 위치(예: 환경 변수)에 보관해야 합니다.
clientSecret:
- 형식: string | undefined
- 기본값: undefined
- 설명: clientId와 clientSecret은 intlayer 패키지가 oAuth2 인증을 사용하여 백엔드와 인증하는 데 필요합니다. 접근 토큰은 프로젝트와 관련된 사용자를 인증하는 데 사용됩니다. 접근 토큰을 얻으려면 /dashboard/project 로 가서 계정을 만드세요.
- 예시: true
- 참고: 중요: clientId와 clientSecret은 비공식적으로 공개되어서는 안 되며, 안전한 위치(예: 환경 변수)에 보관해야 합니다.
미들웨어 구성
쿠키, 헤더 및 로케일 관리를 위한 URL 접두사 처리 방식을 포함하여 미들웨어 동작을 제어하는 설정입니다.
속성
- headerName:
- 형식: string
- 기본값: 'x-intlayer-locale'
- 설명: 로케일을 결정하는 데 사용되는 HTTP 헤더의 이름입니다.
- 예시: 'x-custom-locale'
- 참고: API 기반 로케일 결정에 유용합니다.
- cookieName:
- 형식: string
- 기본값: 'intlayer-locale'
- 설명: 로케일을 저장하는 데 사용되는 쿠키의 이름입니다.
- 예시: 'custom-locale'
- 참고: 세션 간에 로케일을 지속하는 데 사용됩니다.
- prefixDefault:
- 형식: boolean
- 기본값: true
- 설명: URL에 기본 로케일을 포함할지 여부입니다.
- 예시: false
- 참고: false인 경우 기본 로케일에 대한 URL에는 로케일 접두사가 포함되지 않습니다.
- basePath:
- 형식: string
- 기본값: ''
- 설명: 응용 프로그램 URL의 기본 경로입니다.
- 예시: '/my-app'
- 참고: 이것은 응용 프로그램의 URL 구성 방식에 영향을 미칩니다.
- serverSetCookie:
- 형식: string
- 기본값: 'always'
- 설명: 서버에서 로케일 쿠키를 설정하는 규칙입니다.
- 옵션: 'always', 'never'
- 예시: 'never'
- 참고: 모든 요청에서 로케일 쿠키가 설정될지 여부를 제어합니다.
- noPrefix:
- 형식: boolean
- 기본값: false
- 설명: URL에서 로케일 접두사를 생략할지 여부입니다.
- 예시: true
- 참고: true인 경우 URL에는 로케일 정보가 포함되지 않습니다.
콘텐츠 구성
디렉토리 이름, 파일 확장자 및 파생 구성과 함께 응용 프로그램 내 콘텐츠 처리를 다루는 설정입니다.
속성
- watch:
- 형식: boolean
- 기본값: process.env.NODE_ENV === 'development'
- 설명: Intlayer가 앱 내 콘텐츠 선언 파일의 변경 사항을 감시하여 관련 사전을 재구성해야 하는지 여부를 나타냅니다.
- fileExtensions:
- 형식: string[]
- 기본값: ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.tsx', '.content.jsx']
- 설명: 사전을 구축할 때 찾아야 할 파일 확장자입니다.
- 예시: ['.data.ts', '.data.js', '.data.json']
- 참고: 파일 확장자를 사용자화하면 충돌을 피하는 데 도움이 될 수 있습니다.
- baseDir:
- 형식: string
- 기본값: process.cwd()
- 설명: 프로젝트의 기본 디렉토리입니다.
- 예시: '/path/to/project'
- 참고: 이는 모든 Intlayer 관련 디렉토리를 해결하는 데 사용됩니다.
- dictionaryOutput:
- 형식: string[]
- 기본값: ['intlayer']
- 설명: 사용할 사전 출력을 정의합니다: 예를 들어, 'intlayer' 또는 'i18next'입니다.
- contentDirName:
- 형식: string
- 기본값: 'src'
- 설명: 콘텐츠가 저장되는 디렉토리의 이름입니다.
- 예시: 'data', 'content', 'locales'
- 참고: 기본 디렉토리 수준에 있지 않으면 contentDir를 업데이트해야 합니다.
contentDir:
- 형식: string
- 파생: 'baseDir' / 'contentDirName'
- 설명: 콘텐츠가 저장되는 디렉토리 경로입니다.
- resultDirName:
- 형식: string
- 기본값: '.intlayer'
- 설명: 결과가 저장되는 디렉토리의 이름입니다.
- 예시: 'outputOFIntlayer'
- 참고: 이 디렉토리가 기본 수준에 없으면 resultDir를 업데이트해야 합니다.
resultDir:
- 형식: string
- 파생: 'baseDir' / 'resultDirName'
- 설명: 중간 또는 출력 결과를 저장하는 디렉토리 경로입니다.
moduleAugmentationDirName:
- 형식: string
- 기본값: 'types'
- 설명: 모듈 확장을 위한 디렉토리로, 더 나은 IDE 제안을 제공하고 타입 검사를 지원합니다.
- 예시: 'intlayer-types'
- 참고: 이는 tsconfig.json에 포함해야 합니다.
moduleAugmentationDir:
- 형식: string
- 파생: 'baseDir' / 'moduleAugmentationDirName'
- 설명: 모듈 확장 및 추가 타입 정의를 위한 경로입니다.
- dictionariesDirName:
- 형식: string
- 기본값: 'dictionary'
- 설명: 사전을 저장하는 디렉토리입니다.
- 예시: 'translations'
- 참고: 결과 디렉토리 수준에 없으면 dictionariesDir를 업데이트해야 합니다.
dictionariesDir:
- 형식: string
- 파생: 'resultDir' / 'dictionariesDirName'
- 설명: 로케일 사전을 저장하는 디렉토리입니다.
- i18nextResourcesDirName:
- 형식: string
- 기본값: 'i18next_dictionary'
- 설명: i18n 사전을 저장하는 디렉토리입니다.
- 예시: 'translations'
- 참고: 결과 디렉토리 수준에 없으면 i18nextResourcesDir를 업데이트해야 합니다.
- 참고: i18n 사전 출력에 i18next를 포함하여 i18next를 위한 사전을 구축해야 합니다.
i18nextResourcesDir:
- 형식: string
- 파생: 'resultDir' / 'i18nextResourcesDirName'
- 설명: i18n 사전을 저장하는 디렉토리입니다.
- 참고: 이 디렉토리는 i18next 출력 형식에 대해 구성되어야 합니다.
typeDirName:
- 형식: string
- 기본값: 'types'
- 설명: 사전 타입을 저장하는 디렉토리입니다.
- 예시: 'intlayer-types'
- 참고: 결과 디렉토리 수준에 없으면 typesDir를 업데이트해야 합니다.
typesDir:
- 형식: string
- 파생: 'resultDir' / 'typeDirName'
- 설명: 사전 타입을 저장하는 디렉토리입니다.
- mainDirName:
- 형식: string
- 기본값: 'main'
- 설명: 주요 파일을 저장하는 디렉토리입니다.
- 예시: 'intlayer-main'
- 참고: 결과 디렉토리 수준에 없으면 mainDir를 업데이트해야 합니다.
- mainDir:
- 형식: string
- 파생: 'resultDir' / 'mainDirName'
- 설명: 주요 응용 프로그램 파일이 저장되는 디렉토리입니다.
- excludedPath:
- 형식: string[]
- 기본값: ['node_modules']
- 설명: 콘텐츠 검색에서 제외된 디렉토리입니다.
- 참고: 이 설정은 아직 사용되지 않지만 향후 구현 예정입니다.
로거 구성
로거를 제어하는 설정으로, 로깅 수준과 사용할 접두사에 대한 정보를 포함합니다.
속성
- enabled:
- 형식: boolean
- 기본값: true
- 설명: 로거가 활성화되어 있는지 여부를 나타냅니다.
- 예시: true
- 참고: NODE_ENV 또는 다른 전용 환경 변수를 사용하여 설정할 수 있습니다.
- level:
- 형식: 'info' | 'warn' | 'debug' | 'log'
- 기본값: 'log'
- 설명: 로거의 수준입니다.
- 예시: 'info'
- 참고: 로거의 수준은 'log', 'info', 'warn', 'error' 또는 'debug' 중 하나일 수 있습니다.
- prefix:
- 형식: string
- 기본값: '[intlayer] '
- 설명: 로거의 접두사입니다.
- 예시: '[my custom prefix] '
- 참고: 로거의 접두사입니다.
이 문서를 개선할 아이디어가 있으시면 GitHub에 풀 리퀘스트를 제출하여 자유롭게 기여해 주세요.
문서에 대한 GitHub 링크