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 링크