Автор:
    БозданиС:2026-09-02ПослСднСС обновлСниС:2026-09-28

    УстарСл Π»ΠΈ i18next Π² 2026 Π³ΠΎΠ΄Ρƒ?

    i18next появился Π² 2011 Π³ΠΎΠ΄Ρƒ, Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ React, сборка Ρ‡Π΅Ρ€Π΅Π· Webpack ΠΈΠ»ΠΈ TypeScript стали общСпринятым стандартом. Он Π·Π°Π²ΠΎΠ΅Π²Π°Π» экосистСму благодаря гибкости ΠΈ повсСмСстности, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ² ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ ΠΏΠΎΠ΄ любой стСк ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° StackOverflow Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ вопрос.

    ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½, обновлСния ΠΈ ΠΏΠ°Ρ‚Ρ‡ΠΈ выходят рСгулярно. Однако Π΅ΡΡ‚ΡŒ сущСствСнная Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ΠΌ работоспособности старого Π΄Π²ΠΈΠΆΠΊΠ° ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΊ соврСмСнным Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°ΠΌ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π°.

    Π—Π° послСдниС Π³ΠΎΠ΄Ρ‹ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» ΠΊ компиляции Π½Π° этапС сборки, React Server Components (RSC), агрСссивному tree-shaking ΠΈ процСссам Π½Π° Π±Π°Π·Π΅ ИИ. Π―Π΄Ρ€ΠΎ i18next остаСтся Ρ‚Π΅ΠΌ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄: синглтон Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния, ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ строковыС ΠΊΠ»ΡŽΡ‡ΠΈ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

    Π“Π»Π°Π²Π½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹

    Π Π΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ:

    Π—Π° ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠΉ Π³ΠΎΠ΄ next-i18next ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ~63 ΠΊΠΎΠΌΠΌΠΈΡ‚Π° (ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½ Π² нСдСлю), Π° react-i18next ~157, Π² основном для обновлСния зависимостСй ΠΈ ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΏΡ€Π°Π²ΠΎΠΊ.

    ΠžΡ‰ΡƒΡ‚ΠΈΠΌΡ‹ΠΉ runtime-ΠΎΠ²Π΅Ρ€Ρ…Π΅Π΄:

    react-i18next ΠΈ next-i18next Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ~17–18 ΠšΠ‘ gzipped (~60 ΠšΠ‘ minified) Π΅Ρ‰Π΅ Π΄ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ слова, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ Π² 4 Ρ€Π°Π·Π° тяТСлСС next-intlayer (~4.7 ΠšΠ‘).

    Π‘Π΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…:

    ΠŸΡ€ΠΈ стандартных статичСских конфигурациях Π΄ΠΎ 89.8% объСма ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π½Π° страницу, относится ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌ ΠΈΠ»ΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ языкам.

    ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ tree-shaking:

    ДинамичСскиС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ t("home.hero.title") Π½Π΅ ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‚ΡΡ статичСскому Π°Π½Π°Π»ΠΈΠ·Ρƒ Π±Π°Π½Π΄Π»Π΅Ρ€ΠΎΠ², вынуТдая Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹Π΅ JSON-Ρ„Π°ΠΉΠ»Ρ‹ Π² клиСнтский Π±Π°Π½Π΄Π».

    ΠšΠΎΠΌΠΌΠ΅Ρ€Ρ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹:

    Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ Locize. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ бСсплатного локального ИИ-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² CLI Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π»Π° Π±Ρ‹ с ΠΈΡ… основным источником Π΄ΠΎΡ…ΠΎΠ΄Π°.

    ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° vs. активная ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ

    ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π·Π²Π΅Π·Π΄ Π½Π° GitHub ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ, Π° Π½Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

    РСпозиторийЗвСздыВсСго ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²ΠšΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² / годПослСдний ΠΊΠΎΠΌΠΌΠΈΡ‚
    i18next/i18nextstarscommitsyearlylast
    i18next/react-i18nextstarscommitsyearlylast
    i18next/next-i18nextstarscommitsyearlylast
    aymericzip/intlayerstarscommitsyearlylast

    ΠΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π·Π° ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠ΅ 12 мСсяцСв:

    ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠšΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Π·Π° всС врСмяЗа 12 мСсяцСвНаправлСниС
    next-i18next1 31163ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Next.js ΠΈ ΠΏΠ°Ρ‚Ρ‡ΠΈ
    react-i18next1 988157Випизация ΠΈ исправлСния
    i18next core2 626259НСбольшиС ΠΏΠ°Ρ‚Ρ‡ΠΈ
    Intlayer7 1564 343ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€, инструмСнты IDE ΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ ИИ

    Star History Chart

    • i18next/i18next
    • i18next/react-i18next
    • i18next/next-i18next
    • aymericzip/intlayer

    ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π² основной Π²Π΅Ρ‚ΠΊΠ΅, источник: GitHub API.

    ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ, Π½ΠΎ инструмСнты Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ стоят Π½Π° мСстС: сборщики ΡƒΠ΄Π°Π»ΡΡŽΡ‚ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π²ΠΎ врСмя сборки, языковыС ΠΌΠΎΠ΄Π΅Π»ΠΈ пСрСводят прямо Π² CI, Π° срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Language Server (LSP) ΠΈ ИИ-Π°Π³Π΅Π½Ρ‚ΠΎΠ². ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Π°Ρ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° i18next затрудняСт Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ этих ΠΈΠ½Π½ΠΎΠ²Π°Ρ†ΠΈΠΉ.

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΎΡ‚ΠΊΡƒΠ΄Π° взялись эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ i18n Π² JavaScript.

    Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ npm

    • i18next
    • react-i18next
    • next-i18next
    • intlayer

    Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: API Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ рССстра npm.

    Число Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ Π²ΠΎΠ·Π½Π°Π³Ρ€Π°ΠΆΠ΄Π°Π΅Ρ‚ самыС старыС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠ΅. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΡƒΡŽ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄, Π΄ΠΎ сих ΠΏΠΎΡ€ устанавливаСт ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π±Ρ€Π°Π» Π΅Ρ‘ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ запуск CI ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ зависящий ΠΎΡ‚ Π½Π΅Ρ‘ ΠΏΠ°ΠΊΠ΅Ρ‚. Π­Ρ‚Π° Ρ†ΠΈΡ„Ρ€Π° измСряСт ΠΈΠ½Π΅Ρ€Ρ†ΠΈΡŽ, Π° Π½Π΅ осознанный Π²Ρ‹Π±ΠΎΡ€.

    ИИ-ассистСнты ΡƒΡΠΈΠ»ΠΈΠ²Π°ΡŽΡ‚ этот эффСкт. next-intl, i18next ΠΈ vue-i18n ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄Π΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΡƒΡ‡Π°Π»ΠΈΡΡŒ, поэтому ассистСнты ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΈΡ… ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½Π΅ сравнивая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹. КаТдая подсказка добавляСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΏΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ. Π‘Ρ€Π°Π²Π½ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΏΠΎ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΡƒ, Π° Π½Π΅ ΠΏΠΎ числу Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ.

    ΠžΡ†Π΅Π½ΠΊΠ° влияния Π½Π° Π±Π°Π½Π΄Π»

    ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ°

    ДинамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° JSON

    ЛСнивая Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² Π²ΠΎ врСмя выполнСния

    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ JSON (пространства ΠΈΠΌΠ΅Π½)

    ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницы

    Π§Ρ‚ΠΎ это Π·Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°?

    ΠžΠ±Ρ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ gzip. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ извлСчСния ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° послС tree-shaking ΠΈ ΠΌΠΈΠ½ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ?

    МСньший Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ сниТаСт Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ JavaScript, Ρ‡Ρ‚ΠΎ ускоряСт Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅.

    Π’ΠΈΠ΄

    Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ Π² production-сборкС Π½Π° 10 ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°Ρ… ΠΈ 10 языках со сТатиСм gzip. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΡΡ‚ΠΈ Π² ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ ΠΎ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠ΅ i18n.

    Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΎΠ²Π΅Ρ€Ρ…Π΅Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

    Π Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎ добавлСния ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ тСкста:

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°GzippedMinified
    next-i18next@16.0.517.8 ΠšΠ‘61.2 ΠšΠ‘
    react-i18next@17.0.217.3 ΠšΠ‘59.8 ΠšΠ‘
    intlayer@8.7.124.7 ΠšΠ‘12.8 ΠšΠ‘

    ВСс страницы ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°

    ВСстированиС Π½Π° React / TanStack Start (статичСская стратСгия):

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Π‘Ρ€. JS / стр. (gz)Π£Ρ‚Π΅Ρ‡ΠΊΠ° языковУтСчка Π΄Ρ€. страницБр. ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (gz)Гидратация
    react-i18next180.3 ΠšΠ‘50.0%89.8%24.3 ΠšΠ‘85.1 мс
    Intlayer127.8 ΠšΠ‘50.0%0.8%7.1 ΠšΠ‘24.1 мс
    Intlayer (scoped dyn)118.1 ΠšΠ‘0.0%0.8%4.6 ΠšΠ‘23.7 мс

    Π’ Next.js:

    Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Π‘Ρ€. JS / стр. (gz)Π£Ρ‚Π΅Ρ‡ΠΊΠ° Π΄Ρ€. страницБр. ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (gz)
    Π‘Π°Π·Π° (Π±Π΅Π· i18n)150.8 ΠšΠ‘0.0%0.7 ΠšΠ‘
    next-i18next227.5 ΠšΠ‘89.8%24.5 ΠšΠ‘
    next-intlayer152.1 ΠšΠ‘0.0%7.2 ΠšΠ‘

    ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

    ВСс страниц:

    Π’ Next.js next-i18next добавляСт 76.7 ΠšΠ‘ gzipped ΠΊ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ (+50%). next-intlayer добавляСт лишь 1.3 ΠšΠ‘.

    Π£Ρ‚Π΅Ρ‡ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ²:

    По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΡ‡Ρ‚ΠΈ 90% тСкста, отправляСмого Π½Π° страницу, относится ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌ. Π ΡƒΡ‡Π½ΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° нСймспСйсы слоТно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ошибок.

    Π“Ρ€Π°Ρ„ΠΈΠΊ Π½ΠΈΠΆΠ΅ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±ΡŠΡ‘ΠΌ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° для тСорСтичСского прилоТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ 1 Π΄ΠΎ 10 страниц ΠΈ ΠΎΡ‚ 1 Π΄ΠΎ 10 языков, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΠΎ 30 ΠšΠ‘ тСкста Π½Π° страницу. ДинамичСская Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΠΈ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ ось языков, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠΌ ΡƒΠ±ΠΈΡ€Π°Π΅Ρ‚ ось страниц, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ… сочСтаниС сохраняСт ΠΎΠ±ΡŠΡ‘ΠΌ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ.

    ВСорСтичСская ΡƒΡ‚Π΅Ρ‡ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° ΠΏΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅

    Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° Π³ΠΈΠ΄Ρ€Π°Ρ‚Π°Ρ†ΠΈΠΈ:

    ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ с react-i18next Π³ΠΈΠ΄Ρ€Π°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ 85 мс ΠΏΡ€ΠΎΡ‚ΠΈΠ² 24 мс Ρƒ Intlayer. ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹Ρ… структур JSON ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ замСдляСт взаимодСйствиС.

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ i18next тяТСлый?

    НакоплСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² runtime

    Π Π°Π±ΠΎΡ‚Π° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ всСх ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² сразу: интСрполяции, ΠΏΡ€Π°Π²ΠΈΠ» мноТСствСнного числа, контСкстов, форматирования ΠΈ ΡˆΠΈΠ½Ρ‹ событий. Π”Π°ΠΆΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ строки ΠΎΠΏΠ»Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π΄Π²ΠΈΠΆΠΎΠΊ.

    ДинамичСскиС ΠΊΠ»ΡŽΡ‡ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ tree-shaking

    Π’Π°ΠΊ ΠΊΠ°ΠΊ "hero.title" вычисляСтся динамичСски Π²ΠΎ врСмя выполнСния, Π±Π°Π½Π΄Π»Π΅Ρ€Ρ‹ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡŽΡ‡ΠΈ задСйствованы. ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ строки Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² Π±Π°Π½Π΄Π»Π΅.

    Component.tsx
    const { t } = useTranslation("home");
    
    return <h1>{t("hero.title")}</h1>;
    
    Hero.tsx
    const { title } = useIntlayer("hero");
    
    return <h1>{title}</h1>;
    

    ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ Intlayer провСряСт Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ использованиС ΠΏΠΎΠ»Π΅ΠΉ Π² Hero.tsx ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ лишниС Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎ создания клиСнтских Π±Π°Π½Π΄Π»ΠΎΠ². ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ оптимизация Π±Π°Π½Π΄Π»Π°.

    ΠžΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

    Π Π°Π·Ρ€ΠΎΠ·Π½Π΅Π½Π½Ρ‹ΠΉ JSON ΠΏΡ€ΠΎΡ‚ΠΈΠ² ΠΊΠΎ-Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ

    Π’ i18next ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… дирСкториях JSON Π²Π΄Π°Π»Π΅ΠΊΠ΅ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Intlayer Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π° рядом с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ:

    locales/en/hero.json
    {
      "title": "Ship in every language"
    }
    
    locales/ru/hero.json
    {
      "title": "ЗапускайтС Π½Π° любом языкС"
    }
    
    Hero.tsx
    import { useTranslation } from "react-i18next";
    
    export const Hero = () => {
      const { t } = useTranslation("hero");
      return <h1>{t("title")}</h1>;
    };
    
    hero.content.ts
    import { t, type Dictionary } from "intlayer";
    
    export default {
      key: "hero",
      content: {
        title: t({
          en: "Ship in every language",
          ru: "ЗапускайтС Π½Π° любом языкС",
        }),
      },
    } satisfies Dictionary;
    
    Hero.tsx
    import { useIntlayer } from "react-intlayer";
    
    export const Hero = () => {
      const { title } = useIntlayer("hero");
      return <h1>{title}</h1>;
    };
    

    ΠŸΡ€ΠΈ пСрСносС ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ Hero.tsx Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ вмСстС с Π½ΠΈΠΌ.

    АвтодополнСниС ΠΏΡ€ΠΎΡ‚ΠΈΠ² строгой бСзопасности Ρ‚ΠΈΠΏΠΎΠ²

    Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ CustomTypeOptions Π΄Π°Π΅Ρ‚ подсказки Π² IDE, Π½ΠΎ Π½Π΅ провСряСт Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ· ru/home.json Π½Π΅ остановит сборку, Π° лишь Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ runtime-фоллбэк.

    Intlayer создаСт Ρ‚ΠΈΠΏΡ‹ Π½Π° основС объявлСний ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π° Ρ€Π΅ΠΆΠΈΠΌ strictMode ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π² строгиС ошибки сборки.

    Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ экосистСмы

    Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΠ­ΠΊΠΎΡΠΈΡΡ‚Π΅ΠΌΠ° i18nextIntlayer
    Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ VS CodeВолько ΡΡ‚ΠΎΡ€ΠΎΠ½Π½Π΅Π΅βœ… ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅
    Language Server (LSP)❌ ΠΠ΅Ρ‚βœ… Π’Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ LSP
    MCP Server (для ИИ)❌ ΠΠ΅Ρ‚βœ… ВстроСнный MCP-сСрвСр
    Навыки Π°Π³Π΅Π½Ρ‚ΠΎΠ² (Skills)❌ ΠΠ΅Ρ‚βœ… Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ
    Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ CMSLocize (ΠŸΠ»Π°Ρ‚Π½ΠΎ)βœ… БСсплатно ΠΈ Open Source

    МодСль ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Locize

    Locize являСтся коммСрчСским сСрвисом ΠΎΡ‚ создатСлСй i18next. Π£ΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Π°ΠΆΠ½Π°, Π½ΠΎ такая модСль создаСт ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Ρ†Π΅Π»Π΅ΠΉ: сСрвис, Π·Π°Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ², Π½Π΅ заинтСрСсован Π²ΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ бСсплатного локального ИИ-ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° прямо Π² CLI.

    Intlayer ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

    • intlayer fill дополняСт Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‹ Π² консоли ΠΈΠ»ΠΈ CI с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Π°ΡˆΠΈΡ… собствСнных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ OpenAI, Anthropic, Mistral ΠΈΠ»ΠΈ Gemini.
    • Intlayer CMS ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ исходный ΠΊΠΎΠ΄ ΠΈ запускаСтся локально Ρ‡Π΅Ρ€Π΅Π· Docker Compose.
    • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€, CLI, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ CMS Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.

    Когда i18next ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½?

    Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Π°Π½Π΄Π»Π° Π½Π΅ являСтся ΡƒΠ·ΠΊΠΈΠΌ мСстом, срочной нСобходимости Π² пСрСписывании Π½Π΅Ρ‚.

    ΠžΠ±ΡˆΠΈΡ€Π½Π°Ρ коллСкция ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² i18next ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Electron, старый стСк Π½Π° jQuery, кастомныС Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ мосты), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соврСмСнныС компиляторы Ρ€Π΅Π΄ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ.

    ΠœΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½ΠΈΠΉ Π°Ρ€Ρ…ΠΈΠ² вопросов Π½Π° StackOverflow ΠΈ GitHub ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π΅Π΄ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

    Как ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ i18next?

    Intlayer ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ совмСстимости, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ сигнатуры Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ i18next (i18next, react-i18next ΠΈ next-i18next). Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСимущСства соврСмСнной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π½Π° Π±Π°Π·Π΅ компилятора.

    Настройка выполняСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

    bash
    npx intlayer init --interactive
    

    Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки:

    1. УстанавливаСт ΠΏΠ°ΠΊΠ΅Ρ‚ совмСстимости @intlayer/i18next.
    2. НастраиваСт алиасы сборщика, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ (useTranslation, Trans, t) ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ ΡΡΡ‹Π»Π°Π»ΠΈΡΡŒ Π½Π° Intlayer, позволяя ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ€ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ· package.json.
    3. Π‘Ρ€Π°Π·Ρƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ языкового сСрвСра (LSP) Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Π±Π°Π½Π΄Π»Π° Π½Π° этапС сборки (ΠΏΠΎΠ»Π½Ρ‹ΠΉ tree-shaking) ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ИИ.

    ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ инструкции ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π½Π°ΡˆΠΈΡ… руководствах:

    • Π‘Π»ΠΎΠΈ совмСстимости: БохраняйтС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ синтаксис с Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°ΠΌΠΈ для i18next, react-i18next ΠΈ next-i18next.
    • ΠœΠΈΠ³Ρ€Π°Ρ†ΠΈΡ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²: ΠšΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ JSON-Ρ„Π°ΠΉΠ»Ρ‹ Π² строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ словари: с i18next, с react-i18next ΠΈΠ»ΠΈ с next-i18next.
    • Гибридная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°: ΠžΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΄Π²ΠΈΠΆΠΎΠΊ i18next Π² Ρ€Π°Π±ΠΎΡ‚Π΅, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ² Intlayer для Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ автоматичСского ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

    ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ваш сайт Π½Π° вСс ΠΈ ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ бСсплатного SEO-сканСра i18n:

    Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹

    ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

    Пока Π½Π΅Ρ‚ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ, ΠΊΡ‚ΠΎ подСлится своими мыслями.

    ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ сообщСния

    ПослСдниС сообщСния