Author:
    Creation:2026-06-05Last update:2026-06-05

    react-i18next / i18next рд╕реЗ Intlayer рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди

    react-i18next / i18next рд╕реЗ Intlayer рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?

    рдмрдбрд╝реА JSON рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдкреЗрдЬреЛрдВ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдордЧреНрд░реА рд▓реЛрдб рдХрд░реЗрдВред Intlayer рдЖрдкрдХреЗ рдмрдВрдбрд▓ рдФрд░ рдкреЗрдЬ рдЖрдХрд╛рд░реЛрдВ рдХреЛ 50% рддрдХ рдХрдо рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

    рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдХреЛрдк рдХрд░рдирд╛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреЗ рдкреВрд░реЗ рд╕рд╛рдордЧреНрд░реА рдХреЛрдбрдмреЗрд╕ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреА рдорд╛рдирд╕рд┐рдХ рдмреЛрдЭ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рднреА рдлреАрдЪрд░ рдлреЛрд▓реНрдбрд░ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдпрд╛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Intlayer рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЖрдкрдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рд╕рдЯреАрдХрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

    Intlayer рднреА i18n рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рд╕рдмрд╕реЗ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рд╣реИ тАФ рд╕рдорд╕реНрдпрд╛рдПрдВ рддреЗрдЬреА рд╕реЗ рдареАрдХ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдирдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдбреЙрдкреНрдЯрд░ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЖрддреА рд╣реИрдВ, рдФрд░ рдореБрдЦреНрдп API рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рдЙрддреНрдкрд╛рджрди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рд░рдВрддрд░ рдкрд░рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╣-рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдмрдбрд╝реА рднрд╛рд╖рд╛ рдореЙрдбрд▓ (LLM) рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрджрд░реНрдн рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред Intlayer рд╕рд╛рде рд╣реА рдПрдХ рд╕рдореВрд╣ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ CLI рдЕрдиреБрдкрд▓рдмреНрдз рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, LSP, MCP, рдФрд░ agent skills, рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ (DX) рдХреЛ AI рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рдорд╕реГрдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

    рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ LLM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CI/CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЖрдкрдХреЗ AI рдкреНрд░рджрд╛рддрд╛ рдХреА рд▓рд╛рдЧрдд рдкрд░ред Intlayer рд╕рд╛рде рд╣реА рдПрдХ compiler рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд╕рд╛рдордЧреНрд░реА рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рде рд╣реА рдПрдХ web platform рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

    рдмрдбрд╝реА JSON рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдШрдЯрдХреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред Intlayer рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдЖрдкрдХреА рд╕рд╛рдордЧреНрд░реА рд▓реЛрдбрд┐рдВрдЧ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред

    рдХреЗрд╡рд▓ рдПрдХ i18n рд╕рдорд╛рдзрд╛рди рд╕реЗ рдЕрдзрд┐рдХ, Intlayer рдПрдХ self-hosted visual editor рдФрд░ рдПрдХ full CMS рдЖрдкрдХреА рдмрд╣реБрднрд╛рд╖реА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ, рдЕрдиреБрд╡рд╛рджрдХ, рдХреЙрдкреАрд░рд╛рдЗрдЯрд░ рдФрд░ рдЕрдиреНрдп рдЯреАрдо рд╕рджрд╕реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХреЛ рдирд┐рд░реНрдмрд╛рдз рдмрдирд╛рддрд╛ рд╣реИред рд╕рд╛рдордЧреНрд░реА рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдФрд░/рдпрд╛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

    рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд░рдгрдиреАрддрд┐

    react-i18next / i18next рд╕реЗ Intlayer рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдкреВрд░рдХ рд░рдгрдиреАрддрд┐рдпрд╛рдВ рд╣реИрдВ:

    1. Compat рдПрдбреЙрдкреНрдЯрд░ (рдореМрдЬреВрджрд╛ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд) тАФ @intlayer/react-i18next (React рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП) рдФрд░/рдпрд╛ @intlayer/i18next (core i18n instance рдХреЗ рд▓рд┐рдП) рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдпреЗ рдкреИрдХреЗрдЬ react-i18next / i18next рдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди API рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рднреА рдЕрдиреБрд╡рд╛рдж рдХрд╛рд░реНрдп рдХреЛ рд╣реВрдб рдХреЗ рддрд╣рдд Intlayer рдХреЛ рд╕реМрдВрдкрддреЗ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ useTranslation, Trans, withTranslation, i18next.t() рдХреЙрд▓ рд░рдЦрддреЗ рд╣реИрдВ тАФ рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди import рдкрде рд╣реИред

    2. рдкреВрд░реНрдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди тАФ рдзреАрд░реЗ-рдзреАрд░реЗ react-i18next API рдХреЛ native Intlayer hooks (useIntlayer, IntlayerProvider) рдФрд░ рд╕рд╣-рд╕реНрдерд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде .content.ts рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓реЗрдВред

    рдпрд╣ рдЧрд╛рдЗрдб рд░рдгрдиреАрддрд┐ 1 рдХреЛ рдкрд╣рд▓реЗ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ (drop-in compat рдПрдбреЙрдкреНрдЯрд░), рдлрд┐рд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреВрд░реНрдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред

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

    рддреНрд╡рд░рд┐рдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди

    рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдг рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ react-i18next рдРрдк рдХреЛ рдмрд┐рдирд╛ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ Intlayer рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рд╣реИрдВред

    1. рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

      Intlayer рдореБрдЦреНрдп рдкреИрдХреЗрдЬ рдФрд░ compat рдПрдбреЙрдкреНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

      bash
      npx intlayer init --interactive
      
      --interactive рдлреНрд▓реИрдЧ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдЕрдЧрд░ рдЖрдк рдПрдХ AI рдПрдЬреЗрдВрдЯ рд╣реИрдВ рддреЛ intlayer-cli init рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
      рдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
      bash
      npm install intlayer react-intlayer @intlayer/react-i18next @intlayer/i18next @intlayer/sync-json-plugin
      
      рдЖрдк react-i18next рдФрд░ i18next рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ тАФ compat рдПрдбреЙрдкреНрдЯрд░ рдЙрдиреНрд╣реЗрдВ TypeScript рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП devDependencies / optional peerDependencies рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХреЛрдИ package.json peers рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
    2. Intlayer рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

      intlayer init рдХрдорд╛рдВрдб рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрд░ intlayer.config.ts рдмрдирд╛рддрд╛ рд╣реИред рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ locales рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ syncJSON рдкреНрд▓рдЧ-рдЗрди рдХреЛ рдЕрдкрдиреА рд╕рдВрджреЗрд╢ рдлрд╛рдЗрд▓реЛрдВ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ:

      intlayer.config.ts
      import { Locales, type IntlayerConfig } from "intlayer";
      import { syncJSON } from "@intlayer/sync-json-plugin";
      
      const config: IntlayerConfig = {
        internationalization: {
          locales: [
            Locales.ENGLISH,
            Locales.FRENCH,
            Locales.SPANISH,
            // рдЕрдкрдиреЗ рд╕рднреА рдореМрдЬреВрджрд╛ locales рдпрд╣рд╛рдВ рдЬреЛрдбрд╝реЗрдВ
          ],
          defaultLocale: Locales.ENGLISH,
        },
        plugins: [
          syncJSON({
            // react-i18next рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ: {{name}}
            format: "i18next",
            source: ({ locale }) => `./src/locales/${locale}.json`,
            location: "src/locales",
          }),
        ],
      };
      
      export default config;
      
      source рдПрдХ locale рдХреЛ рдЗрд╕рдХреА JSON рдлрд╛рдЗрд▓ рдкрде рдкрд░ рдореИрдк рдХрд░рддрд╛ рд╣реИред location Intlayer рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдлреЛрд▓реНрдбрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред format: 'i18next' рд╡рд┐рдХрд▓реНрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ {{name}} рдЬреИрд╕реЗ placeholders рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    3. рдЕрдкрдиреЗ Bundler рдореЗрдВ Intlayer Plugin рдЬреЛрдбрд╝реЗрдВ

      рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ bundler config рдХреЛ compat рдкреНрд▓рдЧ-рдЗрди рд╕реЗ рд▓рдкреЗрдЯреЗрдВред рдпрд╣ core Intlayer рдкреНрд▓рдЧ-рдЗрди рдХреЛ compose рдХрд░рддрд╛ рд╣реИ, content watching рдХреЛ wire рдХрд░рддрд╛ рд╣реИ, рдФрд░ тАФ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ тАФ module рдПрд▓рд┐рдПрд╕ рдХреЛ injects рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЗ рдореМрдЬреВрджрд╛ import тАж from 'react-i18next' (рдФрд░ 'i18next') рдХреЙрд▓ рдХреЛ build рд╕рдордп рдкрд░ transparently @intlayer/react-i18next / @intlayer/i18next рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдХреЛрдИ рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

      Vite рдХреЗ рд▓рд┐рдП:

      vite.config.ts
      import { defineConfig } from "vite";
      import react from "@vitejs/plugin-react";
      import { reactI18nextVitePlugin } from "@intlayer/react-i18next/plugin";
      
      export default defineConfig({
        plugins: [react(), reactI18nextVitePlugin()],
      });
      
      reactI18nextVitePlugin() vite-intlayer рдХреЗ intlayer() рдкреНрд▓рдЧ-рдЗрди рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИ рдФрд░ react-i18next / i18next рдПрд▓рд┐рдПрд╕ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред vite-intlayer рд╕реЗ рд╕рд╛рджреЗ intlayer() рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ dictionaries рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдирд╣реАрдВ рд╡рд╣ рдПрд▓рд┐рдПрд╕ рдЬреЛрдбрд╝рддрд╛ рд╣реИ тАФ рдЖрдк рддрдм imports рдХреЛ @intlayer/* рдкрд░ manually рдирд╛рдо рджреЗрдВ (рдЪрд░рдг 4 рджреЗрдЦреЗрдВ)ред

      Next.js рдХреЗ рд▓рд┐рдП:

      рдЕрдЧрд░ рдЖрдк next-i18next (Pages Router integration) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ @intlayer/next-i18next рдФрд░ next-intlayer рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

      bash
      npm install @intlayer/next-i18next next-intlayer
      

      рдлрд┐рд░ compat рдкреНрд▓рдЧ-рдЗрди рдХреЛ рдЕрдкрдиреЗ next.config.ts рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдпрд╣ next-i18next / react-i18next / i18next рдПрд▓рд┐рдПрд╕ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ):

      next.config.ts
      import type { NextConfig } from "next";
      import { createNextI18nPlugin } from "@intlayer/next-i18next/plugin";
      
      const withIntlayer = createNextI18nPlugin();
      
      const nextConfig: NextConfig = {/* рдЖрдкрдХреЗ рд╡рд┐рдХрд▓реНрдк */};
      
      export default withIntlayer(nextConfig);
      
      рдЖрдкрдХреЛ рдЕрдм i18next.init() рдпрд╛ manual provider bootstrapping рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред Intlayer рд╕рднреА dictionaries рдХреЛ build рд╕рдордп рдкрд░ compile рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ runtime loading рдЪрд░рдг рдирд╣реАрдВ рд╣реИред рдПрд▓рд┐рдПрд╕ рдХрд┐рдП рдЧрдП provider initialization рдХреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИред

    рддреНрд╡рд░рд┐рдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЖрдкрдХрд╛ рдРрдк рдЕрдм Intlayer рдкрд░ рдЪрд▓рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рд╣рд░ react-i18next import рдФрд░ API рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддрд╛ рд╣реИред

    Typed рдЕрдиреБрд╡рд╛рдж рдХреБрдВрдЬрд┐рдпрд╛рдВ тАФ рд╕реНрд╡рдЪрд╛рд▓рд┐рддред рдПрдХ рдмрд╛рд░ Intlayer рдЖрдкрдХреЗ dictionaries рдХреЛ compile рдХрд░ рджреЗрдиреЗ рдХреЗ рдмрд╛рдж, useTranslation рдФрд░ getFixedT рдЖрдкрдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╡рд┐рд░реБрджреНрдз typed рд╣реЛрддреЗ рд╣реИрдВред рдХреБрдВрдЬрд┐рдпрд╛рдВ рдЖрдкрдХреЗ IDE рдореЗрдВ autocompleted рд╣реЛрддреА рд╣реИрдВ рдФрд░ invalid paths build рд╕рдордп рдкрд░ TypeScript рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдкреИрджрд╛ рдХрд░рддреЗ рд╣реИрдВ тАФ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд setup рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

    tsx
    // 'about' рдПрдХ registered dictionary key рд╣реИ тЖТ t() рдХреЗрд╡рд▓ рд╡реИрдз dot-paths рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ
    const { t } = useTranslation("about");
    t("counter.label"); // тЬУ autocompleted
    t("does.not.exist"); // тЬЧ TypeScript error
    
    // Server-side (i18next instance)
    const tAbout = i18n.getFixedT(null, "about");
    tAbout("counter.label"); // тЬУ typed
    

    рдкреВрд░реНрдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди

    рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд░рдг рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ рдФрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдкреВрд░реНрдг Intlayer рдлреАрдЪрд░ рд╕реЗрдЯ рдХреЛ рдЕрдирд▓реЙрдХ рдХрд░рддреЗ рд╣реИрдВ: visual editor, CMS, typed content рдлрд╛рдЗрд▓реЗрдВ, AI-powered рдЕрдиреБрд╡рд╛рдж, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред

    1. рд╕реНрдкрд╖реНрдЯ import рдирд╛рдо рджреЗрдирд╛ (рд╡реИрдХрд▓реНрдкрд┐рдХ)

      рд╡реИрдХрд▓реНрдкрд┐рдХ

      Intlayer рдкреНрд▓рдЧ-рдЗрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА bundler рд╕реНрддрд░ рдкрд░ aliasing рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЕрдЧрд░ рдЖрдк рдЕрдкрдиреА рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк imports рдХреЛ manually рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:

      рдкрд╣рд▓реЗрдмрд╛рдж рдореЗрдВ
      import { useTranslation } from 'react-i18next'import { useTranslation } from '@intlayer/react-i18next'
      import { Trans } from 'react-i18next'import { Trans } from '@intlayer/react-i18next'
      import { withTranslation } from 'react-i18next'import { withTranslation } from '@intlayer/react-i18next'
      import { I18nextProvider } from 'react-i18next'import { I18nextProvider } from '@intlayer/react-i18next'
      import { initReactI18next } from 'react-i18next'import { initReactI18next } from '@intlayer/react-i18next'
      import i18next from 'i18next'import i18next from '@intlayer/i18next'
      import { createInstance } from 'i18next'import { createInstance } from '@intlayer/i18next'
      import { t } from 'i18next'import { t } from '@intlayer/i18next'

      Next.js (next-i18next) рдХреЗ рд▓рд┐рдП:

      рдкрд╣рд▓реЗрдмрд╛рдж рдореЗрдВ
      import { serverSideTranslations } from 'next-i18next/serverSideTranslations'import { serverSideTranslations } from '@intlayer/next-i18next'
      import { appWithTranslation } from 'next-i18next'import { appWithTranslation } from '@intlayer/next-i18next'
      import { useTranslation } from 'next-i18next'import { useTranslation } from '@intlayer/next-i18next'
    2. AI-Powered рдЕрдиреБрд╡рд╛рдж рдСрдЯреЛрдореЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ

      рд╡реИрдХрд▓реНрдкрд┐рдХ

      рдПрдХ рдмрд╛рд░ Intlayer рд╡рд╛рдпрд░реНрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдиреБрдкрд▓рдмреНрдз рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ CLI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

      bash
      # рдЕрдиреБрдкрд▓рдмреНрдз рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг (CI рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ)
      npx intlayer test
      
      # AI рдХреЗ рд╕рд╛рде рдЕрдиреБрдкрд▓рдмреНрдз рдЕрдиреБрд╡рд╛рдж рднрд░реЗрдВ
      npx intlayer fill
      

      intlayer.config.ts рдореЗрдВ AI рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЛрдбрд╝реЗрдВ:

      intlayer.config.ts
      import { Locales, type IntlayerConfig } from "intlayer";
      import { syncJSON } from "@intlayer/sync-json-plugin";
      
      const config: IntlayerConfig = {
        internationalization: {
          locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],
          defaultLocale: Locales.ENGLISH,
        },
        plugins: [
          syncJSON({
            format: "i18next",
            source: ({ locale }) => `./src/locales/${locale}.json`,
            location: "src/locales",
          }),
        ],
        ai: {
          apiKey: process.env.OPENAI_API_KEY,
          // provider: "openai",     // default
          // model: "gpt-4o-mini",   // default
        },
      };
      
      export default config;
      
      рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП Intlayer CLI documentation рджреЗрдЦреЗрдВред

    рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдЖрдк рдХреНрдпрд╛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ

    рдПрдХ рдмрд╛рд░ compat рдПрдбреЙрдкреНрдЯрд░ рдореМрдЬреВрдж рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд react-i18next / i18next boilerplate рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

    рдлрд╛рдЗрд▓ / рдкреИрдЯрд░реНрдирдпрд╣ рдЕрдм рдЖрд╡рд╢реНрдпрдХ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ
    i18next.init() рдХреЙрд▓Intlayer рдХрд╛ provider рд╣рд░ рдЪреАрдЬ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд░рдВрдн рдХрд░рддрд╛ рд╣реИ; рдХреЛрдИ runtime loading рдЪрд░рдг рдирд╣реАрдВ рд╣реИред
    I18nextProvider / initReactI18nextIntlayer рдкреНрд▓рдЧ-рдЗрди рд╣реВрдб рдХреЗ рддрд╣рдд injection рдФрд░ bootstrapping рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИред
    JSON language bundles (locales/*.json)JSON bundles рдХреЗрд╡рд▓ рддрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ рдЬрдм рдЖрдк рдЕрднреА рднреА syncJSON рдкреНрд▓рдЧ-рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдмрд╛рд░ .content.ts рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк JSON рдлреЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред

    рдЬрдм рдЖрдк рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдВ, Intlayer рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдХрд╣реАрдВ рднреА рд╕рднреА .content.ts рдФрд░ .content.json рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЦреЛрдЬрддрд╛ рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, ./src рдХреЗ рдЕрдВрджрд░ рдХрд╣реАрдВ рднреА)ред рдЖрдк рдПрдХ my-component.content.ts рдлрд╛рдЗрд▓ рдХреЛ рдЕрдкрдиреЗ MyComponent.tsx рдХреЗ рдмрдЧрд▓ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ Intlayer рдЗрд╕реЗ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рдЙрдард╛рдПрдЧрд╛ тАФ рдХреЛрдИ imports, рдХреЛрдИ рдкрдВрдЬреАрдХрд░рдг, рдХреЛрдИ рдХреЗрдВрджреНрд░реАрдХреГрдд index рдлрд╛рдЗрд▓ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдкреЗрдЬреЛрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣-рд╕реНрдерд┐рдд рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдШрд░реНрд╖рдг рд░рд╣рд┐рдд рдмрдирд╛рддрд╛ рд╣реИред

    TypeScript рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

    Intlayer module augmentation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЖрдкрдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг TypeScript intellisense рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХрд╛ tsconfig.json auto-generated рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ:

    tsconfig.json
    {
      // ... рдЖрдкрдХреА рдореМрдЬреВрджрд╛ TypeScript рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
      "include": [
        // ... рдЖрдкрдХреА рдореМрдЬреВрджрд╛ TypeScript рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
        ".intlayer/**/*.ts", // auto-generated рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ
      ],
    }
    

    Git рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди

    Intlayer рдХреЗ generated directory рдХреЛ рдЕрдкрдиреЗ .gitignore рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

    .gitignore
    # Intlayer рджреНрд╡рд╛рд░рд╛ рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ
    .intlayer
    

    рдЖрдЧреЗ рдмрдврд╝реЗрдВ

    • Visual Editor тАФ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ translations рдХреЛ visually рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ: Intlayer Visual Editor
    • CMS тАФ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░реЗрдВ: Intlayer CMS
    • VS Code Extension тАФ autocompletion рдФрд░ real-time рдЕрдиреБрд╡рд╛рдж рддреНрд░реБрдЯрд┐ рдкрд╣рдЪрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: Intlayer VS Code Extension
    • CLI Reference тАФ CLI commands рдХреА рдкреВрд░реНрдг рд╕реВрдЪреА: Intlayer CLI
    • Intlayer with React тАФ React рдХреЗ рд▓рд┐рдП full setup guide: intlayerwithvite+react.md
    • Intlayer with Next.js тАФ Next.js рдХреЗ рд▓рд┐рдП full setup guide: intlayerwithnextjs_16.md