рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рдкреВрдЫреЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдЖрдкрдХреЗ рдЪреБрдиреЗ рд╣реБрдП AI рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рд╕рдВрд╕реНрдХрд░рдг рдЗрддрд┐рд╣рд╛рд╕
- "рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЗрддрд┐рд╣рд╛рд╕"v9.0.05/6/2026
рдЗрд╕ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ AI рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреА рдЧрдИ рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВрдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ GitHub рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП GitHub рд▓рд┐рдВрдХрджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ Markdown рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
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 рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдкреВрд░рдХ рд░рдгрдиреАрддрд┐рдпрд╛рдВ рд╣реИрдВ:
Compat рдПрдбреЙрдкреНрдЯрд░ (рдореМрдЬреВрджрд╛ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд) тАФ
@intlayer/react-i18next(React рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП) рдФрд░/рдпрд╛@intlayer/i18next(corei18ninstance рдХреЗ рд▓рд┐рдП) рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдпреЗ рдкреИрдХреЗрдЬreact-i18next/i18nextрдХреЗ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдорд╛рди API рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рднреА рдЕрдиреБрд╡рд╛рдж рдХрд╛рд░реНрдп рдХреЛ рд╣реВрдб рдХреЗ рддрд╣рдд Intlayer рдХреЛ рд╕реМрдВрдкрддреЗ рд╣реИрдВред рдЖрдк рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛useTranslation,Trans,withTranslation,i18next.t()рдХреЙрд▓ рд░рдЦрддреЗ рд╣реИрдВ тАФ рдПрдХрдорд╛рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди import рдкрде рд╣реИредрдкреВрд░реНрдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди тАФ рдзреАрд░реЗ-рдзреАрд░реЗ
react-i18nextAPI рдХреЛ native Intlayer hooks (useIntlayer,IntlayerProvider) рдФрд░ рд╕рд╣-рд╕реНрдерд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде.content.tsрдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмрджрд▓реЗрдВред
рдпрд╣ рдЧрд╛рдЗрдб рд░рдгрдиреАрддрд┐ 1 рдХреЛ рдкрд╣рд▓реЗ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ (drop-in compat рдПрдбреЙрдкреНрдЯрд░), рдлрд┐рд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреВрд░реНрдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рддрд╛ рд╣реИред
рд╡рд┐рд╖рдп рд╕реВрдЪреА
рддреНрд╡рд░рд┐рдд рдорд╛рдЗрдЧреНрд░реЗрд╢рди
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд░рдг рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ react-i18next рдРрдк рдХреЛ рдмрд┐рдирд╛ рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ Intlayer рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдиреНрдпреВрдирддрдо рд╣реИрдВред
рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
Intlayer рдореБрдЦреНрдп рдкреИрдХреЗрдЬ рдФрд░ compat рдПрдбреЙрдкреНрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
bashрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
--interactiveрдлреНрд▓реИрдЧ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред рдЕрдЧрд░ рдЖрдк рдПрдХ AI рдПрдЬреЗрдВрдЯ рд╣реИрдВ рддреЛintlayer-cli initрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрдпрд╣ рдХрдорд╛рдВрдб рдЖрдкрдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
bashрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЖрдк
react-i18nextрдФрд░i18nextрдХреЛ рд╕реНрдерд╛рдкрд┐рдд рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ тАФ compat рдПрдбреЙрдкреНрдЯрд░ рдЙрдиреНрд╣реЗрдВ TypeScript рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдПdevDependencies/ optionalpeerDependenciesрдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ рдХреЛрдИpackage.jsonpeers рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред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 рдлрд╛рдЗрд▓ рдкрде рдкрд░ рдореИрдк рдХрд░рддрд╛ рд╣реИредlocationIntlayer рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ рдлреЛрд▓реНрдбрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПредformat: 'i18next'рд╡рд┐рдХрд▓реНрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐{{name}}рдЬреИрд╕реЗ placeholders рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдЕрдкрдиреЗ 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рдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдлрд┐рд░ 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рдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдкреВрд░реНрдг рдорд╛рдЗрдЧреНрд░реЗрд╢рди
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд░рдг рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ рдФрд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдкреВрд░реНрдг Intlayer рдлреАрдЪрд░ рд╕реЗрдЯ рдХреЛ рдЕрдирд▓реЙрдХ рдХрд░рддреЗ рд╣реИрдВ: visual editor, CMS, typed content рдлрд╛рдЗрд▓реЗрдВ, AI-powered рдЕрдиреБрд╡рд╛рдж, рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рд╕реНрдкрд╖реНрдЯ 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'AI-Powered рдЕрдиреБрд╡рд╛рдж рдСрдЯреЛрдореЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рд╡реИрдХрд▓реНрдкрд┐рдХрдПрдХ рдмрд╛рд░ Intlayer рд╡рд╛рдпрд░реНрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдиреБрдкрд▓рдмреНрдз рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ CLI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
bashрдХреЛрдб рдХреЙрдкреА рдХрд░реЗрдВрдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
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 / initReactI18next | Intlayer рдкреНрд▓рдЧ-рдЗрди рд╣реВрдб рдХреЗ рддрд╣рдд 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 рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Git рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
Intlayer рдХреЗ generated directory рдХреЛ рдЕрдкрдиреЗ .gitignore рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдЖрдЧреЗ рдмрдврд╝реЗрдВ
- 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
