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