Π‘ΠΏΡΠΎΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΄ΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° AI
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ.
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄, ΠΏΠΎΠ΄Π°Π² Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° GitHub.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ GitHubΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Markdown Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
Intlayer Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ Paraglide?
ΠΠ°.
Π£ Paraglide ΡΠ»ΠΎΠΆΠΈΠ»Π°ΡΡ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΡΠ΅ΠΏΡΡΠ°ΡΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ Π»Π΅Π³ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ i18n, ΠΈ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ Π±Π΅Π½ΡΠΌΠ°ΡΠΊ Ρ ΡΡΠΈΠΌ ΡΠΎΠ³Π»Π°ΡΠ΅Π½: ΡΠ°Π·ΠΌΠ΅Ρ Π΅Π³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ Π½ΡΠ»Ρ. ΠΠ΄Π½Π°ΠΊΠΎ Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΠΎΠ²ΡΠ΅ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½ΡΠ»Π΅Π²ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΡ
Π±Π°ΠΉΡΠΎΠ². ΠΡΠΎ Π»ΠΈΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π±Π°ΠΉΡΡ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ ΡΠ°ΠΌ, ΠΊΡΠ΄Π° ΡΡΠ° ΠΌΠ΅ΡΡΠΈΠΊΠ° Π½Π΅ Π·Π°Π³Π»ΡΠ΄ΡΠ²Π°Π΅Ρ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ
Π Π°Π·ΠΌΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΊΡΡΡ, Π° Π½Π΅ ΡΡΡΡΠ°Π½Π΅Π½:
Paraglide Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ°Π½ΡΠ°ΠΉΠΌ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² Π²Π°ΡΡ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·Ρ. ΠΡΠΎΡ ΠΊΠΎΠ΄ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π±ΡΠ°ΡΠ·Π΅Ρ, Π½ΠΎ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π²Π°Ρ ΠΊΠΎΠ΄, Π° Π½Π΅ ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° - ΡΡΠΎ Π½Π΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π²ΡΠΈΠ³ΡΡΡ:
ΠΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² m.my_key() ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»Ρ, ΡΡΠΈΡΡΠ²Π°Ρ cookie ΠΈΠ»ΠΈ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π°, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π΅Π΅ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°.
ΠΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ:
Paraglide ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ Π±Π°Π½Π΄Π». Intlayer Ρ importMode: 'dynamic' ΠΈΠ»ΠΈ 'fetch' Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡ Π»ΠΎΠΊΠ°Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ.
Tree shaking Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½:
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΡΠΈΡ ΡΠ΅ΡΡΠ°Ρ Π·Π°ΡΠ²Π»Π΅Π½Π½ΡΠΉ Paraglide tree shaking Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π». ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π±Π°Π½Π΄Π».
ΠΡΠ΄Π° ΡΡ ΠΎΠ΄ΠΈΡ Π²Π΅Ρ Paraglide?
Π ΠΎΡΡΠ΅ΡΠ°Ρ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ² ΠΌΠ΅ΡΡΠΈΠΊΠ° Β«ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈΒ» ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΠΈ Ρ ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ i18n Π² ΠΏΡΡΡΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ΅, Π΄ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° (TanStack Start) | Π Π°Π·ΠΌΠ΅Ρ Π»ΠΈΠ±Ρ (gz) | Π Π°Π·ΠΌΠ΅Ρ Π»ΠΈΠ±Ρ (min) |
|---|---|---|
@inlang/paraglide-js@2.15.1 | 1.8 KB | 4.5 KB |
react-intlayer@9.5.1 | 5.0 KB | 15.2 KB |
Π ΠΎΡΡΡΠ²Π΅ ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Paraglide Π²ΡΠΈΠ³ΡΡΠ²Π°Π΅Ρ. ΠΠΎ Paraglide - ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ: ΠΎΠ½ ΡΠΈΡΠ°Π΅Ρ Π²Π°ΡΠΈ ΡΠ°ΠΉΠ»Ρ messages/*.json ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΏΠ°ΠΏΠΊΡ paraglide/ Π² Π²Π°Ρ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ. ΠΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ runtime.js (ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ, ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ cookie ΠΈ storage, Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ URL) ΠΈ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ JavaScript-ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ src/ ΠΈ Π²Ρ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΡΡΠΈ, ΡΠ±ΠΎΡΡΠΈΠΊ ΠΏΡΠΈΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΅Π³ΠΎ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠ· node_modules. ΠΠΎΠ»ΠΎΠ½ΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Ρ
ΠΎΡΡ ΡΠ° ΠΆΠ΅ ΡΠ°ΠΌΠ°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² Π±Π°Π½Π΄Π»Π΅ Π²Π°ΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° ΡΠ°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ΠΏΠ»ΠΎΡ
Π°: ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°Π½ΡΠ°ΠΉΠΌ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½ΡΠΆΠ½Π° Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ (ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠΎΠ², cookie ΠΈΠ»ΠΈ local storage ΠΈ Ρ. Π΄.). Intlayer Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° ΠΈΠ½Π°ΡΠ΅, Π²Π½Π΅Π΄ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ΅ΠΌΡ Π±Π°Π½Π΄Π»Π΅Ρ ΡΠ΄Π°Π»ΡΠ΅Ρ Π²Π΅ΡΠ²ΠΈ ΠΊΠΎΠ΄Π°, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠ±Π° ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π° ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² 3β10 ΡΠ°Π· Π»Π΅Π³ΡΠ΅, ΡΠ΅ΠΌ i18next ΠΈΠ»ΠΈ next-intl.
ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅ΡΡΠ½ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ - ΡΡΠΎ Π½Π΅ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΎ JavaScript, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
ΠΠ·ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΉ Π²Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ TanStack Start, 10 ΡΡΡΠ°Π½ΠΈΡ, ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΌΠ°ΡΡΡΡΡΠ°Ρ
en ΠΈ fr, ΡΠΆΠ°ΡΠΈΠ΅ gzip:
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ | Π‘ΡΠ΅Π΄Π½ΠΈΠΉ JS ΡΡΡ (gz) | ΠΡΡΠ΅ Π±Π°Π·Ρ | Π£ΡΠ΅ΡΠΊΠ° Π»ΠΎΠΊΠ°Π»ΠΈ | Π£ΡΠ΅ΡΠΊΠ° Π΄ΡΡΠ³ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ |
|---|---|---|---|---|
| ΠΠ°Π·ΠΎΠ²Π°Ρ (Π±Π΅Π· i18n) | 111.0 KB | - | 0.0% | 0.0% |
paraglide (Π»ΡΠ±Π°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ) | 125.1 KB | +14.1 KB | 49.7% | 0.0% |
intlayer (importMode: static) | 125.8 KB | +14.8 KB | 50.0% | 0.0% |
intlayer (importMode: dynamic) | 118.6 KB | +7.6 KB | 0.0% | 0.0% |
Next.js 16 App Router, ΡΠΎ ΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅:
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ | Π‘ΡΠ΅Π΄Π½ΠΈΠΉ JS ΡΡΡ (gz) | ΠΡΡΠ΅ Π±Π°Π·Ρ |
|---|---|---|
| ΠΠ°Π·ΠΎΠ²Π°Ρ (Π±Π΅Π· i18n) | 141.0 KB | - |
paraglide-next | 155.3 KB | +14.3 KB |
next-intlayer | 141.3 KB | +0.3 KB |
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° JSON
ΠΠ΅Π½ΠΈΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ JSON (ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½)
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
ΠΠ΅Π½ΡΠΌΠ°ΡΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ I18n
Π§ΡΠΎ ΡΡΠΎ Π·Π° ΠΌΠ΅ΡΡΠΈΠΊΠ°?
ΠΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ gzip. ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅ tree-shaking ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ?
ΠΠ΅Π½ΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ JavaScript, ΡΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅.
ΠΠΈΠ΄
ΠΠΎΠ»Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΠΎΡΡΠ΅ΡΠ΅ ΠΎ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ΅ TanStack Start ΠΈ Π² ΠΎΡΡΠ΅ΡΠ΅ ΠΎ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ΅ Next.js. ΠΠ°ΠΆΠ΄ΡΠΉ Π±Π°Π½Π΄Π» ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°.
ΠΠ²Π° ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π±ΡΠΎΡΠ°ΡΡΡΡ Π² Π³Π»Π°Π·Π°:
- Π ΡΠ΅ΠΆΠΈΠΌΠ΅
staticIntlayer ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ , ΡΡΠΎ ΠΈ Paraglide (125.8 KB ΠΏΡΠΎΡΠΈΠ² 125.1 KB). ΠΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎ: ΠΎΠ±Π° Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ. - Paraglide ΠΎΡΡΠ°Π΅ΡΡΡ Π½Π° ΡΡΠΎΠ²Π½Π΅ 125.1 KB ΠΏΡΠΈ Π»ΡΠ±ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² Π½Π΅ΠΌ Π½Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°. ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π²ΡΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Provider: ΠΈΠ΄Π΅Ρ, ΠΊΠ°ΠΆΡΡΠ°ΡΡΡ Ρ ΠΎΡΠΎΡΠ΅ΠΉ Π»ΠΈΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄
Π£ Paraglide Π½Π΅Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°. ΠΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ Π΅Π³ΠΎ:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π½ΠΈ ΠΎΠ±Π΅ΡΡΠΊΠΈ, Π½ΠΈ Ρ ΡΠΊΠ°. ΠΡΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΏΡΠΎΡΠ΅. ΠΠΎ Π»ΠΎΠΊΠ°Π»Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠΊΡΠ΄Π°-ΡΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ. ΠΠ°ΠΆΠ΄Π°Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΠΊ (ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎ):
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
Π getLocale() ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΌ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠΌ (cookie, local storage, URL, Π±Π°Π·ΠΎΠ²Π°Ρ Π»ΠΎΠΊΠ°Π»Ρ), ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ Π»ΠΎΠΊΠ°Π»Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ·Π΅Π» (<>{m.my_key()}</>) Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠ΅Π½ΠΈΠ΅ document.cookie Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅. Π‘ΡΡΠ°Π½ΠΈΡΠ° Ρ 200 ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π½ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ Π»ΠΎΠΊΠ°Π»Ρ 200 ΡΠ°Π· Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π½Π΄Π΅Ρ, ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Π΄Π΅ΡΠ΅.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠΌ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π»ΠΎΠΊΠ°Π»Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·, ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ Π΅Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ (ΠΈΠ»ΠΈ ΡΠΈΠ³Π½Π°Π»Π΅, ΠΈΠ»ΠΈ ΡΡΠΎΡΠ΅), ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΡΠΈΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅Π΅ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ Π²Π΅ΡΠΈΡ Π²ΡΠ΅Π³ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΡΠ΅Π½ Π±Π°ΠΉΡ. ΠΡΠΊΠ°Π· ΠΎΡ Π½Π΅Π³ΠΎ Π½Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅Π½Π΄Π΅ΡΠ΅, ΡΡΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ΅: Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ ΡΠΌΠ΅Π½Ρ ΡΠ·ΡΠΊΠ° Ρ Paraglide ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎ ΡΡΡΡΠΏΠ°ΡΡ Intlayer Π½Π° TanStack Start (22.1 ΠΌΡ ΠΏΡΠΎΡΠΈΠ² 14.6 ΠΌΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, 4.3 ΠΌΡ ΠΏΡΠΎΡΠΈΠ² 3.2 ΠΌΡ ΠΏΡΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ E2E).
Π£Π΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (DX)
ΠΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΈΡΡΠΈΠ½Ρ Π΄Π»Ρ Paraglide ΡΠ²Π»ΡΠ΅ΡΡΡ JSON, Π½ΠΎ Π²Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ°ΠΌ JSON. ΠΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» .js:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
Π’Π°ΠΊΠΎΠΉ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ Π²Π»Π΅ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΠΈΠ·Π΄Π΅ΡΠΆΠΊΠΈ:
- ΠΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ°ΠΉΠ»Π΅ JSON ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΡΡΡ ΡΠΈΠΏΡ.
- Π‘Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΠΏΠΊΡ
paraglide/ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΌΠΈΡΠΈΡΡ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ (ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ ΡΠ»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ PR Ρ ΠΏΡΠ°Π²ΠΊΠ°ΠΌΠΈ ΡΠ΅ΠΊΡΡΠ°), Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π² ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ (ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°Π³Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΎΠ², ΡΠ΅ΡΡΠΎΠΌ ΠΈ Π·Π°Π΄Π°ΡΠ΅ΠΉ CI). - ΠΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ½ΡΡΠ°Π½ΡΡ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ
m.key()Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²Π΅Π·Π΄Π΅, Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΏΠΎΠ΄ΠΎΡΠ»ΠΎ Π±Ρ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Tree Shaking: ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ²ΠΎΠΉ Π±Π°Π½Π΄Π»
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠ°Π½ΠΈΠ΅ Paraglide Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ tree shaking, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠΊΡΠΏΠΎΡΡΠΎΠΌ. Π Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ΅ Svelte + Vite ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Π·Π°ΡΠ²Π»Π΅Π½ΠΎ.
Π Π΄ΡΡΠ³ΠΈΡ
ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ
ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ. Π Π½Π°ΡΠ΅ΠΌ ΡΠ΅ΡΡΠ΅ Π½Π° Next.js ΡΡΡΠ°Π½ΠΈΡΡ Paraglide Π²Π΅ΡΡΡ Π½Π° 14 KB Π±ΠΎΠ»ΡΡΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ next-intlayer Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π»ΠΈΡΡ 0.3 KB. ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΠ΅ΡΡΡ Π½Π° TanStack Start ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΡ
ΡΡΡΠ°Π½ΠΈΡ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ Π² Π±Π°Π½Π΄Π» ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΡΡΡΠ°.
Tree shaking Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠ° (Turbopack, Rolldown, Rollup), ΡΠΏΠΎΡΠΎΠ±Π° ΠΈΠΌΠΏΠΎΡΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ (import { m } ΠΏΡΠΎΡΠΈΠ² import * as m) ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ°ΠΉΠ΄-ΡΡΡΠ΅ΠΊΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΠ΅ Paraglide ΠΈΠ·-Π·Π° ΡΠ°Π·ΠΌΠ΅ΡΠ°, ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π±Π°Π½Π΄Π»Π° ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π²Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ
ΠΡΠΎ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. Π Paraglide Π½Π΅Ρ ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ Π·Π° ΡΠ°Π·: ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ Π±Π°Π½Π΄Π».
ΠΡΠΈ 2 ΡΠ·ΡΠΊΠ°Ρ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΠ°ΡΠΈΡΡΡ Π²ΠΏΡΡΡΡΡ, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅ΡΠΊΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΎΠΊΠΎΠ»ΠΎ ~50%, ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅. ΠΡΠΈ 10 ΡΠ·ΡΠΊΠ°Ρ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½Ρ 90% ΠΎΠ±ΡΠ΅ΠΌΠ°. ΠΡΠΈ 30 ΡΠ·ΡΠΊΠ°Ρ - 97%.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΡΠ΅ΡΠΈΠ» Π±Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π»Π΅Π½ΠΈΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π»Π° Π±Ρ ΠΊ ΡΡΡΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π²ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ².
Intlayer ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
importMode | Π§ΡΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ | vs. Paraglide |
|---|---|---|
static | ΠΡΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΠ° | Π’Π΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΌ |
dynamic | Π’ΠΎΠ»ΡΠΊΠΎ Π°ΠΊΡΠΈΠ²Π½Π°Ρ Π»ΠΎΠΊΠ°Π»Ρ, Π»Π΅Π½ΠΈΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°ΡΡ | Π N ΡΠ°Π· ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΈ N Π»ΠΎΠΊΠ°Π»ΡΡ |
fetch | Π’ΠΎΠ»ΡΠΊΠΎ Π°ΠΊΡΠΈΠ²Π½Π°Ρ Π»ΠΎΠΊΠ°Π»Ρ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΠ°Ρ ΡΠ΅ΡΠ΅Π· Live Sync API | Π N ΡΠ°Π· ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠΈ N Π»ΠΎΠΊΠ°Π»ΡΡ |
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΠΆΠΈΠΌΡ importMode: 'static', Intlayer ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΎΠ²Π½ΠΎ ΡΠΎΡ ΠΆΠ΅ ΠΎΠ±ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΡ
, ΡΡΠΎ ΠΈ Paraglide. Π Π² ΡΠ΅ΠΆΠΈΠΌΠ°Ρ
'dynamic' ΠΈΠ»ΠΈ 'fetch' ΠΎΠ½ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎ, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π»ΠΎΠΊΠ°Π»ΠΈ: Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° N ΡΠ·ΡΠΊΠ°Ρ
ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΡ
ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π² N ΡΠ°Π· ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Ρ Paraglide.
ΠΠ΄Π΅ Paraglide Π²ΡΠ΅ Π΅ΡΠ΅ ΡΠΌΠ΅ΡΡΠ΅Π½
ΠΡΠ»ΠΈ Π²Π°Ρ ΡΡΠ΅ΠΊ - ΡΡΠΎ Svelte Ρ Vite ΠΈ Π²Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΠ΅ Π΄Π²Π° ΠΈΠ»ΠΈ ΡΡΠΈ ΡΠ·ΡΠΊΠ°, tree shaking ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π·Π°ΡΠ²Π»Π΅Π½ΠΎ, Π° Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° Π»ΠΈΡΠ½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π½Π΅Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ.
ΠΡΠ»ΠΈ Π²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ inlang (Fink, Sherlock, ΠΏΠ»Π°Π³ΠΈΠ½Ρ ΡΠΎΡΠΌΠ°ΡΠΎΠ² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ), Paraglide Π½Π°ΡΠΈΠ²Π½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Π² ΡΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΎΠ±ΡΠ΅ΠΌ Π±Π°Π½Π΄Π»Π° ΠΈ ΡΡΠ΅ΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»Π΅ΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° i18n SEO Scanner:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Intlayer:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ
- ΠΠ΅Π½ΡΠΌΠ°ΡΠΊ i18n Π² TanStack Start
- ΠΠ΅Π½ΡΠΌΠ°ΡΠΊ i18n Π² Next.js
- ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±Π°Π½Π΄Π»Π° ΠΈ
importMode - ΠΠ°ΠΊ Π²ΡΠ±ΡΠ°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ i18n Π΄Π»Ρ React
- ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΠΊ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΠΊΠ° Π½Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². ΠΡΠ΄ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌ, ΠΊΡΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ.
