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