Π‘ΠΏΡΠΎΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΄ΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° AI
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ.
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄, ΠΏΠΎΠ΄Π°Π² Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° GitHub.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ GitHubΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Markdown Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΡΡΠΎΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² JavaScript (i18n)
ΠΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ Π²Π΅Π±Π° ΠΈ JavaScript. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊΠΎΠ², Π²Π°Π»ΡΡΡ, ΡΠΎΡΠΌΠ°ΡΡ Π΄Π°Ρ ΠΈ ΡΠ΅Π³ΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΡ. Π Π°Π½Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ GEM ΠΈ Mac OS, ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΅ΡΠ°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ Π·Π°Π΄Π°Ρ Π΅ΡΠ΅ Π² 1980-Ρ Π³ΠΎΠ΄Π°Ρ .
Π’Π΅ ΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ»ΠΈ Π² Π±ΡΠΊΠ΅Π½Π΄-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ. Ruby on Rails, Django, ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Java ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° PHP ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°Π·ΠΎΠ²ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π±ΡΠ»ΠΈ ΠΏΠΎΠ½ΡΡΠ½Ρ:
- ΠΠ΄Π΅ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ²?
- ΠΠ°ΠΊ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°ΡΡ, ΡΠΈΡΠ»Π° ΠΈ Π²Π°Π»ΡΡΡ?
- ΠΠ°ΠΊ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎΡΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠΈΡ?
- ΠΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠ·ΡΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ?
ΠΠΎΠΊΠ° ΡΠ΅ΡΠ²Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π» HTML-ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ, ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΡΠ°Π²Π°Π»ΡΡ ΠΏΡΡΠΌΠΎΠ»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌ. Π‘Π΅ΡΠ²Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π» Π½ΡΠΆΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π» ΡΠ°Π·ΠΌΠ΅ΡΠΊΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ» Π΅Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΡ.
PHP ΠΈ GNU gettext ΡΡΠ°Π»ΠΈ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ-Ρ
Π΅Π»ΠΏΠ΅ΡΠ° t(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·ΠΆΠ΅ ΡΡΠ°Π»Π° ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π² JavaScript ΠΈ JSX.
ΠΠ°ΡΠ΅ΠΌ JavaScript Π½Π°ΡΠ°Π» Π°ΠΊΡΠΈΠ²Π½ΠΎ Π·Π°Ρ Π²Π°ΡΡΠ²Π°ΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ.
Π‘ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΊ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Single-Page Applications (SPA) ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ°Π»Π° Π·Π°Π΄Π°ΡΠ΅ΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ. ΠΡΠ°ΡΠ·Π΅ΡΡ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ, ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ·ΡΠΊΠΈ, ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΎΡΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ:
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΡΠΌ, Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ³ΡΠΎΠΌΠ½ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ Π΄Π°Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΈ ΡΡΠΆΠ΅Π»ΡΠΉ ΡΠ°Π½ΡΠ°ΠΉΠΌ-ΠΊΠΎΠ΄?
ΠΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ» ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ JavaScript i18n Π½Π° ΠΏΡΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΡΠΎΡΠ° Π΄Π΅ΡΡΡΠΈΠ»Π΅ΡΠΈΠΉ.
ΠΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΡΠ°Π΄ΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ: ΠΎΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² t('key') Π΄ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ, ΡΠΊΡΡΡΠ°ΠΊΡΠΈΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΏΠΎΠ² Π² TypeScript, Server Components, tree-shaking ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ½ΡΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΠΈΡ
ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ JavaScript-ΠΊΠΎΠ΄ Π΅ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ²ΠΎΠ»ΡΡΠΈΡ Ρ 2011 ΠΏΠΎ 2026 Π³ΠΎΠ΄: Π·Π°Π΄Π°ΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΈΡ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° Π½Π° ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ i18n ΡΠ΅Π³ΠΎΠ΄Π½Ρ.

Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Π Π°Π½Π½ΠΈΠΉ Π²Π΅Π±: ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ JavaScript Π΄ΠΎ 2016 Π³ΠΎΠ΄Π°
Π§ΡΠΎΠ±Ρ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ i18n, Π²Π°ΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ 2011-2015 Π³ΠΎΠ΄ΠΎΠ².
ΠΠ΅ΡΠ΅Π½ΠΎΡ Π»ΠΎΠ³ΠΈΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°
Π Π½Π°ΡΠ°Π»Π΅ 2010-Ρ Π³ΠΎΠ΄ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΡΠ°Π²Π°Π»Π°ΡΡ ΠΏΡΠ΅ΡΠΎΠ³Π°ΡΠΈΠ²ΠΎΠΉ ΡΠ΅ΡΠ²Π΅ΡΠ°. JavaScript ΡΠ»ΡΠΆΠΈΠ» Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠ»ΠΎΠ΅ΠΌ Π΄Π»Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΉ, Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ ΡΠΎΡΠΌ ΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π½Π° jQuery.
Π‘ ΡΠΎΡΡΠΎΠΌ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ SPA Π½Π° Π±Π°Π·Π΅ Backbone.js, Knockout.js ΠΈ ΡΠ°Π½Π½Π΅Π³ΠΎ AngularJS Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° ΠΏΠ΅ΡΠ΅ΡΠ»Π° Π² Π±ΡΠ°ΡΠ·Π΅Ρ. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°Π»ΡΡΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°ΡΡ, ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈ ΠΌΠ΅Π½ΡΡΡ ΡΠ΅ΠΊΡΡ Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡ.
ΠΠ΄Π½Π°ΠΊΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° 2011 Π³ΠΎΠ΄Π° Π½Π΅ ΠΈΠΌΠ΅Π»Π° Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄ΡΡΠ²:
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ECMAScript Internationalization API (ECMA-402) Π±ΡΠ»Π° ΡΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² Π΄Π΅ΠΊΠ°Π±ΡΠ΅ 2012 Π³ΠΎΠ΄Π° Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Intl. ΠΠΎ Π΅Π΅ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π΄Π°ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΡ
ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΡΡΠΆΠ΅Π»ΡΡ
ΠΏΠΎΠ»ΠΈΡΠΈΠ»ΠΎΠ².
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²ΡΠΎΠ΄Π΅ Webpack ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΎΠΆΠ΄Π°Π»ΠΈΡΡ, Π° Π½Π°ΡΠΈΠ²Π½ΡΡ
ES-ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ. Π‘ΠΊΡΠΈΠΏΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π»ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈ <script>, Π° ΡΠ»ΠΎΠ²Π°ΡΠΈ ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π»ΠΈΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²ΡΠΎΠ΄Π΅ window.translations = { ... }.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ Π² ΠΌΠ°ΡΡΠΈΠ²Π½ΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ JSON-ΡΠ°ΠΉΠ»Π°Ρ . ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π’ΠΎΠΊΠΈΠΎ, ΠΎΡΠΊΡΡΠ²Π°Ρ Π³Π»Π°Π²Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π·Π°Π³ΡΡΠΆΠ°Π» ΡΠ΅ΠΊΡΡΡ Π΄Π»Ρ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°ΡΡΡΠΎΠ΅ΠΊ, Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ².
ΠΠ΅ΡΠ²Π°Ρ Π²ΠΎΠ»Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
Π ΠΏΠ΅ΡΠΈΠΎΠ΄ Ρ 2012 ΠΏΠΎ 2015 Π³ΠΎΠ΄ Π±ΡΠ» Π·Π°Π»ΠΎΠΆΠ΅Π½ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ i18n:
Π‘ΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π―Π½ΠΎΠΌ ΠΡΠ»Π΅ΠΌΠ°Π½ΠΎΠΌ (Jan MΓΌhlemann), Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° i18next ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»Π° ΡΡΠ°Π½Π΄Π°ΡΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅. ΠΠ½Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ, ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π΄Π΅ΡΠ΅ΠΊΡΠΈΠΈ ΡΠ·ΡΠΊΠ° ΠΈ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠ². ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΡΠ°Π»Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ³ΠΎ JS ΠΈ ΡΠ°Π½Π½Π΅Π³ΠΎ Node.js.
Π‘ΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΠΠ°Π΄Π·ΡΠ΅ΠΉ ΠΠ°Π²Π°Π³ΡΡΠΈ (Kazupon), vue-i18n Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π»Π° ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Vue.js, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ² ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ (v-t) ΠΈ ΡΡΠ½ΠΊΡΠΈΡ $t().
Π‘ΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π² Yahoo! Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΏΡΠΎΠ΅ΠΊΡΠ° FormatJS, react-intl ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ»Π° ΡΡΠ°Π½Π΄Π°ΡΡ ICU MessageFormat ΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ½ΡΠ΅ API Intl Π² React ΡΠ΅ΡΠ΅Π· Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (<FormattedMessage>, <FormattedDate>).
Π―Π½ ΠΡΠ»Π΅ΠΌΠ°Π½ Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π» i18next Π΄Π»Ρ Π±ΡΡΡΡΠΎΡΠ°ΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° React Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Higher-Order Components (withTranslation) ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ·ΡΠΊΠ°.
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΏΠΎΡ ΠΈ Π΄ΠΎ 2016 Π³ΠΎΠ΄Π°
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠ½ΡΠ΅ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ:
ΠΡΠ·ΠΎΠ²Ρ Π²ΡΠΎΠ΄Π΅ t('marketing.landing.hero.cta') Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΈΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ. ΠΠΏΠ΅ΡΠ°ΡΠΊΠ° Π² ΠΊΠ»ΡΡΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π»Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ²ΠΎΠ΄Ρ ΠΊ ΠΏΡΡΡΡΠΌ Π±Π»ΠΎΠΊΠ°ΠΌ ΠΈΠ»ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΡΡΡΡ
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ².
ΠΠ°ΡΡΠΈΠ½Π³ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ICU ΠΈ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΈ Π½Π°Π³ΡΡΠΆΠ°Π»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠ΅.
ΠΠ΅Π· ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΠΌΠ°ΡΡΡΡΡΠ°ΠΌ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ°Π»ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, Π·Π°ΠΌΠ΅Π΄Π»ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ.
Π€Π°ΠΉΠ»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΠΎ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π·Π°Π±ΡΡΡΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°ΠΌ.
ΠΠΏΠΎΡ Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ²: ΡΠ²ΠΎΠ»ΡΡΠΈΡ ΠΏΠΎ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ
Π ΠΏΠ΅ΡΠΈΠΎΠ΄ Ρ 2016 ΠΏΠΎ 2026 Π³ΠΎΠ΄ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π° ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ. TypeScript ΡΡΠ°Π» ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΠΊΡΠ΅ΠΏΠ»Π°, ΡΠ±ΠΎΡΡΠΈΠΊΠΈ Webpack, Vite ΠΈ Turbopack ΠΏΡΠΈΠ½Π΅ΡΠ»ΠΈ Π³ΡΠ°Π½ΡΠ»ΡΡΠ½ΡΠΉ code splitting, React Server Components Π²Π΅ΡΠ½ΡΠ»ΠΈ ΡΠ°ΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ, Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π½Π°ΡΠ°Π»ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΏΡΡΠΌΡΡ.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ
Π½ΠΈΠΆΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΠ°Ρ
ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΡΠ°Π·Π²ΠΈΠ²Π°Π»Π°ΡΡ i18n Π² ΡΠ°Π·Π½ΡΡ
ΡΡΠ΅Π΄Π°Ρ
. Π ΡΡΠΈΡ
ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ°Ρ
react-intlayer ΠΈ Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈ (next-intlayer, vue-intlayer, angular-intlayer, svelte-intlayer ΠΈ solid-intlayer) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· | ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° | ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΡ |
|---|---|---|---|
| Π―Π½Π²Π°ΡΡ 2012 | i18next | Π‘ΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅ Π΄Π»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈ Node.js Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΡ. | ΠΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, ΠΎΡΠ΄Π΅Π»ΡΡΡΠ°Ρ ΡΠ΄ΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΎΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠ², Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠΎΠ² ΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. |
| Π€Π΅Π²ΡΠ°Π»Ρ 2021 | typesafe-i18n | ΠΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠ°Π½ΡΠ°ΠΉΠΌΠ° ΠΈ ΡΠ»ΠΎΠΌΠ°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΈ ΠΈΠ·-Π·Π° Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ. | ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π΅Π· Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅. |
| ΠΠΊΡΡΠ±ΡΡ 2023 | paraglide (@inlang/paraglide-js) | ΠΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠ»ΠΎΠ²Π°ΡΡΠΌ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅, ΡΡΠΆΠ΅Π»ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ°Π·Π΄ΡΠ²Π°Π½ΠΈΡ Π±Π°Π½Π΄Π»Π°. | ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π»Π΅Π³ΠΊΠΎΠ²Π΅ΡΠ½ΡΠ΅ ECMAScript-ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈ ΡΠΈΡΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ tree-shaking. |
| ΠΠΏΡΠ΅Π»Ρ 2024 | intlayer | ΠΠ°ΠΌΠ΅Π½Π° Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½, ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΡΠ΅ΠΊ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ, ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² ΡΠ»ΠΈΡΠ½ΠΈΡ Π² git ΠΈ ΡΡΡΠΎΠ³Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π² TypeScript. | Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² .content ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² TypeScript, Π²ΡΡΡΠΎΠ΅Π½Π½Π°Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ CMS ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· CLI Ρ ΠΠ. |
| ΠΡΠ½Ρ 2025 | wuchale | Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ Π²ΡΠ½Π΅ΡΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊ ΠΈ ΠΏΡΠΈΠ΄ΡΠΌΡΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. | ΠΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ AST, Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Π² ΠΊΠΎΠ΄Π΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠΈΠΉ Π΅Π³ΠΎ Π² Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· ΠΎΠ±Π΅ΡΡΠΎΠΊ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ. |
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· | ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° | ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΡ |
|---|---|---|---|
| ΠΡΠ½Ρ 2014 | react-intl | Π‘ΡΠ°Π½Π΄Π°ΡΡΠΈΠ·Π°ΡΠΈΡ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠ΅Π», Π΄Π°Ρ, Π²Π°Π»ΡΡ ΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΎΡΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² React. | ΠΠ΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ (<FormattedMessage>, <FormattedDate>) Π½Π° Π±Π°Π·Π΅ ICU MessageFormat ΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ° ECMA-402. |
| ΠΠ΅ΠΊΠ°Π±ΡΡ 2015 | react-i18next | ΠΠ΄ΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ i18next Π² React Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. | Π Π°Π·Π²ΠΈΡΠΈΠ΅ Π²ΠΌΠ΅ΡΡΠ΅ Ρ React: ΠΎΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΈ JSX ΡΠ΅ΡΠ΅Π· <Trans> ΠΈ Ρ
ΡΠΊΡ useTranslation. |
| Π―Π½Π²Π°ΡΡ 2018 | @lingui/react | Π£ΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±Π°Π½Π΄Π»Π° Π·Π° ΡΡΠ΅Ρ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΆΠ΅Π»ΡΡ ICU-ΠΏΠ°ΡΡΠ΅ΡΠΎΠ² Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. | ΠΠ°ΠΊΡΠΎΡΡ Babel/SWC, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠΈΠ΅ <Trans> ΠΈ t Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ. |
| ΠΠ΅ΠΊΠ°Π±ΡΡ 2020 | use-intl | ΠΠ΅Π³ΠΊΠΎΠ²Π΅ΡΠ½Π°Ρ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π½Π° Ρ ΡΠΊΠΈ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ ΠΏΠΎ ΡΠΈΠΏΠ°ΠΌ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΡΡΠ°ΡΡΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌ Π΄Π»Ρ React. | ΠΡΠ³ΠΎΠ½ΠΎΠΌΠΈΡΠ½ΡΠ΅ Ρ
ΡΠΊΠΈ useTranslations ΠΈ useFormatter Ρ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Π² TypeScript. |
| Π€Π΅Π²ΡΠ°Π»Ρ 2021 | @tolgee/react | Π£ΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΊΠ»Π° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ. | Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΏΡΡΠΌΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎ Alt-ΠΊΠ»ΠΈΠΊΡ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ². |
| ΠΠΏΡΠ΅Π»Ρ 2024 | react-intlayer | ΠΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° React Π±Π΅Π· ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΡΡ JSON ΠΈ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½. | Π₯ΡΠΊ useIntlayer ΠΏΠΎΠ΄ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ React, Π°Π²ΡΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² TypeScript, tree-shaking Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΠΏΡΡΠΌΠ°Ρ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ CMS. |
| ΠΡΠ»Ρ 2024 | gt-react | ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠΊΡΠΏΠΎΡΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ². | ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π±Π°Π·Π΅ ΠΠ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ React ΡΠ΅ΡΠ΅Π· ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ. |
| ΠΠ²Π³ΡΡΡ 2025 | @wuchale/jsx | ΠΡΠΊΠ°Π· ΠΎΡ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΡ Ρ ΡΠΊΠΎΠ² ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ JSX. | AST-ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΠ°Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ·Π»Ρ JSX ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠ°Ρ ΠΈΡ Π² Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΡ. |
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· | ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° | ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΡ |
|---|---|---|---|
| ΠΠΎΡΠ±ΡΡ 2018 | next-i18next | ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SSR ΠΈ SSG Ρ i18next Π² Pages Router Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅. | Π€ΡΠ½ΠΊΡΠΈΠΈ serverSideTranslations ΠΈ appWithTranslation, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΏΡΡ ΡΡΡΠ°Π½ΠΈΡ. |
| ΠΠ΅ΠΊΠ°Π±ΡΡ 2019 | next-translate | Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ° Π±Π°Π½Π΄Π»Π° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Next.js Pages Router. | ΠΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ Webpack-Π»ΠΎΠ°Π΄Π΅ΡΠ°, Π²Π½Π΅Π΄ΡΡΡΡΠΈΠΉ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°. |
| ΠΠΎΡΠ±ΡΡ 2020 | next-intl | ΠΠ΄Π°ΠΏΡΠ°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ App Router, React Server Components (RSC) ΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΠΉ SSR. | ΠΠ°ΡΠΈΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ middleware Next.js App Router, Server Actions ΠΈ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΌΠΈ Server Components Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ JS. |
| ΠΡΠ»Ρ 2022 | next-international | ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ TypeScript ΠΏΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ Π²Π»ΠΈΡΠ½ΠΈΠΈ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ Π±Π°Π½Π΄Π» Π² Next.js. | Π‘ΡΡΠΎΠ³Π°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΌΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄ App Router ΠΈ Pages Router. |
| ΠΠΏΡΠ΅Π»Ρ 2024 | paraglide-next (@inlang/paraglide-next) | Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π±Π΅Π· ΡΠ°Π½ΡΠ°ΠΉΠΌΠ° Π΄Π»Ρ Next.js App Router ΠΈ Pages Router. | ΠΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ Π½Π° middleware Π² ΠΏΠ°ΡΠ΅ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠΌΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³ JSON Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅ RSC ΠΈ Π±Π°Π½Π΄Π»Π°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. |
| ΠΠΏΡΠ΅Π»Ρ 2024 | next-intlayer | Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ t() ΠΈΠ»ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΏΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ. | ΠΡΠ·ΠΎΠ² useIntlayer Π² ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΡ
Server Components Π±Π΅Π· prop-drilling, ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π±Π΅Π· ΠΊΠ°ΡΠΊΠ°Π΄Π½ΡΡ
Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ, Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ middleware ΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ CMS. |
| Π‘Π΅Π½ΡΡΠ±ΡΡ 2024 | gt-next | ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π² Next.js Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ. | ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ App Router, ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π² ΠΎΠ±Π»Π°ΠΊΠ΅, middleware Π½Π° edge ΠΈ ΡΠ»ΠΎΠΈ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Next.js. |
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· | ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° | ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΡ |
|---|---|---|---|
| ΠΠ°ΠΉ 2014 | vue-i18n | Π Π΅Π°ΠΊΡΠΈΠ²Π½Π°Ρ ΠΈ ΡΠ΄ΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Vue.js. | ΠΠ»ΡΠ±ΠΎΠΊΠ°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ Vue, Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² (v-t), Ρ
Π΅Π»ΠΏΠ΅ΡΡ $t ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ <i18n> Π² ΠΎΠ΄Π½ΠΎΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
(SFC). |
| ΠΠΎΡΠ±ΡΡ 2017 | @nuxt/i18n | Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ URL, ΡΠ΅Π³Π°ΠΌΠΈ SEO hreflang ΠΈ Π³ΠΈΠ΄ΡΠ°ΡΠ°ΡΠΈΠ΅ΠΉ SSR Π² Nuxt. | ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠΉ ΠΏΡΡΠΈ (ΠΏΡΠ΅ΡΠΈΠΊΡΡ, Π΄ΠΎΠΌΠ΅Π½Ρ), ΠΌΠ΅ΡΠ°-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π»Π΅Π½ΠΈΠ²ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ². |
| ΠΠ²Π³ΡΡΡ 2019 | fluent-vue | ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ΄Π°, ΠΏΠ°Π΄Π΅ΠΆΠ΅ΠΉ ΠΈ Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π²ΠΎ Vue. | ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Project Fluent ΠΎΡ Mozilla, ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠ°Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠ΅ ΡΡΠ»ΠΎΠ²Π½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΡΠ°Π±Π»ΠΎΠ½Π°Ρ . |
| ΠΠΏΡΠ΅Π»Ρ 2025 | vue-intlayer | Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π΅ Intlayer Π΄Π»Ρ Composition API Π²ΠΎ Vue 3 ΠΈ Nuxt Π±Π΅Π· Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. | ΠΠΎΠΌΠΏΠΎΠ·Π°Π±Π» useIntlayer Ρ ΡΡΠ΅ΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Vue 3, ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΠΎΠ»Π½ΠΎΠ΅ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ TypeScript ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ CMS. |
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· | ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° | ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΡ |
|---|---|---|---|
| Π€Π΅Π²ΡΠ°Π»Ρ 2017 | ngx-translate | ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π² Angular Π±Π΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΠΊ ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·ΡΠΊ. | Π‘Π΅ΡΠ²ΠΈΡ TranslateService ΠΈ ΠΏΠ°ΠΉΠΏ translate Π΄Π»Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² Π½Π° Π»Π΅ΡΡ. |
| ΠΡΠ»Ρ 2019 | @ngneat/transloco | Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ Π² Angular. | Π‘ΡΡΡΠΊΡΡΡΠ½Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° (*transloco), ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ Π΄Π»Ρ Π»Π΅Π½ΠΈΠ²ΡΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SSR ΠΈ CLI Π΄Π»Ρ ΡΠΊΡΡΡΠ°ΠΊΡΠΈΠΈ. |
| Π‘Π΅Π½ΡΡΠ±ΡΡ 2019 | @angular/localize | ΠΠΎΠ΄Π΅ΡΠ½ΠΈΠ·Π°ΡΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ i18n-ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Angular Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ TypeScript ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·ΡΠΊ. | Π’Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠ΅ Π»ΠΈΡΠ΅ΡΠ°Π»Ρ Ρ $localize, Π²Π½Π΅Π΄ΡΡΠ΅ΠΌΡΠ΅ ΠΊΠ°ΠΊ Π±ΡΡΡΡΡΠΉ ΡΠ°Π³ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ Π² ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ΅ Ivy. |
| Π€Π΅Π²ΡΠ°Π»Ρ 2021 | @tolgee/ngx | Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ² Π² ΡΠ°Π±ΠΎΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ Angular. | ΠΠ°ΠΉΠΏΡ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Ρ ΠΏΡΡΠΌΡΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ Tolgee Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΠΏΡΡΠΌΠΎ Π² ΠΎΠΊΠ½Π΅ Π±ΡΠ°ΡΠ·Π΅ΡΠ°. |
| ΠΠΏΡΠ΅Π»Ρ 2025 | angular-intlayer | ΠΠ°ΡΠΈΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Intlayer Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Angular (Signals, standalone-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈ SSR). | Π Π΅Π°ΠΊΡΠΈΠ²Π½Π°Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π° Π±Π°Π·Π΅ Signals, ΡΡΠΈΡΡΠ²Π°ΡΡΠ°Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Change Detection, ΡΠ°Π±ΠΎΡΠ° ΡΠΎ standalone-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠΉ CMS. |
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· | ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° | ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΡ |
|---|---|---|---|
| ΠΡΠ»Ρ 2018 | svelte-i18n | Π Π΅Π°ΠΊΡΠΈΠ²Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° Π±Π°Π·Π΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡ (stores) Svelte. | Π€ΡΠ½ΠΊΡΠΈΡ $t, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½Π°Ρ ΠΊ store, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ°Ρ ΡΠΎΡΠ΅ΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ DOM ΠΏΡΠΈ ΡΠΌΠ΅Π½Π΅ ΡΠ·ΡΠΊΠ°. |
| ΠΠ΅ΠΊΠ°Π±ΡΡ 2021 | sveltekit-i18n | ΠΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° SSR ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΌΠ°ΡΡΡΡΡΠ°ΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ SvelteKit. | ΠΠΎΠ΄ΡΠ»ΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ°, Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΠ°Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠΎΡΠΌΠ°ΡΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΌΠ°ΡΡΡΡΡΡ. |
| ΠΠΎΡΠ±ΡΡ 2021 | @tolgee/svelte | ΠΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Svelte. | ΠΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌ Svelte Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Π² ΠΎΠ²Π΅ΡΠ»Π΅ΠΉ Tolgee ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΡΠΊΡΠΈΠ½ΡΠΎΡΠΎΠ². |
| ΠΠΏΡΠ΅Π»Ρ 2025 | svelte-intlayer | ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Intlayer, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Svelte 5 ΠΈ SvelteKit. | Π Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π»Ρ ΡΡΠ½ Svelte 5 ($state), ΡΠ°ΠΉΠ»Ρ .content Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΡΠ±ΠΎΡΠΊΠΈ Π±Π΅Π· ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ. |
| ΠΡΠ»Ρ 2025 | @wuchale/svelte | Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠΉΠ»Π΅ΡΠΏΠ»Π΅ΠΉΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΈ ΠΈΠΌΠΏΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ $t Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°Ρ
Svelte. | ΠΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Svelte, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΠ·Π»Ρ Π² Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π±Π΅Π· Π»ΠΈΡΠ½ΠΈΡ ΠΎΠ±Π΅ΡΡΠΎΠΊ. |
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅Π»ΠΈΠ· | ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | ΠΠ»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° | ΠΠ»ΡΡΠ΅Π²Π°Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΡ |
|---|---|---|---|
| Π‘Π΅Π½ΡΡΠ±ΡΡ 2021 | @solid-primitives/i18n | ΠΠ΄ΠΈΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΡΠΈΠΌΠΈΡΠΈΠ² i18n, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π³ΡΠ°Π½ΡΠ»ΡΡΠ½ΠΎΠΉ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ SolidJS. | Π Π΅Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ΅Π·ΠΎΠ»Π²Π΅Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² Π½Π° ΡΠΈΠ³Π½Π°Π»Π°Ρ , ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΠΈΠΉ ΡΠ·Π»Ρ DOM Π±Π΅Π· Virtual DOM ΠΈ Π»ΠΈΡΠ½ΠΈΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΎΠ². |
| ΠΠΏΡΠ΅Π»Ρ 2025 | solid-intlayer | ΠΠ°ΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Intlayer Π΄Π»Ρ SolidJS ΠΈ SolidStart. | ΠΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ Solid Π±Π΅Π· Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Virtual DOM, ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡ Π΅ΠΌ TypeScript ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ. |
| ΠΡΠ½Ρ 2026 | @lingui/solid | ΠΠΊΡΡΡΠ°ΠΊΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΌΠ°ΠΊΡΠΎΡΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ICU MessageFormat Π² SolidJS. | ΠΠ°ΠΊΡΠΎΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΊ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ Solid ΠΈ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. |
Π§Π΅ΡΡΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΡΠΏΠΎΡ ΠΈ JavaScript i18n

ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΡΡ ΠΏΡΡΠ½Π°Π΄ΡΠ°ΡΡ Π»Π΅Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ, ΠΈΡΡΠΎΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² JavaScript ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π½Π° ΡΠ΅ΡΡΡΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΡΠ°ΠΏΠ°:
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° i18next, react-intl ΠΈ vue-i18n. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π·Π°Π³ΡΡΠΆΠ°Π»ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ JSON-ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Π² ΠΏΠ°ΠΌΡΡΡ, Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅ ΠΈΡΠΊΠ°Π»ΠΈ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΊΠ»ΡΡΠΈ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ
. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈΡΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΡΡ
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΠΏΠ°ΡΡΠ΅ΡΠΎΠ² ICU.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° lingui, next-translate, transloco ΠΈ typesafe-i18n. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ ΠΏΠ°ΡΡΠΈΠ½Π³Π° Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅ ΠΈ Ρ
ΡΡΠΏΠΊΠΎΡΡΡ Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΡΡΠΎΠΊ. Babel-ΠΌΠ°ΠΊΡΠΎΡΡ Π½Π°ΡΠ°Π»ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΡΡΠ°Π·Ρ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅, ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΡΠ±ΠΎΡΡΠΈΠΊΠΎΠ² Π½Π°ΡΠ΅Π·Π°Π»ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ, Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ TypeScript ΡΡΠ°Π» ΠΏΡΠΎΠ²Π΅ΡΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ².
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ next-intl, next-international ΠΈ ΡΠ°Π½Π½ΠΈΠΌΠΈ Π°Π΄Π°ΠΏΡΠ΅ΡΠ°ΠΌΠΈ Π΄Π»Ρ RSC. Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ React Server Components ΠΈ Next.js App Router ΡΠΎΠΊΡΡ ΡΠΌΠ΅ΡΡΠΈΠ»ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π»ΠΈΡΠ½ΠΈΡ
ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ ΠΈΠ»ΠΈ ΡΡΠΆΠ΅Π»ΡΡ
i18n-Π΄Π²ΠΈΠΆΠΊΠΎΠ² Π½Π° ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° paraglide, intlayer ΠΈ wuchale. Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ i18n ΠΊΠ°ΠΊ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ, Π° Π½Π΅ ΠΏΡΠΎΡΡΡΡ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΠΎΠΊ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ tree-shaking, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Ρ
ΡΠ°Π½ΡΡΡΡ ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, Π° Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ ΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ Ρ ΠΠ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Intlayer ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² ΠΎΡ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ (react-intlayer, next-intlayer, vue-intlayer, angular-intlayer, svelte-intlayer ΠΈ solid-intlayer) ΠΏΠΎΠ΄ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: Π±Π°Π»Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΠΌ ΠΠ
Π‘ΠΏΡΡΡΡ ΠΏΡΡΠ½Π°Π΄ΡΠ°ΡΡ Π»Π΅Ρ ΠΈ ΡΠ΅ΡΡΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ»Π½Ρ Π³Π»Π°Π²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° JavaScript i18n ΠΎΡΡΠ°Π»Π°ΡΡ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎΠΉ: ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² (DX) ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π΄Π»Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π’ΠΎ, ΡΡΠΎ Π½Π°ΡΠΈΠ½Π°Π»ΠΎΡΡ Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ Π½Π΅ΠΏΠΎΠ²ΠΎΡΠΎΡΠ»ΠΈΠ²ΡΡ JSON-ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΠ»ΠΎΡΡ Π² ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΡΡΡΠΎΠ³ΡΡ Π°Π²ΡΠΎΠ³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² TypeScript, ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Π±Π΅Π· Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π±Π΅Π· Π»ΠΈΡΠ½Π΅Π³ΠΎ ΡΠ°Π½ΡΠ°ΠΉΠΌΠ°.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΠ ΠΈ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΠ°ΠΆΠ½ΡΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π»Π΅Ρ ΡΡΠ°Π»Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°ΠΌΠΈ (TMS).
ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ² Π² Π΅Π΄ΠΈΠ½ΡΠ΅ JSON-ΡΠ°ΠΉΠ»Ρ Π±ΡΠ»ΠΎ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠΌ Π΄Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ TMS. ΠΠ΄ΠΈΠ½ ΡΠ°ΠΉΠ» Π±ΡΠ»ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΈ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΠΈΠΊΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΡΠΎ ΡΡΠΎΠΈΠ»ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π² git, ΠΏΠΎΡΠ΅ΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΠ΅Π½ Π·Π°Π±ΡΡΡΡ ΡΡΡΠΎΠΊ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΌΡ ΠΠ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² ΡΠΎΠΊΡΡ Π²Π΅ΡΠ½ΡΠ»ΡΡ Π½Π° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ CLI ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ, Π²Π°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ, ΡΠΎΡ ΡΠ°Π½ΡΡ ΡΠΈΡΡΠΎΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ.
Π’ΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΡΡΠΈ Π»Π΅Ρ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π»ΠΈ ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π²ΠΎΠΊΡΡΠ³ ΡΡΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
- Π‘Π΅ΡΠ²ΠΈΡΡ Π²ΡΠΎΠ΄Π΅ Locize (ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ
i18next) ΠΈ Crowdin (ΠΏΠ°ΡΡΠ½Π΅Ρ ΡΡΠ΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ) ΡΡΡΠΎΠΈΠ»ΠΈ Π±ΠΈΠ·Π½Π΅Ρ Π½Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ², ΡΠ°ΡΠΈΡΠ½ΡΡ ΠΏΠ»Π°Π½Π°Ρ ΠΈ ΠΎΠΏΠ»Π°ΡΠ΅ Π·Π° ΡΠΈΡΠ»ΠΎ ΡΠ»ΠΎΠ². - ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΠΎΠ±ΡΠ΅ΠΌΡ ΠΈ ΡΡΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ, Ρ Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠΈΠΌΡΠ»ΠΎΠ² Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΡΡΠΌΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
ΠΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΠ ΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π°Ρ ΡΡΠΎΠΈΠΌΠΎΡΡΡ API
ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ·ΡΠΊΠΎΠ²ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ½ΠΈΠ·ΠΈΠ»ΠΈ ΡΡΠΎΠΈΠΌΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π΄ΠΎ Π΄ΠΎΠ»Π΅ΠΉ ΡΠ΅Π½ΡΠ° ΠΏΡΠΈ Π²ΡΡΠΎΠΊΠΎΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅, ΡΡΠ½ΠΎΠΊ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌΠΈ:
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π²ΡΠΎΠ΄Π΅ Paraglide Ρ linguo.dev ΠΈΠ»ΠΈ General Translation (
gt-react,gt-next) ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΠΎΠ±Π»Π°ΡΠ½ΡΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ ΠΈ ΠΏΠ»Π°ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ. - Intlayer, Π½Π°ΠΏΡΠΎΡΠΈΠ², ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· ΠΠ ΠΏΡΡΠΌΠΎ Π² ΡΠ²ΠΎΠ΅ΠΉ CLI, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ API-ΠΊΠ»ΡΡΠΈ (OpenAI, Anthropic, Mistral ΠΈΠ»ΠΈ Google Gemini). ΠΠ΄Π΅ΡΡ Π½Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π½Π°ΡΠ΅Π½ΠΎΠΊ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊΠΎΠ²: ΡΠ°Π±ΠΎΡΠ° ΠΈΠ΄Π΅Ρ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠ°ΡΠΈΡΠ°ΠΌ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°.
ΠΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ i18n: ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π²Π½ΠΎ Π²ΡΡΠ»Π° Π·Π° ΡΠ°ΠΌΠΊΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΡ
ΡΠ»ΠΎΠ² Π²ΡΠΎΠ΄Π΅ "ΠΡΠΏΡΠ°Π²ΠΈΡΡ" ΠΈΠ»ΠΈ "ΠΠΎΠΉΡΠΈ". ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ, Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΡΠΉ ΠΈ ΡΠ²ΡΠ·Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π½Π° Π²ΡΠ΅Ρ
ΡΡΠ°ΠΏΠ°Ρ
ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΡΠΈ.
Intlayer ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π²ΡΡ ΠΎΠ΄ΡΡΠΈΠΉ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΡΡΡΠΎΠΊ ΠΏΠΎ ΠΊΠ»ΡΡΠ°ΠΌ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ Markdown, HTML-ΡΡΡΡΠΊΡΡΡ, Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΡ Π΅ΠΌ Π΄Π°Π½Π½ΡΡ ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΎΠ½ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΊΠΎΠ΄Π°, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΠ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠΎΠΌ.
ΠΠ»Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ² ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°ΠΌΠΈ:
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΠΊΠ° Π½Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². ΠΡΠ΄ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌ, ΠΊΡΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ.
