Π‘ΠΏΡΠΎΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΄ΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° AI
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ.
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄, ΠΏΠΎΠ΄Π°Π² Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° GitHub.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ GitHubΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Markdown Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
Π£ΡΡΠ°ΡΠ΅Π» Π»ΠΈ 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 ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ, Π° Π½Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
ΠΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π·Π° ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠ΅ 12 ΠΌΠ΅ΡΡΡΠ΅Π²:
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΡΠΎΠ΅ΠΊΡ | ΠΠΎΠΌΠΌΠΈΡΠΎΠ² Π·Π° Π²ΡΠ΅ Π²ΡΠ΅ΠΌΡ | ΠΠ° 12 ΠΌΠ΅ΡΡΡΠ΅Π² | ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ |
|---|---|---|---|
next-i18next | 1 311 | 63 | ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Next.js ΠΈ ΠΏΠ°ΡΡΠΈ |
react-i18next | 1 988 | 157 | Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ |
i18next core | 2 626 | 259 | ΠΠ΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΠ°ΡΡΠΈ |
| Intlayer | 7 156 | 4 343 | ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ IDE ΠΈ Π΄Π²ΠΈΠΆΠΎΠΊ ΠΠ |
- 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.
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΎΠ²Π΅ΡΡ Π΅Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
Π Π°Π·ΠΌΠ΅Ρ Π΄ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΊΡΡΠ°:
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | Gzipped | Minified |
|---|---|---|
next-i18next@16.0.5 | 17.8 ΠΠ | 61.2 ΠΠ |
react-i18next@17.0.2 | 17.3 ΠΠ | 59.8 ΠΠ |
intlayer@8.7.12 | 4.7 ΠΠ | 12.8 ΠΠ |
ΠΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΡΠ΅ΡΠΊΠ° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° React / TanStack Start (ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ):
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | Π‘Ρ. JS / ΡΡΡ. (gz) | Π£ΡΠ΅ΡΠΊΠ° ΡΠ·ΡΠΊΠΎΠ² | Π£ΡΠ΅ΡΠΊΠ° Π΄Ρ. ΡΡΡΠ°Π½ΠΈΡ | Π‘Ρ. ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (gz) | ΠΠΈΠ΄ΡΠ°ΡΠ°ΡΠΈΡ |
|---|---|---|---|---|---|
react-i18next | 180.3 ΠΠ | 50.0% | 89.8% | 24.3 ΠΠ | 85.1 ΠΌΡ |
| Intlayer | 127.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-i18next | 227.5 ΠΠ | 89.8% | 24.5 ΠΠ |
next-intlayer | 152.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" Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π±Π°Π½Π΄Π»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ. ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΎΡΡΠ°ΡΡΡΡ Π² Π±Π°Π½Π΄Π»Π΅.
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Intlayer ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ Π² Hero.tsx ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π»ΠΈΡΠ½ΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
Π±Π°Π½Π΄Π»ΠΎΠ². ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±Π°Π½Π΄Π»Π°.
ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π Π°Π·ΡΠΎΠ·Π½Π΅Π½Π½ΡΠΉ JSON ΠΏΡΠΎΡΠΈΠ² ΠΊΠΎ-Π»ΠΎΠΊΠ°ΡΠΈΠΈ
Π i18next ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΡ JSON Π²Π΄Π°Π»Π΅ΠΊΠ΅ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². Intlayer ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Hero.tsx Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΡΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ.
ΠΠ²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ² ΡΡΡΠΎΠ³ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠΏΠΎΠ²
Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ CustomTypeOptions Π΄Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π² IDE, Π½ΠΎ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° ΠΈΠ· ru/home.json Π½Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΡΠ±ΠΎΡΠΊΡ, Π° Π»ΠΈΡΡ Π²ΡΠ·ΠΎΠ²Π΅Ρ runtime-ΡΠΎΠ»Π»Π±ΡΠΊ.
Intlayer ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠΈΠΏΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, Π° ΡΠ΅ΠΆΠΈΠΌ strictMode ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ Π² ΡΡΡΠΎΠ³ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ±ΠΎΡΠΊΠΈ.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ | ΠΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° i18next | Intlayer |
|---|---|---|
| Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ VS Code | Π’ΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡΠΎΠ½Π½Π΅Π΅ | β ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ |
| Language Server (LSP) | β ΠΠ΅Ρ | β ΠΡΠ΄Π΅Π»Π΅Π½Π½ΡΠΉ LSP |
| MCP Server (Π΄Π»Ρ ΠΠ) | β ΠΠ΅Ρ | β ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ MCP-ΡΠ΅ΡΠ²Π΅Ρ |
| ΠΠ°Π²ΡΠΊΠΈ Π°Π³Π΅Π½ΡΠΎΠ² (Skills) | β ΠΠ΅Ρ | β ΠΠΎΡΠΎΠ²ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ |
| ΠΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ CMS | Locize (ΠΠ»Π°ΡΠ½ΠΎ) | β ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΈ 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). ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ
@intlayer/i18next. - ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ Π°Π»ΠΈΠ°ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΡ (
useTranslation,Trans,t) ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ ΡΡΡΠ»Π°Π»ΠΈΡΡ Π½Π° Intlayer, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΠ°ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΈΠ·package.json. - Π‘ΡΠ°Π·Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° (LSP) Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±Π°Π½Π΄Π»Π° Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ (ΠΏΠΎΠ»Π½ΡΠΉ tree-shaking) ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π½Π°ΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°Ρ :
- Π‘Π»ΠΎΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ: Π‘ΠΎΡ ΡΠ°Π½ΡΠΉΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Ρ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ Π΄Π»Ρ i18next, react-i18next ΠΈ next-i18next.
- ΠΠΈΠ³ΡΠ°ΡΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²: ΠΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠΉΡΠ΅ JSON-ΡΠ°ΠΉΠ»Ρ Π² ΡΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ: Ρ i18next, Ρ react-i18next ΠΈΠ»ΠΈ Ρ next-i18next.
- ΠΠΈΠ±ΡΠΈΠ΄Π½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°: ΠΡΡΠ°Π²ΡΡΠ΅ Π΄Π²ΠΈΠΆΠΎΠΊ i18next Π² ΡΠ°Π±ΠΎΡΠ΅, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ² Intlayer Π΄Π»Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π²Π°Ρ ΡΠ°ΠΉΡ Π½Π° Π²Π΅Ρ ΠΈ ΡΡΠ΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ SEO-ΡΠΊΠ°Π½Π΅ΡΠ° i18n:
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΠΊΠ° Π½Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². ΠΡΠ΄ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌ, ΠΊΡΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ.
