Author:
    Creation:2024-08-13Last update:2026-08-22

    Intlayer рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝

    рдЕрд╡рд▓реЛрдХрди

    Intlayer рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрдкрдХреЛ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдкрд╣рд▓реБрдУрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ, рдЬреИрд╕реЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг, рдорд┐рдбрд▓рд╡реЗрдпрд░ рдФрд░ рдХрдВрдЯреЗрдВрдЯ рдкреНрд░рдмрдВрдзрдиред рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЙрдкрд░реНрдЯреА рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред


    рд╡рд┐рд╖рдп рд╕реВрдЪреА


    рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕рдорд░реНрдерди

    Intlayer JSON, JS, MJS рдФрд░ TS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдкреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:

    • intlayer.config.ts
    • intlayer.config.js
    • intlayer.config.json
    • intlayer.config.json5
    • intlayer.config.jsonc
    • intlayer.config.cjs
    • intlayer.config.mjs
    • .intlayerrc

    рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЙрджрд╛рд╣рд░рдг

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";
    import { nextjsRewrite } from "intlayer/routing";
    import { syncJSON } from "@intlayer/sync-json-plugin";
    import { z } from "zod";
    
    /**
     * рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде Intlayer рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрджрд╛рд╣рд░рдгред
     */
    const config: IntlayerConfig = {
      /**
       * рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред
       */
      internationalization: {
        /**
         * рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд▓реЛрдХреЗрд▓ рдХреА рд╕реВрдЪреАред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: [Locales.ENGLISH]
         */
        locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
    
        /**
         * рдЖрд╡рд╢реНрдпрдХ рд▓реЛрдХреЗрд▓ рдХреА рд╕реВрдЪреА рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
         * рдпрджрд┐ рдЦрд╛рд▓реА рд╣реИ, рддреЛ `strict` рдореЛрдб рдореЗрдВ рд╕рднреА рд▓реЛрдХреЗрд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: []
         */
        requiredLocales: [Locales.ENGLISH],
    
        /**
         * рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рдХрдВрдЯреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕рдЦреНрддреА рдХрд╛ рд╕реНрддрд░ред
         * - "strict": рдпрджрд┐ рдХреЛрдИ рдШреЛрд╖рд┐рдд рд▓реЛрдХреЗрд▓ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ рдпрд╛ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
         * - "inclusive": рдпрджрд┐ рдШреЛрд╖рд┐рдд рд▓реЛрдХреЗрд▓ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИред
         * - "loose": рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рд▓реЛрдХреЗрд▓ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "inclusive"
         */
        strictMode: "inclusive",
    
        /**
         * рдЕрдиреБрд░реЛрдзрд┐рдд рд▓реЛрдХреЗрд▓ рдирд╣реАрдВ рдорд┐рд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдлрд╝рд╛рд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: Locales.ENGLISH
         */
        defaultLocale: Locales.ENGLISH,
      },
    
      /**
       * рдбрд┐рдХреНрд╢рдирд░реА рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдХрдВрдЯреЗрдВрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
       */
      dictionary: {
        /**
         * рдбрд┐рдХреНрд╢рдирд░реА рдХреИрд╕реЗ рдЖрдпрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
         * - "static": рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рд╕реНрдерд┐рд░ рдЖрдпрд╛рддред
         * - "dynamic": Suspense рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдЖрдпрд╛рддред
         * - "fetch": рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдлрд╝реЗрдЪрд┐рдВрдЧред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "static"
         */
        importMode: "static",
    
        /**
         * AI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрдкрд╕реНрдерд┐рдд рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рднрд░рдиреЗ рдХреА рд░рдгрдиреАрддрд┐ред
         * рдПрдХ рдмреВрд▓рд┐рдпрди рдпрд╛ рднрд░реЗ рд╣реБрдП рдХрдВрдЯреЗрдВрдЯ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрде рдкреИрдЯрд░реНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
         */
        fill: true,
    
        /**
         * рдбрд┐рдХреНрд╢рдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рднреМрддрд┐рдХ рд╕реНрдерд╛рдиред
         * - "local": рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрддред
         * - "remote": Intlayer CMS рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрддред
         * - "hybrid": рд╕реНрдерд╛рдиреАрдп рдФрд░ Intlayer CMS рджреЛрдиреЛрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрддред
         * - "plugin" (рдпрд╛ рдХреЛрдИ рдХрд╕реНрдЯрдо рд╕реНрдЯреНрд░рд┐рдВрдЧ): рдкреНрд▓рдЧрдЗрди рдпрд╛ рдХрд╕реНрдЯрдо рд╕реНрд░реЛрдд рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "local"
         */
        location: "local",
    
        /**
         * рдХрдВрдЯреЗрдВрдЯ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ (рдЬреИрд╕реЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХреЛ HTML рдореЗрдВ)ред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: false
         */
        contentAutoTransformation: false,
      },
    
      /**
       * рд░рд╛рдЙрдЯреАрдВрдЧ рдФрд░ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред
       */
      routing: {
        /**
         * рдкреНрд░рддрд┐-рд▓реЛрдХреЗрд▓ рд░рд╛рдЙрдЯреАрдВрдЧ рд░рдгрдиреАрддрд┐ред
         * - "prefix-no-default": рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдлрд┐рдХреНрд╕ (рдЬреИрд╕реЗ /dashboard, /fr/dashboard)ред
         * - "prefix-all": рд╕рднреА рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдлрд┐рдХреНрд╕ (рдЬреИрд╕реЗ /en/dashboard, /fr/dashboard)ред
         * - "no-prefix": URL рдореЗрдВ рдХреЛрдИ рд▓реЛрдХреЗрд▓ рдирд╣реАрдВред
         * - "search-params": ?locale=... рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "prefix-no-default"
         */
        mode: "prefix-no-default",
    
        /**
         * Intlayer рд▓реЛрдХреЗрд▓-рд░реВрдЯрд┐рдВрдЧ рдкреНрд░реЙрдХреНрд╕реА (рдорд┐рдбрд▓рд╡реЗрдпрд░) рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред
         * dev, preview рдФрд░ SSR рдореЗрдВ рд▓реЛрдХреЗрд▓ рдкрд╣рдЪрд╛рди, рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдФрд░ рд░реАрд░рд╛рдЗрдЯ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
         * - рдЕрдирд╕реЗрдЯ (auto): dev рдФрд░ preview рд╕рд░реНрд╡рд░ рдХреБрдХреАрдЬрд╝ рддрдерд╛ рд╣реЗрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд▓реЛрдХреЗрд▓ рдХреЛ
         *   рдЕрдирджреЗрдЦрд╛ рдХрд░рдХреЗ рд░реВрдЯрд┐рдВрдЧ рдХреЛ URL-рдЖрдзрд╛рд░рд┐рдд рд░рдЦрддреЗ рд╣реИрдВред рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рдЕрдм рднреА рд╣рд▓ рд╣реЛрддреЗ рд╣реИрдВ,
         *   рд▓реЛрдХреЗрд▓ рдЕрдм рднреА рд╕рд╣реЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ Accept-Language рдкрд╣рдЪрд╛рди рдЕрдм рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред
         *   рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ рдпрд╣ `true` рдЬреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИред
         * - true: рд╣рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреВрд░реНрдг рд╡реНрдпрд╡рд╣рд╛рд░ред
         * - false: рдХреЛрдИ рд▓реЛрдХреЗрд▓ рд░реВрдЯрд┐рдВрдЧ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: undefined (auto)
         */
        enableProxy: undefined,
    
        /**
         * рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рд▓реЛрдХреЗрд▓ рдХреЛ рдХрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рд╣реИред
         * рд╡рд┐рдХрд▓реНрдк: 'cookie', 'localStorage', 'sessionStorage', 'header' рдпрд╛ рдЗрдирдХрд╛ рд╕рд░рдгреАред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ['cookie', 'header']
         */
        storage: ["cookie", "header"],
    
        /**
         * рдПрдкреНрд▓рд┐рдХреЗрд╢рди URL рдХрд╛ рдмреЗрд╕ рдкрд╛рдеред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ""
         */
        basePath: "",
    
        /**
         * рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЛрдХреЗрд▓ рдореЗрдВ рдкрд╛рде рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо URL рдкреБрдирд░реНрд▓реЗрдЦрди рдирд┐рдпрдоред
         */
        rewrite: nextjsRewrite({
          "/[locale]/about": {
            en: "/[locale]/about",
            fr: "/[locale]/a-propos",
          },
        }),
    
        /**
         * рдбреЛрдореЗрди-рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрд▓ рдХреЛ рдбреЛрдореЗрди рд╣реЛрд╕реНрдЯрдирд╛рдореЛрдВ рд╕реЗ рдореИрдк рдХрд░рддрд╛ рд╣реИред
         * рдЗрди рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП URL рдкреВрд░реНрдг (absolute) рд╣реЛрдВрдЧреЗ (рдЬреИрд╕реЗ, https://intlayer.cn/)ред
         * рдбреЛрдореЗрди рд▓реЛрдХреЗрд▓ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╛рде рдореЗрдВ рдХреЛрдИ рд▓реЛрдХреЗрд▓ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: undefined
         */
        domains: {
          en: "intlayer.org",
          zh: "intlayer.cn",
        },
      },
    
      /**
       * рдХрдВрдЯреЗрдВрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
       */
      content: {
        /**
         * рдбрд┐рдХреНрд╢рдирд░реА рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ['.content.ts', '.content.js', '.content.json', рдЖрджрд┐]
         */
        fileExtensions: [".content.ts", ".content.js", ".content.json"],
    
        /**
         * рд╡реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдЬрд╣рд╛рдБ .content рдлрд╝рд╛рдЗрд▓реЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ["."]
         */
        contentDir: ["src"],
    
        /**
         * рд╕реНрд░реЛрдд рдХреЛрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
         * рдмрд┐рд▓реНрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдХреЛрдб рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ["."]
         */
        codeDir: ["src"],
    
        /**
         * рд╕реНрдХреИрдирд┐рдВрдЧ рд╕реЗ рдмрд╛рд╣рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдЯрд░реНрдиред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ['node_modules', '.intlayer', рдЖрджрд┐]
         */
        excludedPath: ["node_modules"],
    
        /**
         * рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдирд╛ рдФрд░ рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЛрдб рдореЗрдВ true
         */
        watch: true,
    
        /**
         * рдирдИ рдмрдирд╛рдИ рдЧрдИ / рдЕрдкрдбреЗрдЯ рдХреА рдЧрдИ .content рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдбред
         */
        formatCommand: 'npx prettier --write "{{file}}"',
      },
    
      /**
       * рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред
       */
      editor: {
        /**
         * рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░ рд╕рдХреНрд╖рдо рд╣реИ рдпрд╛ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: false
         */
        enabled: true,
    
        /**
         * рдУрд░рд┐рдЬрд┐рди рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ URLред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ""
         */
        applicationURL: "http://localhost:3000",
    
        /**
         * рд╕реНрдерд╛рдиреАрдп рдПрдбрд┐рдЯрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 8000
         */
        port: 8000,
    
        /**
         * рдПрдбрд┐рдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ URLред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "http://localhost:8000"
         */
        editorURL: "http://localhost:8000",
    
        /**
         * Intlayer CMS рдХрд╛ URLред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "https://app.intlayer.org"
         */
        cmsURL: "https://app.intlayer.org",
    
        /**
         * рдмреИрдХрдПрдВрдб API рд╕рд░реНрд╡рд░ рдХрд╛ URLред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "https://back.intlayer.org"
         */
        backendURL: "https://back.intlayer.org",
    
        /**
         * рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдХрдВрдЯреЗрдВрдЯ рд╕рд┐рдВрдХ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: false
         */
        liveSync: true,
      },
    
      /**
       * рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ (analytics) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред
       */
      analytics: {
        /**
         * рдХреНрдпрд╛ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд╕рдВрдЧреНрд░рд╣рдг рд╕рдХреНрд╖рдо рд╣реИ (рдкреЗрдЬ рд╡реНрдпреВ, рдХрдВрдЯреЗрдВрдЯ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░, A/B рдЗрд╡реЗрдВрдЯреНрд╕)ред
         * `@intlayer/analytics` рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдирд╛ рдФрд░ рдПрдЯреНрд░рд┐рдмреНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП `editor.clientId` рд╕реЗрдЯ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
         */
        enabled: true,
    
        /**
         * рдмреИрдХрдПрдВрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмреИрдЪ рдлрд╝реНрд▓рд╢ рдХреЗ рдмреАрдЪ рдорд┐рд▓реАрд╕реЗрдХрдВрдбред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 20000
         */
        flushInterval: 20000,
    
        /**
         * рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рддреНрд░реЛрдВ (sessions) рдХрд╛ рдЕрдВрд╢, 0 (рдХреЛрдИ рдирд╣реАрдВ) рд╕реЗ 1 (рд╕рднреА) рддрдХред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 1
         */
        sampleRate: 1,
      },
    
      /**
       * AI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд╡рд╛рдж рдФрд░ рдЬрдирд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
       */
      ai: {
        /**
         * рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ AI рдкреНрд░рджрд╛рддрд╛ред
         * рд╡рд┐рдХрд▓реНрдк: 'openai', 'anthropic', 'mistral', 'deepseek', 'gemini', 'ollama', 'openrouter', 'alibaba', 'fireworks', 'groq', 'huggingface', 'bedrock', 'googlevertex', 'togetherai', 'lmstudio', 'moonshotai'
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 'openai'
         */
        provider: "openai",
    
        /**
         * рдЪреБрдиреЗ рдЧрдП рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореЙрдбрд▓ред
         */
        model: "gpt-4o",
    
        /**
         * рдкреНрд░рджрд╛рддрд╛ рдХреА API рдХреАред
         */
        apiKey: process.env.OPENAI_API_KEY,
    
        /**
         * рдЕрдиреБрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп AI рдХрд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рд╕рдВрджрд░реНрднред
         */
        applicationContext: "рдпрд╣ рдпрд╛рддреНрд░рд╛ рдмреБрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред",
    
        /**
         * AI API рдХреЗ рд▓рд┐рдП рдмреЗрд╕ URLред
         */
        baseURL: "http://localhost:3000",
    
        /**
         * рдбреЗрдЯрд╛ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди
         *
         * рд╡рд┐рдХрд▓реНрдк:
         * - "json": рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп; рдЕрдзрд┐рдХ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
         * - "toon": рдХрдо рдЯреЛрдХрди, JSON рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕реНрдерд┐рд░ред
         *
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "json"
         */
        dataSerialization: "json",
      },
    
      /**
       * рдмрд┐рд▓реНрдб рдФрд░ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред
       */
      build: {
        /**
         * рдмрд┐рд▓реНрдб рдирд┐рд╖реНрдкрд╛рджрди рдореЛрдбред
         * - "auto": рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмрд┐рд▓реНрдбред
         * - "manual": рд╕реНрдкрд╖реНрдЯ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "auto"
         */
        mode: "auto",
    
        /**
         * рдЕрдкреНрд░рдпреБрдХреНрдд рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рд╣рдЯрд╛рдХрд░ рдкрд░рд┐рдгрд╛рдореА рдмрдВрдбрд▓ рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ true
         */
        optimize: true,
    
        /**
         * рдмрдВрдбрд▓ рдЖрдХрд╛рд░ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдорд┐рдирд┐рдЕрдлрд╝рд╛рдЗ (minify) рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
         */
        minify: true,
    
        /**
         * рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдВ рдЕрдкреНрд░рдпреБрдХреНрдд рдХреАрдЬрд╝ (unused keys) рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
         */
        prune: true,
    
        /**
         * рдкреНрд░рддрд┐-рд▓реЛрдХреЗрд▓ рдбрд┐рдХреНрд╢рдирд░реА рдЪрдВрдХреНрд╕ рдХреЛ рдЙрд╕ рдХреЛрдб-рд╕реНрдкреНрд▓рд┐рдЯ рд╕реАрдорд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореВрд╣рд┐рдд рдХрд░реЗрдВ рдЬреЛ
         * рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рддрд╛рдХрд┐ рдЖрд▓рд╕реА рд░реВрдк рд╕реЗ рд▓реЛрдб рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкреЗрдЬ рдЕрдкрдиреА рд╕рд╛рдордЧреНрд░реА рдПрдХ рд╣реА
         * рдЕрдиреБрд░реЛрдз рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
         *
         * рдиреЛрдЯ:
         * - рдХреЗрд╡рд▓ `importMode: 'dynamic'` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдбрд┐рдХреНрд╢рдирд░рд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛
         *   рд╣реИред
         */
        chunkGrouping: true,
    
        /**
         * рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдЙрд╕ рдЪрдВрдХ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░реЗрдВ рдЬреЛ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдмрдЬрд╛рдп рдЙрд╕ рдЪрдВрдХ рдХреЗ
         * рд░реЗрдВрдбрд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЙрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗред рдкрдарди рд╕рд╕реНрдкреЗрдВрдб рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк
         * рд╕реЗ рд░реЗрдВрдбрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдВ рдЕрдм рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдЭрд▓рдХрддреАред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: true
         *
         * рдиреЛрдЯ:
         * - рдХреЗрд╡рд▓ рд╣рд▓ рдХреА рдЧрдИ рд▓реЛрдХреЗрд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреЗрдЬ рдХреЗрд╡рд▓ рд╡рд╣реА рднрд╛рд╖рд╛
         *   рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
         */
        dictionariesPreload: true,
    
        /**
         * рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдбрд┐рдХреНрд╢рдирд░реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдкред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: ['cjs', 'esm']
         */
        outputFormat: ["cjs", "esm"],
    
        /**
         * рдмрд┐рд▓реНрдб рдХреЛ TypeScript рдЯрд╛рдЗрдкреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: false
         */
        checkTypes: false,
      },
    
      /**
       * рд▓реЙрдЧрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред
       */
      log: {
        /**
         * рд▓реЙрдЧ рд╕реНрддрд░ред
         * - "default": рдорд╛рдирдХ рд▓реЙрдЧрд┐рдВрдЧред
         * - "verbose": рд╡рд┐рд╕реНрддреГрдд рдбрд┐рдмрдЧ рд▓реЙрдЧрд┐рдВрдЧред
         * - "disabled": рдХреЛрдИ рд▓реЙрдЧрд┐рдВрдЧ рдирд╣реАрдВред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "default"
         */
        mode: "default",
    
        /**
         * рд▓реЙрдЧ рдореЗрдВ рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдлрд┐рдХреНрд╕ред
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: "[intlayer]"
         */
        prefix: "[intlayer]",
      },
    
      /**
       * рд╕рд┐рд╕реНрдЯрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ)
       */
      system: {
        /**
         * рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдбрд┐рдХреНрд╢рдирд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
         */
        dictionariesDir: ".intlayer/dictionary",
    
        /**
         * рдореЙрдбреНрдпреВрд▓ рдСрдЧрдореЗрдВрдЯреЗрд╢рди (module augmentation) рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
         */
        moduleAugmentationDir: ".intlayer/types",
    
        /**
         * рдмрд┐рдирд╛ рдорд░реНрдЬ рдХрд┐рдП рдЧрдП рдбрд┐рдХреНрд╢рдирд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
         */
        unmergedDictionariesDir: ".intlayer/unmerged_dictionary",
    
        /**
         * рдбрд┐рдХреНрд╢рдирд░реА рдЯрд╛рдЗрдкреНрд╕ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
         */
        typesDir: ".intlayer/types",
    
        /**
         * рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдореБрдЦреНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬрд╣рд╛рдБ рд░рдЦреА рдЬрд╛рддреА рд╣реИрдВред
         */
        mainDir: ".intlayer/main",
    
        /**
         * рд╕рдВрдХрд▓рд┐рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬрд╣рд╛рдБ рд░рдЦреА рдЬрд╛рддреА рд╣реИрдВред
         */
        configDir: ".intlayer/config",
    
        /**
         * рдХреИрд╢ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
         */
        cacheDir: ".intlayer/cache",
      },
    
      /**
       * рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдЙрдиреНрдирдд рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ)
       */
      compiler: {
        /**
         * рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
         *
         * - false: рдХрдВрдкрд╛рдЗрд▓рд░ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред
         * - true: рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
         * - "build-only": рддреЗрдЬрд╝ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВред
         *
         * рдбрд┐рдлрд╝реЙрд▓реНрдЯ: false
         */
        enabled: true,
    
        /**
         * рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред `outputDir` рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред
         *
         * - `./` рдкрде рдШрдЯрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
         * - `/` рдкрде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (`baseDir`) рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
         *
         * - рдкрде рдореЗрдВ `{{locale}}` рдЪрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдбрд┐рдХреНрд╢рдирд░реА рдЬрдирд░реЗрд╢рди рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддреА рд╣реИред
         *
         * рдЙрджрд╛рд╣рд░рдг:
         * ```ts
         * {
         *   // рдШрдЯрдХ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдмрд╣реБрднрд╛рд╖реА .content.ts рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдБ
         *   output: ({ fileName, extension }) => `./${fileName}${extension}`,
         *
         *   // output: './{{fileName}}{{extension}}', // рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордХрдХреНрд╖
         * }
         * ```
         *
         * ```ts
         * {
         *   // рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреЗрд╕ рдореЗрдВ рд▓реЛрдХреЗрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЗрдВрджреНрд░реАрдХреГрдд JSON рдмрдирд╛рдПрдБ
         *   output: ({ key, locale }) => `/locales/${locale}/${key}.content.json`,
         *
         *   // output: '/locales/{{locale}}/{{key}}.content.json', // рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордХрдХреНрд╖
         * }
         * ```
         *
         * рдЪрд░реЛрдВ рдХреА рд╕реВрдЪреА:
         *   - `fileName`: рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред
         *   - `key`: рдХрдВрдЯреЗрдВрдЯ рдХреАред
         *   - `locale`: рдХрдВрдЯреЗрдВрдЯ рд▓реЛрдХреЗрд▓ред
         *   - `extension`: рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред
         *   - `componentFileName`: рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдоред
         *   - `componentExtension`: рдШрдЯрдХ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред
         *   - `format`: рдбрд┐рдХреНрд╢рдирд░реА рд╕реНрд╡рд░реВрдкред
         *   - `componentFormat`: рдШрдЯрдХ рдбрд┐рдХреНрд╢рдирд░реА рд╕реНрд╡рд░реВрдкред
         *   - `componentDirPath`: рдШрдЯрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкрдеред
         */
        output: ({ locale, key }) => `compiler/${locale}/${key}.json`,
    
        /**
         * рдШрдЯрдХреЛрдВ рдХреЛ рдЙрдирдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж рд╕рд╣реЗрдЬрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
         * рдЗрд╕ рддрд░рд╣, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдПрдХ рдмрд╛рд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
         */
        saveComponents: false,
    
        /**
         * рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрд╡рд▓ рдХрдВрдЯреЗрдВрдЯ рдбрд╛рд▓реЗрдВред рдкреНрд░рддрд┐ рд▓реЛрдХреЗрд▓ i18next рд╕реНрд╡рд░реВрдк рдпрд╛ ICU MessageFormat JSON рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреАред
         */
        noMetadata: false,
    
        /**
         * рдбрд┐рдХреНрд╢рдирд░реА рдХреА рдкреНрд░реАрдлрд┐рдХреНрд╕
         */
        dictionaryKeyPrefix: "", // рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдбрд┐рдХреНрд╢рдирд░реА рдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдЬреЛрдбрд╝реЗрдВ
      },
    
      /**
       * рдбрд┐рдХреНрд╢рдирд░реА рд╕рд╛рдордЧреНрд░реА рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рд╕реНрдХреАрдорд╛ред
       */
      schemas: {
        "my-schema": z.object({
          title: z.string(),
        }),
      },
    
      /**
       * рд╢рдмреНрджрдХреЛрд╢ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред
       */
      dictionary: {
        /**
         * рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╢рдмреНрджрдХреЛрд╢ рдХреИрд╕реЗ рдЖрдпрд╛рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
         * - "static": рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдордп рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдЖрдпрд╛рддрд┐рддред
         * - "dynamic": рд╕рд╕реНрдкреЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЖрдпрд╛рддрд┐рддред
         * - "fetch": рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред
         */
        importMode: "static",
    
        /**
         * рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдкред
         * - 'intlayer': рдореВрд▓ intlayer рдкреНрд░рд╛рд░реВрдк (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)ред
         * - 'icu': ICU рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдкред
         * - 'i18next': i18next рдкреНрд░рд╛рд░реВрдкред
         * - 'vue-i18n': Vue I18n рдкреНрд░рд╛рд░реВрдкред
         * - 'po': GNU Gettext PO рдкреНрд░рд╛рд░реВрдкред
         */
        format: "icu",
      },
    
      /**
       * рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред
       */
      plugins: [
        syncJSON({
          format: "icu",
          source: ({ locale }) => `./messages/${locale}.json`,
        }),
      ],
    };
    
    export default config;
    

    рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рдВрджрд░реНрдн рдЧрд╛рдЗрдб

    рдиреАрдЪреЗ Intlayer рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╡рд┐рднрд┐рдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


    рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Internationalization)

    рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд▓реЛрдХреЗрд▓ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    locales рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рд▓реЛрдХреЗрд▓ рдХреА рд╕реВрдЪреАред string[] [Locales.ENGLISH] ['en', 'fr', 'es']
    requiredLocales рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд▓реЛрдХреЗрд▓ рдХреА рд╕реВрдЪреАред string[] [] [] тАв рдпрджрд┐ рдЦрд╛рд▓реА рд╣реИ, рддреЛ strict рдореЛрдб рдореЗрдВ рд╕рднреА рд▓реЛрдХреЗрд▓ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред
    тАв рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрд╡рд╢реНрдпрдХ рд▓реЛрдХреЗрд▓ рднреА locales рдлрд╝реАрд▓реНрдб рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВред
    strictMode TypeScript рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рдХрдВрдЯреЗрдВрдЯ рдХрд╛ рдПрдХ рдордЬрдмреВрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред string 'inclusive' тАв рдпрджрд┐ "strict": t рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдШреЛрд╖рд┐рдд рд▓реЛрдХреЗрд▓ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдпрджрд┐ рдХреЛрдИ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ рдпрд╛ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
    тАв рдпрджрд┐ "inclusive": рдЕрдиреБрдкрд╕реНрдерд┐рдд рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореМрдЬреВрджрд╛ рдЕрдШреЛрд╖рд┐рдд рд▓реЛрдХреЗрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
    тАв рдпрджрд┐ "loose": рдХрд┐рд╕реА рднреА рдореМрдЬреВрджрд╛ рд▓реЛрдХреЗрд▓ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
    defaultLocale рдЕрдиреБрд░реЛрдзрд┐рдд рд▓реЛрдХреЗрд▓ рдирд╣реАрдВ рдорд┐рд▓рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдлрд╝рд╛рд▓рдмреИрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ред string Locales.ENGLISH 'en' рд▓реЛрдХреЗрд▓ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЗрд╕реЗ URL, рдХреБрдХреА рдпрд╛ рд╣реЗрдбрд░ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    рдПрдбрд┐рдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Editor)

    рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ рдФрд░ рдЗрдиреЗрдмрд▓ рд╕реНрдЯреЗрдЯрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИред

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    applicationURL рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ URLред string undefined 'http://localhost:3000'
    'https://example.com'
    process.env.INTLAYER_EDITOR_URL
    тАв рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдПрдбрд┐рдЯрд░ рдХреЗ рдУрд░рд┐рдЬрд┐рди рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    тАв рдпрджрд┐ '*' рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рдПрдбрд┐рдЯрд░ рдХрд┐рд╕реА рднреА рдУрд░рд┐рдЬрд┐рди рд╕реЗ рд╕реБрд▓рдн рд╣реИред
    port рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреЛрд░реНрдЯред number 8000
    editorURL рдПрдбрд┐рдЯрд░ рд╕рд░реНрд╡рд░ рдХрд╛ URLред string 'http://localhost:8000' 'http://localhost:3000'
    'https://example.com'
    process.env.INTLAYER_EDITOR_URL
    тАв рдЙрди рдУрд░рд┐рдЬрд┐рди рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
    тАв рдпрджрд┐ '*' рдкрд░ рд╕реЗрдЯ рд╣реИ, рддреЛ рдпрд╣ рдХрд┐рд╕реА рднреА рдУрд░рд┐рдЬрд┐рди рд╕реЗ рд╕реБрд▓рдн рд╣реИред
    тАв рдпрджрд┐ рдкреЛрд░реНрдЯ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдПрдбрд┐рдЯрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЛрдореЗрди рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
    cmsURL Intlayer CMS рдХрд╛ URLред string 'https://app.intlayer.org' 'https://app.intlayer.org'
    backendURL рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдХрд╛ URLред string https://back.intlayer.org http://localhost:4000
    enabled рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред boolean false process.env.NODE_ENV !== 'production' тАв рдпрджрд┐ false, рдПрдбрд┐рдЯрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
    тАв рдХреБрдЫ рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рддрд╛ рд╣реИред
    clientId intlayer рдкреИрдХреЗрдЬреЛрдВ рдХреЛ oAuth2 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреИрдХрдПрдВрдб рдкрд░ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдкрдирд╛ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП intlayer.org/project рдкрд░ рдЬрд╛рдПрдБред string |
    undefined
    undefined рдЗрд╕реЗ рдЧреБрдкреНрдд рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░реЛрдВ (environment variables) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
    clientSecret intlayer рдкреИрдХреЗрдЬреЛрдВ рдХреЛ oAuth2 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреИрдХрдПрдВрдб рдкрд░ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЕрдкрдирд╛ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП intlayer.org/project рдкрд░ рдЬрд╛рдПрдБред string |
    undefined
    undefined рдЗрд╕реЗ рдЧреБрдкреНрдд рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░реЛрдВ (environment variables) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
    dictionaryPriorityStrategy рдбрд┐рдХреНрд╢рдирд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд░рдгрдиреАрддрд┐ рдЬрдм рд╕реНрдерд╛рдиреАрдп рдФрд░ рджреВрд░рд╕реНрде рдбрд┐рдХреНрд╢рдирд░реА рджреЛрдиреЛрдВ рдореМрдЬреВрдж рд╣реЛрдВред string 'local_first' 'distant_first' тАв 'distant_first': рд╕реНрдерд╛рдиреАрдп рдбрд┐рдХреНрд╢рдирд░реА рдкрд░ рджреВрд░рд╕реНрде рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИред
    тАв 'local_first': рджреВрд░рд╕реНрде рдбрд┐рдХреНрд╢рдирд░реА рдкрд░ рд╕реНрдерд╛рдиреАрдп рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реИред
    liveSync рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЛ CMS
    рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░
    рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрддрд╛ рдЪрд▓рдиреЗ рдкрд░ рддреБрд░рдВрдд рдХрдВрдЯреЗрдВрдЯ рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред
    boolean true true тАв рдбрд┐рдХреНрд╢рдирд░реА рдЬреЛрдбрд╝рдиреЗ/рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреЗрдЬ рдХрдВрдЯреЗрдВрдЯ рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░рддрд╛ рд╣реИред
    тАв рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ рдХрдВрдЯреЗрдВрдЯ рдХреЛ рджреВрд╕рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдереЛрдбрд╝рд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
    тАв рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред
    liveSyncPort рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ рд╕рд░реНрд╡рд░ рдХрд╛ рдкреЛрд░реНрдЯред number 4000 4000
    liveSyncURL рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ рд╕рд░реНрд╡рд░ рдХрд╛ URLред string 'http://localhost:{liveSyncPort}' 'https://example.com' рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ localhost рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ; рджреВрд░рд╕реНрде рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

    рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Analytics)

    Intlayer рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдВрдЯ (рдкреЗрдЬ рд╡реНрдпреВ, рдХрдВрдЯреЗрдВрдЯ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░) рдХреЛ рдПрдХрддреНрд░ рдХрд░рдирд╛ рдФрд░ рдХрдВрдЯреЗрдВрдЯ рдкрд░ A/B рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рдирд╛ред

    рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо рд╣реИ (рдСрдкреНрдЯ-рдЖрдЙрдЯ): @intlayer/analytics рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрддреЗ рд╣реА рдФрд░ рдПрдЯреНрд░рд┐рдмреНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреБрдВрдЬреА (editor.clientId) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрддреЗ рд╣реА рд╕рдВрдЧреНрд░рд╣рдг рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред analytics.enabled рдХреЛ false рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ тАФ рдпрд╛ рдкреИрдХреЗрдЬ рдЗрдВрд╕реНрдЯреЙрд▓ рди рдХрд░реЗрдВ тАФ рдФрд░ рд╕рдВрдкреВрд░реНрдг рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдВрдбрд▓ рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (dead-code elimination)ред

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдкреНрд░рдХрд╛рд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдиреЛрдЯ
    enabled рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рд╕рдВрдЧреНрд░рд╣рдг рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ (рдкреЗрдЬ рд╡реНрдпреВ, рдХрдВрдЯреЗрдВрдЯ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░, A/B рдЗрд╡реЗрдВрдЯреНрд╕)ред boolean true false @intlayer/analytics рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрдирд╛ рдФрд░ рдПрдЯреНрд░рд┐рдмреНрдпреВрд╢рди рдХреЗ рд▓рд┐рдП editor.clientId рд╕реЗрдЯ рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ; рдЕрдиреНрдпрдерд╛ enabled рдХреЗ true рд╣реЛрдиреЗ рдкрд░ рднреА рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдЕрдХреНрд╖рдо рд░рд╣рддрд╛ рд╣реИред
    flushInterval рдмреИрдХрдПрдВрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмреИрдЪ рдлрд╝реНрд▓рд╢ рдХреЗ рдмреАрдЪ рдорд┐рд▓реАрд╕реЗрдХрдВрдбред number 20000 10000
    sampleRate рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рддреНрд░реЛрдВ рдХрд╛ рдЕрдВрд╢, 0 (рдХреЛрдИ рдирд╣реАрдВ) рд╕реЗ 1 (рд╕рднреА) рддрдХред number 1 0.5 рд╕реИрдВрдкрд▓рд┐рдВрдЧ рдкреНрд░рддрд┐ рд╕рддреНрд░ рдирд┐рд░реНрдзрд╛рд░рдХ (deterministic) рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рддреНрд░ рдЕрдкрдиреЗ рд╕рднреА рдЗрд╡реЗрдВрдЯреНрд╕ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИред

    рд░рд╛рдЙрдЯреАрдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Routing)

    URL рд╕рдВрд░рдЪрдирд╛, рд▓реЛрдХреЗрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдФрд░ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкреНрд░рдмрдВрдзрди рд╕рд╣рд┐рдд рд░рд╛рдЙрдЯреАрдВрдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    mode рд▓реЛрдХреЗрд▓ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП URL рд░рд╛рдЙрдЯреАрдВрдЧ рдореЛрдбред 'prefix-no-default' |
    'prefix-all' |
    'no-prefix' |
    'search-params'
    'prefix-no-default' 'prefix-no-default': /dashboard (en) рдпрд╛ /fr/dashboard (fr)ред 'prefix-all': /en/dashboard ред 'no-prefix': рд▓реЛрдХреЗрд▓ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 'search-params': /dashboard?locale=fr рдХреБрдХреА рдкреНрд░рдмрдВрдзрди рдпрд╛ рд▓реЛрдХреЗрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
    enableProxy Intlayer рд▓реЛрдХреЗрд▓-рд░реВрдЯрд┐рдВрдЧ рдкреНрд░реЙрдХреНрд╕реА (рдорд┐рдбрд▓рд╡реЗрдпрд░) рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред boolean |
    undefined
    undefined (auto) true тАв рдЕрдирд╕реЗрдЯ (auto): dev рдФрд░ preview рд╕рд░реНрд╡рд░ рдХреБрдХреАрдЬрд╝/рд╣реЗрдбрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рд▓реЛрдХреЗрд▓ рдХреЛ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ; рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕, рд╕рд╣реЗрдЬрдирд╛ рдФрд░ Accept-Language рдкрд╣рдЪрд╛рди рдЕрдм рднреА рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ true рдЬреИрд╕рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ред
    тАв true: рд╣рд░ рдЬрдЧрд╣ рдкреВрд░реНрдг рд╡реНрдпрд╡рд╣рд╛рд░ред
    тАв false: рдХреЛрдИ рд▓реЛрдХреЗрд▓ рд░реВрдЯрд┐рдВрдЧ рдирд╣реАрдВред Next.js рдореЗрдВ intlayerProxy рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкрд╛рд╕-рдереНрд░реВ рдмрди рдЬрд╛рддрд╛ рд╣реИред
    storage рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рд▓реЛрдХреЗрд▓ рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиред false |
    'cookie' |
    'localStorage' |
    'sessionStorage' |
    'header' |
    CookiesAttributes |
    StorageAttributes |
    Array
    ['cookie', 'header'] 'localStorage'
    [{ type: 'cookie', name: 'custom-locale', secure: true }]
    рдиреАрдЪреЗ рд╕реНрдЯреЛрд░реЗрдЬ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВред
    basePath рдПрдкреНрд▓рд┐рдХреЗрд╢рди URL рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдкрд╛рдеред string '' '/my-app' рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди https://example.com/my-app рдкрддреЗ рдкрд░ рдЪрд▓рддрд╛ рд╣реИ, рддреЛ basePath '/my-app' рд╣реИ рдФрд░ URL https://example.com/my-app/en рдмрди рдЬрд╛рддреЗ рд╣реИрдВред
    rewrite рдХрд╕реНрдЯрдо URL рдкреБрдирд░реНрд▓реЗрдЦрди рдирд┐рдпрдо рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╛рде рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рд╛рдЙрдЯреАрдВрдЧ рдореЛрдб рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВред рдЧрддрд┐рд╢реАрд▓ рдорд╛рдкрджрдВрдбреЛрдВ [param] рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред Record<string, StrictModeLocaleMap<string>> undefined рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ тАв рдкреБрдирд░реНрд▓реЗрдЦрди рдирд┐рдпрдореЛрдВ рдХреЛ mode рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИред
    тАв Next.js рдФрд░ Vite рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
    тАв getLocalizedUrl() рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрдЪрд┐рдд рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
    тАв рдХрд╕реНрдЯрдо URL рдкреБрдирд░реНрд▓реЗрдЦрди рджреЗрдЦреЗрдВред
    domains рдбреЛрдореЗрди-рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрд▓ рдХреЛ рдбреЛрдореЗрди рд╣реЛрд╕реНрдЯрдирд╛рдореЛрдВ рд╕реЗ рдореИрдк рдХрд░рддрд╛ рд╣реИред рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░, рдЙрд╕ рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП URL рдЗрд╕ рдбреЛрдореЗрди рдХреЛ рдмреЗрд╕ (рдкреВрд░реНрдг URL) рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рде рдореЗрдВ рдХреЛрдИ рд▓реЛрдХреЗрд▓ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред Partial<Record<Locale, string>> undefined { zh: 'intlayer.zh', fr: 'intlayer.org' } тАв рд╣реЛрд╕реНрдЯрдирд╛рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рди рд╣реЛрдиреЗ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ https:// рд╣реИред
    тАв рдбреЛрдореЗрди рд╕реНрд╡рдпрдВ рд▓реЛрдХреЗрд▓ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП /zh/ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
    тАв getLocalizedUrl('/', 'zh'), https://intlayer.zh/ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

    rewrite рдЙрджрд╛рд╣рд░рдг:

    typescript
    routing: {
      mode: "prefix-no-default", // рдлрд╝рд╛рд▓рдмреИрдХ рд░рдгрдиреАрддрд┐
      rewrite: nextjsRewrite({
        "/about": {
          en: "/about",
          fr: "/a-propos",
        },
        "/product/[slug]": {
          en: "/product/[slug]",
          fr: "/produit/[slug]",
        },
        "/blog/[category]/[id]": {
          en: "/blog/[category]/[id]",
          fr: "/journal/[category]/[id]",
        },
      }),
    }
    

    рд╕реНрдЯреЛрд░реЗрдЬ рдорд╛рдкрджрдВрдб (Storage)

    рдорд╛рди рдЯрд┐рдкреНрдкрдгреА рд╡рд┐рд╡рд░рдг
    'cookie' тАв GDPR рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рдореБрдЪрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рдорддрд┐ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред
    тАв CookiesAttributes ({ type: 'cookie', name: 'custom-locale', secure: true, httpOnly: false }) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдпред
    рд▓реЛрдХреЗрд▓ рдХреЛ рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ - рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рдкрд░ рд╕реБрд▓рднред
    'localStorage' тАв рдЬрдм рддрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдпрд╛ рди рдЬрд╛рдП, рддрдм рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛрддрд╛ред
    тАв Intlayer Proxy рдХреА рдЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рд╣реИред
    тАв StorageAttributes ({ type: 'localStorage', name: 'custom-locale' }) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдпред
    рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдордп рд╕реАрдорд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд▓реЛрдХреЗрд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ - рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдбред
    'sessionStorage' тАв рдЯреИрдм/рд╡рд┐рдВрдбреЛ рдмрдВрдж рдХрд░рдиреЗ рдкрд░ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    тАв Intlayer Proxy рдХреА рдЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рд╣реИред
    тАв StorageAttributes ({ type: 'sessionStorage', name: 'custom-locale' }) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдпред
    рдкреЗрдЬ рд╕рддреНрд░ рдХреА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ - рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдбред
    'header' тАв API рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреАред
    тАв рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХреА рдЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рд╣реИред
    тАв StorageAttributes ({ type: 'header', name: 'custom-locale' }) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдпред
    HTTP рд╣реЗрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдХреЗрд▓ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ - рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдбред

    рдХреБрдХреАрдЬрд╝ рдЧреБрдг (Cookies Attributes)

    рдХреБрдХреАрдЬрд╝ рдореЗрдВ рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдг рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк
    name рдХреБрдХреА рдХрд╛ рдирд╛рдоред рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 'INTLAYER_LOCALE' string
    domain рдХреБрдХреА рдбреЛрдореЗрдиред рдбрд┐рдлрд╝реЙрд▓реНрдЯ: undefined string
    path рдХреБрдХреА рдкрд╛рдеред рдбрд┐рдлрд╝реЙрд▓реНрдЯ: undefined string
    secure HTTPS рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ: undefined boolean
    httpOnly HTTP-only рдлрд╝реНрд▓реИрдЧред рдбрд┐рдлрд╝реЙрд▓реНрдЯ: undefined boolean
    sameSite SameSite рдкреЙрд▓рд┐рд╕реАред 'strict' |
    'lax' |
    'none'
    expires рдПрдХ number рдирд┐рд░реНрдорд╛рдг рд╕реЗ рджрд┐рдиреЛрдВ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ; рдПрдХ Date (рдпрд╛ ISO рджрд┐рдирд╛рдВрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ) рдПрдХ рдкреВрд░реНрдг рд╕рдорд╛рдкреНрддрд┐ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ: undefined Date |
    number |
    string
    maxAge рдирд┐рд░реНрдорд╛рдг рд╕реЗ рд╕реЗрдХрдВрдб рдореЗрдВ рдЬреАрд╡рдирдХрд╛рд▓ред рдпрд╣ expires рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓реЗрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ: undefined number

    рд╕реНрдЯреЛрд░реЗрдЬ рдЧреБрдг (Storage Attributes)

    localStorage рдпрд╛ sessionStorage рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп:

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк
    type рд╕реНрдЯреЛрд░реЗрдЬ рдХрд╛ рдкреНрд░рдХрд╛рд░ред 'localStorage' |
    'sessionStorage'
    name рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдХреА (key) рдХрд╛ рдирд╛рдоред рдбрд┐рдлрд╝реЙрд▓реНрдЯ: 'INTLAYER_LOCALE' string

    рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдг

    рдпрд╣рд╛рдБ рдирдП v7 рд░рд╛рдЙрдЯреАрдВрдЧ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:

    рдореВрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ):

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    // intlayer.config.ts
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr", "es"],
        defaultLocale: "en",
      },
      routing: {
        mode: "prefix-no-default",
        storage: "localStorage",
        basePath: "",
      },
    };
    
    export default config;
    

    GDPR рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди:

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    // intlayer.config.ts
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr", "es"],
        defaultLocale: "en",
      },
      routing: {
        mode: "prefix-no-default",
        storage: [
          {
            type: "localStorage",
            name: "user-locale",
          },
          {
            type: "cookie",
            name: "user-locale",
            secure: true,
            sameSite: "strict",
            httpOnly: false,
          },
        ],
        basePath: "",
      },
    };
    
    export default config;
    

    рд╕рд░реНрдЪ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ (Search Params) рдореЛрдб:

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    // intlayer.config.ts
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr", "es"],
        defaultLocale: "en",
      },
      routing: {
        mode: "search-params",
        storage: "localStorage",
        basePath: "",
      },
    };
    
    export default config;
    

    рдХрд╕реНрдЯрдо рд╕реНрдЯреЛрд░реЗрдЬ рдХреЗ рд╕рд╛рде рдиреЛ-рдкреНрд░реАрдлрд┐рдХреНрд╕ рдореЛрдб:

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    // intlayer.config.ts
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr", "es"],
        defaultLocale: "en",
      },
      routing: {
        mode: "no-prefix",
        storage: {
          type: "sessionStorage",
          name: "app-locale",
        },
        basePath: "/my-app",
      },
    };
    
    export default config;
    

    рдЧрддрд┐рд╢реАрд▓ рдкрд╛рде рдХреЗ рд╕рд╛рде рдХрд╕реНрдЯрдо URL рдкреБрдирд░реНрд▓реЗрдЦрди:

    typescript
    // intlayer.config.ts
    import { nextjsRewrite } from "intlayer/routing";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: ["en", "fr"],
        defaultLocale: "en",
      },
      routing: {
        mode: "prefix-no-default", // рдмрд┐рдирд╛ рдкреБрдирд░реНрд▓реЗрдЦрди рд╡рд╛рд▓реЗ рдкрд╛рде рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рд▓рдмреИрдХ
        storage: "cookie",
        rewrite: nextjsRewrite({
          "/about": {
            en: "/about",
            fr: "/a-propos",
          },
          "/product/[slug]": {
            en: "/product/[slug]",
            fr: "/produit/[slug]",
          },
          "/blog/[category]/[id]": {
            en: "/blog/[category]/[id]",
            fr: "/journal/[category]/[id]",
          },
        }),
      },
    };
    
    export default config;
    

    рдХрдВрдЯреЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Content)

    рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХрдВрдЯреЗрдВрдЯ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдирд╛рдо, рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдФрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд╣рд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    watch рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рдкреБрдирд░реНрдЬрдиреНрдо рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдВрдЯ рдШреЛрд╖рдгрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ Intlayer рджреНрд╡рд╛рд░рд╛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред boolean true
    fileExtensions рдбрд┐рдХреНрд╢рдирд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред string[] ['.content.ts', '.content.js', '.content.cjs', '.content.mjs', '.content.json', '.content.json5', '.content.jsonc', '.content.tsx', '.content.jsx'] ['.data.ts', '.data.js', '.data.json'] рдЕрдиреБрдХреВрд▓рди рд╕рдВрдШрд░реНрд╖реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред
    contentDir рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкрд╛рде рдЬрд╣рд╛рдБ рдХрдВрдЯреЗрдВрдЯ рдкрд░рд┐рднрд╛рд╖рд╛ рдлрд╝рд╛рдЗрд▓реЗрдВ (.content.*) рд░рдЦреА рдЬрд╛рддреА рд╣реИрдВред string[] ['.'] ['src', '../../ui-library', require.resolve("@my-package/content"), '@my-package/content'] рдХрдВрдЯреЗрдВрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдФрд░ рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рдкреБрдирд░реНрдЬрдиреНрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    codeDir рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдкрд╛рде рдЬрд╣рд╛рдБ рдХреЛрдб рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмреЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ред string[] ['.'] ['src', '../../ui-library'] тАв рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди (рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣рдЯрд╛рдирд╛, рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди) рдХреЗ рд▓рд┐рдП рдХреЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    тАв contentDir рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдмрдврд╝ рд╕рдХрддрд╛ рд╣реИред
    excludedPath рдХрдВрдЯреЗрдВрдЯ рд╕реНрдХреИрдирд┐рдВрдЧ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦреА рдЧрдИ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБред string[] ['**/node_modules/**', '**/dist/**', '**/build/**', '**/.intlayer/**', '**/.next/**', '**/.nuxt/**', '**/.expo/**', '**/.vercel/**', '**/.turbo/**', '**/.tanstack/**'] рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ; рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рдпреЛрдЬрд┐рдд рд╣реИред
    formatCommand Intlayer рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрдВрдЯреЗрдВрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рд▓рд┐рдЦрдиреЗ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрдорд╛рдВрдбред string undefined 'npx prettier --write "{{file}}" --log-level silent' (Prettier), 'npx biome format "{{file}}" --write --log-level none' (Biome), 'npx eslint --fix "{{file}}" --quiet' (ESLint) тАв {{file}} рдХреЛ рдлрд╝рд╛рдЗрд▓ рдкрд╛рде рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
    тАв рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ Intlayer рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ (prettier, biome, eslint рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реИ)ред

    System Configuration

    Intlayer рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкрде рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ред рдпреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЖрдо рддреМрд░ рдкрд░ рдЖрдВрддрд░рд┐рдХ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

    Field Description Type Default Example Note
    baseDir рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАред string process.cwd() '/path/to/project' рд╕рднреА Intlayer-рд╕рдВрдмрдВрдзрд┐рдд рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЛ resolve рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    dictionariesDir рд▓реЛрдХрд▓рд╛рдЗрдЬреЗрд╢рди рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдкрдеред string '.intlayer/dictionary'
    moduleAugmentationDir Module augmentation рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА, рдЬреЛ рдмреЗрд╣рддрд░ IDE рд╕реБрдЭрд╛рд╡ рдФрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред string '.intlayer/types' 'intlayer-types' рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпрд╣ tsconfig.json рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
    unmergedDictionariesDir рдЕрдирдорд░реНрдЬреНрдб рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАред string '.intlayer/unmerged_dictionary'
    typesDir рдбрд┐рдХреНрд╢рдирд░реА рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд╛рдпрд░реЗрдХреНрдЯрд░реАред string '.intlayer/types'
    mainDir рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЬрд╣рд╛рдВ рдореБрдЦреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдЯреЛрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред string '.intlayer/main'
    configDir рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЬрд╣рд╛рдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдЯреЛрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред string '.intlayer/config'
    cacheDir рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдЬрд╣рд╛рдВ рдХреИрд╢ рдлрд╛рдЗрд▓реЗрдВ рд╕реНрдЯреЛрд░ рдХреА рдЬрд╛рддреА рд╣реИрдВред string '.intlayer/cache'

    рдбрд┐рдХреНрд╢рдирд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Dictionary)

    рдбрд┐рдХреНрд╢рдирд░реА рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдб, рдЬрд┐рд╕рдореЗрдВ рдСрдЯреЛ-рдлрд┐рд▓ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдХрдВрдЯреЗрдВрдЯ рдЬрдирд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИред

    рдпрд╣ dictionary configuration рджреЛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ:

    1. Default Values: content declaration files рдмрдирд╛рддреЗ рд╕рдордп default values рдХреЛ define рдХрд░реЗрдВ
    2. Fallback Behavior: рдЬрдм specific fields define рдирд╣реАрдВ рд╣реЛрдВ рддреЛ fallback values рдкреНрд░рджрд╛рди рдХрд░реЗрдВ, рдЬрд┐рд╕рд╕реЗ рдЖрдк dictionary operation behavior рдХреЛ globally define рдХрд░ рд╕рдХреЗрдВ

    рдХрдВрдЯреЗрдВрдЯ рдбрд┐рдХреНрд▓реЗрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡реИрд▓реНрдпреВрдЬрд╝ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХреА рдЬрд╛рддреА рд╣реИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдХрдВрдЯреЗрдВрдЯ рдлрд╝рд╛рдЗрд▓ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рджреЗрдЦреЗрдВред

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    fill рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдСрдЯреЛ-рдлрд┐рд▓ (AI рдЕрдиреБрд╡рд╛рдж) рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВред boolean |
    FilePathPattern |
    Partial<Record<Locale, boolean | FilePathPattern>>
    true { en: '/locales/en/{{key}}.json', fr: ({ key }) => '/locales/fr/${key}.json', es: false } тАв true: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкрд╛рде (рд╕реНрд░реЛрдд рдХреЗ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓)ред
    тАв false: рдЕрдХреНрд╖рдо рдХрд░реЗрдВред
    тАв рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ/рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рддрд┐ рд▓реЛрдХреЗрд▓ рдлрд╝рд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
    тАв рдкреНрд░рддрд┐ рд▓реЛрдХреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ: рдкреНрд░рддреНрдпреЗрдХ рд▓реЛрдХреЗрд▓ рдЕрдкрдиреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ; false рдЙрд╕ рд▓реЛрдХреЗрд▓ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред
    тАв {{locale}} рдХрд╛ рд╕рдорд╛рд╡реЗрд╢ рдкреНрд░рддрд┐ рд▓реЛрдХреЗрд▓ рдЬрдирд░реЗрд╢рди рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИред
    тАв рдбрд┐рдХреНрд╢рдирд░реА рд╕реНрддрд░ рдкрд░ fill рд╣рдореЗрд╢рд╛ рдЗрд╕ рд╡реИрд╢реНрд╡рд┐рдХ рд╕реЗрдЯрд┐рдВрдЧ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд▓реЗрддрд╛ рд╣реИред
    description рдПрдбрд┐рдЯрд░ рдФрд░ CMS рдХреЛ рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред AI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред string undefined 'User profile section'
    locale рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЛрдХреЗрд▓ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдШреЛрд╖рд┐рдд рдлрд╝реАрд▓реНрдб рдПрдХ рдЕрдиреБрд╡рд╛рдж рдиреЛрдб рдмрди рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реИ, рддреЛ рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдмрд╣реБрднрд╛рд╖реА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред LocalesValues undefined 'en' рдпрджрд┐ рдбрд┐рдХреНрд╢рдирд░реА рдХрдИ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
    contentAutoTransformation рдХрдВрдЯреЗрдВрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдиреЛрдбреНрд╕ (рдорд╛рд░реНрдХрдбрд╛рдЙрди, HTML рдпрд╛ рд╕рдореНрдорд┐рд▓рди) рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред boolean |
    { markdown?: boolean; html?: boolean; insertion?: boolean }
    false true тАв рдорд╛рд░реНрдХрдбрд╛рдЙрди : ### Title тЖТ md('### Title') ред
    тАв HTML : <div>Title</div> тЖТ html('<div>Title</div>') ред
    тАв рд╕рдореНрдорд┐рд▓рди : Hello {{name}} тЖТ insert('Hello {{name}}') ред
    location рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдХреНрд╢рдирд░реА рдлрд╝рд╛рдЗрд▓реЗрдВ рдХрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ рдФрд░ рд╡реЗ CMS рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рд┐рдВрдХ рдХреА рдЬрд╛рддреА рд╣реИрдВред 'local' |
    'remote' |
    'hybrid' |
    'plugin' |
    string
    'local' 'hybrid' тАв 'local': рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдмрдВрдзрдиред
    тАв 'remote': рдХреЗрд╡рд▓ рджреВрд░рд╕реНрде рдкреНрд░рдмрдВрдзрди (CMS)ред
    тАв 'hybrid': рд╕реНрдерд╛рдиреАрдп рдФрд░ рджреВрд░рд╕реНрде рдкреНрд░рдмрдВрдзрди рджреЛрдиреЛрдВред
    тАв 'plugin' рдпрд╛ рдХрд╕реНрдЯрдо рд╕реНрдЯреНрд░рд┐рдВрдЧ: рдкреНрд▓рдЧрдЗрди рдпрд╛ рдХрд╕реНрдЯрдо рд╕реНрд░реЛрдд рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдмрдВрдзрдиред
    importMode рдбрд┐рдХреНрд╢рдирд░реА рдХреИрд╕реЗ рдЖрдпрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред 'static' |
    'dynamic' |
    'fetch'
    'static' 'dynamic' тАв 'static': рд╕реНрдерд┐рд░ рдЖрдпрд╛рддред
    тАв 'dynamic': Suspense рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рдЖрдпрд╛рддред
    тАв 'fetch': рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝реЗрдЪ; рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рдкрд░ 'dynamic' рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ред
    тАв @intlayer/babel рдФрд░ @intlayer/swc рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
    тАв рдХреА (keys) рдХреЛ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
    тАв рдпрджрд┐ optimize рдмрдВрдж рд╣реИ, рддреЛ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    тАв getIntlayer, getDictionary рдЖрджрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
    format рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдкред 'intlayer' |
    'icu' |
    'i18next' |
    'vue-i18n' |
    'po'
    'intlayer' 'icu' тАв 'intlayer': рдореВрд▓ intlayer рдкреНрд░рд╛рд░реВрдкред
    тАв 'icu': ICU рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдкред
    тАв 'i18next': i18next рдкреНрд░рд╛рд░реВрдкред
    тАв 'vue-i18n': Vue I18n рдкреНрд░рд╛рд░реВрдкред
    тАв 'po': GNU Gettext PO рдкреНрд░рд╛рд░реВрдкред
    priority рдбрд┐рдХреНрд╢рдирд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ред рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рдмреАрдЪ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╕реБрд▓рдЭрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЙрдЪреНрдЪ рдорд╛рди рдирд┐рдореНрди рдорд╛рдиреЛрдВ рдкрд░ рдЬреАрддрддреЗ рд╣реИрдВред number undefined 1
    live рдЕрдкреНрд░рдЪрд▓рд┐рдд - importMode: 'fetch' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рдбрд┐рдХреНрд╢рдирд░реА рдХрдВрдЯреЗрдВрдЯ рдХреЛ рд▓рд╛рдЗрд╡ рд╕рд┐рдВрдХ API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдлрд╝реЗрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред boolean undefined v8.0.0 рдореЗрдВ рдирд╛рдо рдмрджрд▓рдХрд░ importMode: 'fetch' рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред
    schema JSON рд╕реНрдХреАрдорд╛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП Intlayer рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ред 'https://intlayer.org/schema.json' рдСрдЯреЛ-рдЬрдирд░реЗрд╢рди рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рди рдХрд░реЗрдВред
    title рдПрдбрд┐рдЯрд░ рдФрд░ CMS рдореЗрдВ рдбрд┐рдХреНрд╢рдирд░реА рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред string undefined 'User Profile'
    tags рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рд╢реНрд░реЗрдгреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдбрд┐рдЯрд░ рдФрд░ AI рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрдн рдпрд╛ рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред string[] undefined ['user', 'profile']
    version рджреВрд░рд╕реНрде рдбрд┐рдХреНрд╢рдирд░реА рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг; рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред string undefined '1.0.0' тАв CMS рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рддред
    тАв рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рди рдХрд░реЗрдВред

    fill рдЙрджрд╛рд╣рд░рдг:

    ts
    dictionary: {
      fill: {
        en: "/locales/en/{{key}}.content.json",
        fr: ({ key }) => `/locales/fr/${key}.content.json`,
        es: false,
      },
    };
    

    рд▓реЙрдЧрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Log)

    Intlayer рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбред

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    mode рд▓реЙрдЧрд░ рдореЛрдб рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред 'default' |
    'verbose' |
    'disabled'
    'default' 'verbose' тАв 'verbose': рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИред
    тАв 'disabled': рд▓реЙрдЧрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
    prefix рд▓реЙрдЧ рдореЗрдВ рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдлрд┐рдХреНрд╕ред string '[intlayer] ' '[my prefix] '

    AI рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (AI)

    Intlayer рдХреА AI рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЬрд┐рдирдореЗрдВ рдкреНрд░рджрд╛рддрд╛, рдореЙрдбрд▓ рдФрд░ API рдХреА (key) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

    рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХреНрд╕реЗрд╕ рдХреА (key) рдХреЗ рд╕рд╛рде Intlayer Dashboard рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВред Intlayer рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рдФрд░ рд▓рд╛рдЧрдд рдкреНрд░рднрд╛рд╡реА AI рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рд╕рдорд░реНрдерди рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Intlayer рдХреЛ рд╕рдмрд╕реЗ рдЕрджреНрдпрддрд┐рдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА API рдХреА рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдирд╛ AI рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ AI рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрдкрдХреЗ Intlayer рдкрд░рд┐рд╡реЗрд╢ рдореЗрдВ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред CLI рдХрдорд╛рдВрдб рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ fill рдЬреИрд╕реЗ рдХрдорд╛рдВрдб рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХрд░реЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА SDK, рд╡рд┐рдЬреБрдЕрд▓ рдПрдбрд┐рдЯрд░ рдФрд░ CMS рднреАред рдЖрдк рдЗрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рдХрдорд╛рдВрдб рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

    Intlayer рдЕрдзрд┐рдХрддрдо рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд▓рд┐рдП рдХрдИ AI рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╕рдорд░реНрдерд┐рдд рдкреНрд░рджрд╛рддрд╛ рд╣реИрдВ:

    • OpenAI (рдбрд┐рдлрд╝реЙрд▓реНрдЯ)
    • Anthropic Claude
    • Mistral AI
    • DeepSeek
    • Google Gemini
    • Google AI Studio
    • Google Vertex
    • Meta Llama
    • Ollama
    • OpenRouter
    • Alibaba Cloud
    • Fireworks
    • Hugging Face
    • Groq
    • Amazon Bedrock
    • Together.ai
    • LM Studio
    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    provider Intlayer AI рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдкреНрд░рджрд╛рддрд╛ред 'openai' |
    'anthropic' |
    'mistral' |
    'deepseek' |
    'gemini' |
    'ollama' |
    'openrouter' |
    'alibaba' |
    'fireworks' |
    'groq' |
    'huggingface' |
    'bedrock' |
    'googleaistudio' |
    'googlevertex' |
    'togetherai' |
    'lmstudio' |
    'moonshotai'
    undefined 'anthropic' рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди API рдХреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЙрдирдХреА рдХреАрдорддреЗрдВ рдЕрд▓рдЧ рд╣реЛрддреА рд╣реИрдВред
    model AI рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдореЙрдбрд▓ред string рдХреЛрдИ рдирд╣реАрдВ 'gpt-4o-2024-11-20' рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбрд▓ рдкреНрд░рджрд╛рддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред
    temperature AI рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХрддрд╛ (randomness) рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред number рдХреЛрдИ рдирд╣реАрдВ 0.1 рдЙрдЪреНрдЪ рддрд╛рдкрдорд╛рди = рдЕрдзрд┐рдХ рд░рдЪрдирд╛рддреНрдордХ рдФрд░ рдХрдо рдкреВрд░реНрд╡рд╛рдиреБрдореЗрдпред
    apiKey рдЪреБрдиреЗ рдЧрдП рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреА API рдХреАред string рдХреЛрдИ рдирд╣реАрдВ process.env.OPENAI_API_KEY рдЗрд╕реЗ рдЧреБрдкреНрдд рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
    applicationContext AI рдХреЛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдЕрдиреБрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн (рдбреЛрдореЗрди, рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХ, рдЯреЛрди, рд╢рдмреНрджрд╛рд╡рд▓реА)ред string рдХреЛрдИ рдирд╣реАрдВ 'рдореЗрд░рд╛ рдЕрдкрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрджрд░реНрдн' рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ: "рдЖрдкрдХреЛ URL рдХреЛ рд░реВрдкрд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП" )ред
    baseURL AI API рдХреЗ рд▓рд┐рдП рдмреЗрд╕ URLред string рдХреЛрдИ рдирд╣реАрдВ 'https://api.openai.com/v1'
    'http://localhost:5000'
    рд╕реНрдерд╛рдиреАрдп рдпрд╛ рдХрд╕реНрдЯрдо AI API рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
    dataSerialization AI рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рд╛рд░реВрдкред 'json' |
    'toon'
    undefined 'toon' тАв 'json': рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп; рдЕрдзрд┐рдХ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
    тАв 'toon': рдХрдо рдЯреЛрдХрди, рдХрдо рд╕реНрдерд┐рд░ред
    тАв рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдб рд╕рдВрджрд░реНрдн рдХреЗ рд░реВрдк рдореЗрдВ рдореЙрдбрд▓ рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ (рддрд░реНрдХ рдкреНрд░рдпрд╛рд╕ рдЖрджрд┐)ред

    рдмрд┐рд▓реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Build)

    Intlayer рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХреЛ рдХреИрд╕реЗ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдФрд░ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдкрджрдВрдбред

    рдмрд┐рд▓реНрдб рд╡рд┐рдХрд▓реНрдк @intlayer/babel рдФрд░ @intlayer/swc рдкреНрд▓рдЧрдЗрдиреНрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВред

    рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдореЛрдб рдореЗрдВ, Intlayer рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рд╕реНрдерд┐рд░ рдЖрдпрд╛рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
    рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди, Intlayer рдХреЛрдб рд╕реНрдкреНрд▓рд┐рдЯрд┐рдВрдЧ (chunking) рдХреЛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд╢рдирд░реА рдХреЙрд▓ рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛ рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдореА рдмрдВрдбрд▓ рдХреЗрд╡рд▓ рдЙрдиреНрд╣реАрдВ рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдЖрдпрд╛рдд рдХрд░реЗ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред
    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    mode рдмрд┐рд▓реНрдб рдореЛрдб рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред 'auto' |
    'manual'
    'auto' 'manual' тАв 'auto': рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд┐рд▓реНрдб рдХреЗ рджреМрд░рд╛рди рдмрд┐рд▓реНрдб рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
    тАв 'manual': рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред
    тАв рдбрд┐рдХреНрд╢рдирд░реА рдмрд┐рд▓реНрдб рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ Node.js рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдореЗрдВ рдЪрд▓рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП)ред
    optimize рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдб рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред boolean undefined process.env.NODE_ENV === 'production' тАв рдпрджрд┐ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрд┐рд▓реНрдб (Vite/Next.js) рдХреЗ рджреМрд░рд╛рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
    тАв true рджреЗрд╡ рдореЛрдб рдореЗрдВ рднреА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдмрд╛рдзреНрдп рдХрд░рддрд╛ рд╣реИред
    тАв false рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред
    тАв рдЪрд╛рд▓реВ рд╣реЛрдиреЗ рдкрд░, рдЪрдВрдХрд┐рдВрдЧ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд╢рдирд░реА рдХреЙрд▓ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
    тАв @intlayer/babel рдФрд░ @intlayer/swc рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
    minify рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрдВрдбрд▓ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдорд┐рдирд┐рдЕрдлрд╝рд╛рдЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред boolean false тАв рдмрдВрдбрд▓ рдХреЛ рдорд┐рдирд┐рдЕрдлрд╝рд╛рдЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред
    тАв рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ trueред
    тАв optimize рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
    тАв editor.enabled рд╕рддреНрдп рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
    prune рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдВ рдЕрдкреНрд░рдпреБрдХреНрдд рдХреАрдЬрд╝ (unused keys) рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред boolean true тАв рдмрдВрдбрд▓ рдХреЛ рдЫреЛрдЯрд╛ (pruned) рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред
    тАв рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рдкреНрд░реЛрдбрдХреНрд╢рди рдореЗрдВ trueред
    тАв optimize рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
    checkTypes рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдмрд┐рд▓реНрдб рдХреЛ TypeScript рдЯрд╛рдЗрдкреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред boolean false рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
    chunkGrouping рдХреНрдпрд╛ рдкреНрд░рддрд┐-рд▓реЛрдХреЗрд▓ рдбрд┐рдХреНрд╢рдирд░реА рдЪрдВрдХреНрд╕ рдХреЛ рдЙрд╕ рдХреЛрдб-рд╕реНрдкреНрд▓рд┐рдЯ рд╕реАрдорд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдореВрд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред boolean true тАв рд╕рдореВрд╣реАрдХрд░рдг рдХреЗ рдмрд┐рдирд╛, рдХрдИ рдШрдЯрдХреЛрдВ рд╕реЗ рдмрдирд╛ рдкреЗрдЬ рдкреНрд░рддреНрдпреЗрдХ рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред
    тАв рдХрдИ рд╕реАрдорд╛рдУрдВ рд╕реЗ рдкрд╣реБрдБрдЪреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдбрд┐рдХреНрд╢рдирд░рд┐рдпрд╛рдБ рд╕рд╛рдЭрд╛ рдЪрдВрдХ рдореЗрдВ рдЪрд▓реА рдЬрд╛рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рдкреЗрдЬ рджреВрд╕рд░реЗ рдкреЗрдЬ рдХреА рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рднреЗрдЬрддрд╛ред
    тАв рдХреЗрд╡рд▓ importMode: 'dynamic' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдбрд┐рдХреНрд╢рдирд░рд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
    тАв рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрд┐рд▓реНрдб рдкрд░, рдФрд░ рдХреЗрд╡рд▓ рдмрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд╕рдордп рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ (dev рдореЗрдВ рдирд╣реАрдВ)ред
    dictionariesPreload рдХреНрдпрд╛ рдбрд┐рдХреНрд╢рдирд░реА рдХреЛ рдЙрд╕ рдЪрдВрдХ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдмрдЬрд╛рдп рдЙрд╕ рдЪрдВрдХ рдХреЗ рд░реЗрдВрдбрд░ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗред boolean true тАв рдЙрддреНрдкрдиреНрди рдПрдВрдЯреНрд░реА рдкреЙрдЗрдВрдЯ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд┐рдВрдЧ рд▓реЛрдХреЗрд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрд▓рд╕реА рд░реВрдк рд╕реЗ рд▓реЛрдб рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд░реВрдЯ рддрдм рддрдХ рд▓реЛрдб рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдЬрдм рддрдХ рдЙрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдЙрдкрд▓рдмреНрдз рди рд╣реЛред
    тАв рдкрдарди рд╕рд╕реНрдкреЗрдВрдб рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдордХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рд░реЗрдВрдбрд░ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдВ рдЕрдм рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдЭрд▓рдХрддреАред
    тАв рдХреЗрд╡рд▓ рд╣рд▓ рдХреА рдЧрдИ рд▓реЛрдХреЗрд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреЗрдЬ рдХреЗрд╡рд▓ рд╡рд╣реА рднрд╛рд╖рд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИред
    тАв рдХреЗрд╡рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдмрд┐рд▓реНрдб рдореЗрдВ importMode: 'dynamic' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдбрд┐рдХреНрд╢рдирд░рд┐рдпреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
    тАв рдЯреЙрдк-рд▓реЗрд╡рд▓ await рд╕рдорд░реНрдерд┐рдд рдмрдВрдбрд▓рд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (Vite, esbuild)ред
    outputFormat рдбрд┐рдХреНрд╢рдирд░реА рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд╡рд░реВрдк рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред ('esm' | 'cjs')[] ['esm', 'cjs'] ['cjs']
    traversePattern рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреИрдЯрд░реНрди рдЬрд┐рдиреНрд╣реЗрдВ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕реНрдХреИрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред string[] ['**/*.{tsx,ts,js,mjs,cjs,jsx,vue,svelte,svte}', '!**/node_modules/**', '!**/dist/**', '!**/.intlayer/**', '!**/*.config.*', '!**/*.test.*', '!**/*.spec.*', '!**/*.stories.*'] ['src/**/*.{ts,tsx}', '../ui-library/**/*.{ts,tsx}', '!**/node_modules/**'] тАв рдмрд┐рд▓реНрдб рдкреНрд░рджрд░реНрд╢рди рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВред
    тАв рдпрджрд┐ optimize рдмрдВрдж рд╣реЛрддрд╛, рддреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ред
    тАв рдЧреНрд▓реЛрдм рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

    рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (Compiler)

    Intlayer рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЬреЛ рдЖрдкрдХреЗ рдШрдЯрдХреЛрдВ рд╕реЗ рд╕реАрдзреЗ рдбрд┐рдХреНрд╢рдирд░реА рдирд┐рдХрд╛рд▓рддреА рд╣реИред

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдЯрд┐рдкреНрдкрдгреА
    enabled рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдХреНрд╢рдирд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред boolean |
    'build-only'
    true 'build-only' 'build-only' рддреЗрдЬрд╝ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ; рдХреЗрд╡рд▓ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рдХреЗ рджреМрд░рд╛рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред
    dictionaryKeyPrefix рдирд┐рдХрд╛рд▓реА рдЧрдИ рдбрд┐рдХреНрд╢рдирд░реА рдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкреНрд░реАрдлрд┐рдХреНрд╕ред string '' 'my-prefix-' рд╕рдВрдШрд░реНрд╖реЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдирд░реЗрдЯ рдХреА рдЧрдИ рдХреА (key) (рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░) рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
    saveComponents рдШрдЯрдХреЛрдВ рдХреЛ рдЙрдирдХреЗ рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рдмрд╛рдж рд╕рд╣реЗрдЬрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред boolean false тАв рдпрджрд┐ true, рдореВрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЙрдирдХреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рд▓реЗрдЦрд┐рдд (overwrite) рдХрд░ рджреЗрддрд╛ рд╣реИред
    тАв рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдПрдХ рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
    output рдЖрдЙрдЯрдкреБрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдкрде рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред outputDir рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЯреЗрдореНрдкрд▓реЗрдЯ рдЪрд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: {{fileName}},
    {{key}},
    {{locale}},
    {{extension}},
    {{componentFileName}},
    {{componentExtension}},
    {{format}},
    {{componentFormat}},
    {{componentDirPath}} ред
    boolean |
    FilePathPattern |
    Partial<Record<Locale, boolean | FilePathPattern>>
    undefined './{{fileName}}{{extension}}'
    '/locales/{{locale}}/{{key}}.json'
    { en: ({ key }) => './locales/en/${key}.json', fr: '...', es: false }
    тАв ./ рдкрде рдШрдЯрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╣рд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
    тАв / рдкрде рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмреЗрд╕ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ред
    тАв {{locale}} рдкреНрд░рддрд┐ рд▓реЛрдХреЗрд▓ рдЬрдирд░реЗрд╢рди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред
    тАв рдкреНрд░рддрд┐ рд▓реЛрдХреЗрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдиреЛрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
    noMetadata рдпрджрд┐ true, рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрдЙрдЯрдкреБрдЯ рд╕реЗ рдбрд┐рдХреНрд╢рдирд░реА рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рдХреА (key), рдХрдВрдЯреЗрдВрдЯ рд░реИрдкрд░) рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред boolean false false тЖТ {"key":"my-key","content":{"key":"value"}}
    true тЖТ {"key":"value"}
    тАв i18next рд╕реНрд╡рд░реВрдк рдпрд╛ ICU MessageFormat JSON рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреАред
    тАв loadJSON рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
    dictionaryKeyPrefix рдбрд┐рдХреНрд╢рдирд░реА рдХреА рдкреНрд░реАрдлрд┐рдХреНрд╕ string '' рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдбрд┐рдХреНрд╢рдирд░реА рдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрд░реАрдлрд┐рдХреНрд╕ рдЬреЛрдбрд╝реЗрдВ

    рдХрд╕реНрдЯрдо рд╕реНрдХреАрдорд╛ (Custom Schemas)

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк
    schemas рдЖрдкрдХреЛ рдЕрдкрдиреА рдбрд┐рдХреНрд╢рдирд░реА рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Zod рд╕реНрдХреАрдорд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред Record<string, ZodSchema>

    рдкреНрд▓рдЧрдЗрдиреНрд╕ (Plugins)

    рдлрд╝реАрд▓реНрдб рд╡рд┐рд╡рд░рдг рдЯрд╛рдЗрдк
    plugins рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Intlayer рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рд╕реВрдЪреАред IntlayerPlugin[]