Π‘ΠΏΡΠΎΡΠΈΡΠ΅ ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ²ΠΎΠ΄ΠΊΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° AI
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ.
Π‘ΠΌΠΎΡΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΈΠ΄Π΅Ρ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π²Π½Π΅ΡΡΠΈ ΡΠ²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄, ΠΏΠΎΠ΄Π°Π² Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΡΡΡΠ³ΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° GitHub.
Π‘ΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ GitHubΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ Markdown Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
Π£ΡΡΠ°ΡΠ΅Π» Π»ΠΈ vue-i18n Π² 2026 Π³ΠΎΠ΄Ρ?
Π ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π΅ Vue ΡΡΡΠ΄Π½ΠΎ Π½Π°ΠΉΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, ΡΠ΅ΠΌ vue-i18n. Π Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠ°Ρ Kazupon Π΅ΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ Vue 2, ΠΎΠ½Π° Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ @nuxtjs/i18n ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎΡΠ·ΡΡΠ½ΠΎΠΌ Vue-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
ΠΠ΄Π½Π°ΠΊΠΎ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΈ 2026 Π³ΠΎΠ΄Π° ΠΏΡΠΈΠ²Π΅Π»ΠΈ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ Π²ΡΠ²ΠΎΠ΄Ρ: vue-i18n ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΡΠ°ΠΌΡΠΌ ΡΡΠΆΠ΅Π»ΡΠΌ runtime ΡΡΠ΅Π΄ΠΈ Π²ΡΠ΅Ρ
ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΡΠΎΠ½ΡΠ΅Π½Π΄-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ².
Π Π±Π°Π·ΠΎΠ²ΠΎΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π½Π° Vite + Vue ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 31.5 ΠΠ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ vue-i18n ΡΠ²Π΅Π»ΠΈΡΠΈΠ»ΠΎ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ JavaScript Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π΄ΠΎ 136.4 ΠΠ, Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π² ΡΠ΅ΡΡΡΠ΅ ΡΠ°Π·Π° ΠΏΡΠ΅Π²ΡΡΠΈΠ² ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ Π²Π΅Ρ.
ΠΠ°ΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΡΠ»Π°Π²ΡΡΠΈΠΉΡΡ Π»Π΅Π³ΠΊΠΎΡΡΡΡ ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡΠ½ΠΎΡΡΡΡ, ΠΏΠΎΠ»ΡΡΠΈΠ» Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΆΠ΅Π»ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ? Π ΠΎΠΏΡΠ°Π²Π΄Π°Π½Π° Π»ΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ runtime-ΠΌΠΎΠ΄Π΅Π»Ρ?
ΠΠ»Π°Π²Π½ΡΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ
Π‘Π°ΠΌΡΠΉ ΡΡΠΆΠ΅Π»ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ runtime:
Π‘ Π²Π΅ΡΠΎΠΌ 24.3 ΠΠ gzipped (83.2 ΠΠ minified) Π΄ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² vue-i18n ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π² 9 ΡΠ°Π· ΡΡΠΆΠ΅Π»Π΅Π΅ Π΄Π²ΠΈΠΆΠΊΠ° intlayer (2.7 ΠΠ).
Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° ΡΡΡΠ°Π½ΠΈΡΡ Π½Π° 330%:
vue-i18n ΡΠ²Π΅Π»ΠΈΡΠΈΠ» ΡΡΡΠ°Π½ΠΈΡΡ Vue Ρ 31.5 ΠΠ Π΄ΠΎ 136.4 ΠΠ. Intlayer ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ» 59.3 ΠΠ, ΡΡΠΎ Π½Π° 56% Π»Π΅Π³ΡΠ΅.
Π‘ΠΊΡΡΡΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅:
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π±Π΅Π· Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ
Π°Π»ΠΈΠ°ΡΠΎΠ² Π² ΡΠ±ΠΎΡΡΠΈΠΊΠ΅, vue-i18n Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²Π΅ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π² Π±ΡΠ°ΡΠ·Π΅Ρ Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΡΡΡΠΎΠΊ Π½Π° Π»Π΅ΡΡ.
Π’Π΅ΠΌΠΏΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ:
ΠΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΠΈΠΉ Π³ΠΎΠ΄ vue-i18n ΠΏΠΎΠ»ΡΡΠΈΠ» ~259 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ², ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
Π½Π° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ Ρ Vue.
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
ΠΠ΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Language Server (LSP), MCP-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΠ ΠΈΠ»ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ CLI-ΠΊΠΎΠΌΠ°Π½Π΄ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° vs. ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π° 12 ΠΌΠ΅ΡΡΡΠ΅Π²:
intlify/vue-i18n: 259 ΠΊΠΎΠΌΠΌΠΈΡΠΎΠ² (ΠΏΠ»Π°Π½ΠΎΠ²ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Vue 3 ΠΈ Nuxt).aymericzip/intlayer: 4 343 ΠΊΠΎΠΌΠΌΠΈΡΠ° (ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, LSP-ΡΡΠΈΠ»ΠΈΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΉ Ρ ΠΠ-Π°Π³Π΅Π½ΡΠ°ΠΌΠΈ).
- intlify/vue-i18n
- aymericzip/intlayer
ΠΠΎΠΌΠΌΠΈΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²Π΅ΡΠΊΠ΅, ΠΈΡΡΠΎΡΠ½ΠΈΠΊ: GitHub API.
ΠΡΠ΅Π»Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ. ΠΠΎ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠΎΠ½ΡΠ΅Π½Π΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ AST-ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΡΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΡΠΌΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΎΡΠΊΡΠ΄Π° Π²Π·ΡΠ»ΠΈΡΡ ΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΠΏΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ ΠΈΡΡΠΎΡΠΈΡ i18n Π² JavaScript.
ΠΠ°Π³ΡΡΠ·ΠΊΠΈ npm
- vue-i18n
- vue-intlayer
ΠΡΡΠΎΡΠ½ΠΈΠΊ: API Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΡΠ΅Π΅ΡΡΡΠ° npm.
Π§ΠΈΡΠ»ΠΎ Π·Π°Π³ΡΡΠ·ΠΎΠΊ Π²ΠΎΠ·Π½Π°Π³ΡΠ°ΠΆΠ΄Π°Π΅Ρ ΡΠ°ΠΌΡΠ΅ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π»ΡΡΡΠΈΠ΅. ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π²ΡΠΏΡΡΠ΅Π½Π½ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄, Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ±ΡΠ°Π» Π΅Ρ ΡΠΎΠ³Π΄Π°, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΡΠΊ CI ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°Π²ΠΈΡΡΡΠΈΠΉ ΠΎΡ Π½Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ. ΠΡΠ° ΡΠΈΡΡΠ° ΠΈΠ·ΠΌΠ΅ΡΡΠ΅Ρ ΠΈΠ½Π΅ΡΡΠΈΡ, Π° Π½Π΅ ΠΎΡΠΎΠ·Π½Π°Π½Π½ΡΠΉ Π²ΡΠ±ΠΎΡ.
ΠΠ-Π°ΡΡΠΈΡΡΠ΅Π½ΡΡ ΡΡΠΈΠ»ΠΈΠ²Π°ΡΡ ΡΡΠΎΡ ΡΡΡΠ΅ΠΊΡ. next-intl, i18next ΠΈ vue-i18n ΠΏΠΎΠ²ΡΡΠ΄Ρ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΡΡΠ°Π»ΠΈΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π°ΡΡΠΈΡΡΠ΅Π½ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ ΠΈΡ
ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½Π΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ. ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ. Π‘ΡΠ°Π²Π½ΠΈΠ²Π°ΠΉΡΠ΅ ΠΏΠΎ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΡ, Π° Π½Π΅ ΠΏΠΎ ΡΠΈΡΠ»Ρ Π·Π°Π³ΡΡΠ·ΠΎΠΊ.
ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² Vite + Vue
ΠΠ΅Π½ΡΠΌΠ°ΡΠΊ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΈΠ· 10 ΡΡΡΠ°Π½ΠΈΡ ΠΈ 10 ΡΠ·ΡΠΊΠΎΠ² Π½Π° Vite ΠΈ Vue 3:
ΠΠ΅ΡΡΠΈΠΊΠ°
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° JSON
ΠΠ΅Π½ΠΈΠ²Π°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ JSON (ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½)
ΠΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
Π§ΡΠΎ ΡΡΠΎ Π·Π° ΠΌΠ΅ΡΡΠΈΠΊΠ°?
ΠΠ±ΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ½Π°ΡΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ gzip. ΠΠ½ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΠΎΡΠ»Π΅ tree-shaking ΠΈ ΠΌΠΈΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ?
ΠΠ΅Π½ΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ JavaScript, ΡΡΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΊΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅.
ΠΠΈΠ΄
ΠΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ Ρ gzip-ΡΠΆΠ°ΡΠΈΠ΅ΠΌ. ΠΠ°Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ° Vue.
ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ²Π΅ΡΡ Π΅Π΄ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ
Π Π°Π·ΠΌΠ΅Ρ Π΄ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ²:
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° | Gzipped | Minified |
|---|---|---|
vue-i18n@11.4.0 | 24.3 ΠΠ | 83.2 ΠΠ |
intlayer@8.7.12 | 2.7 ΠΠ | 7.6 ΠΠ |
Runtime vue-i18n Π²Π΅ΡΠΈΡ 24.3 ΠΠ gzipped, ΡΡΠΎ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠΎ Ρ ΡΠ΄ΡΠΎΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ Vue. Intlayer Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π»ΠΈΡΡ 2.7 ΠΠ.
ΠΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΡΠ΅ΡΠΊΠ° Π΄Π°Π½Π½ΡΡ
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ | Π‘Ρ. JS / ΡΡΡ. (gz) | Π£ΡΠ΅ΡΠΊΠ° ΡΠ·ΡΠΊΠΎΠ² | Π£ΡΠ΅ΡΠΊΠ° Π΄Ρ. ΡΡΡΠ°Π½ΠΈΡ | Π‘Ρ. ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (gz) |
|---|---|---|---|---|
| ΠΠ°Π·Π° (Π±Π΅Π· i18n) | 31.5 ΠΠ | 0.0% | 90.0% | 0.9 ΠΠ |
vue-i18n | 136.4 ΠΠ | 50.2% | 90.0% | 196.0 ΠΠ |
| Intlayer | 59.3 ΠΠ | 51.1% | 0.0% | 6.5 ΠΠ |
ΠΠ»Π°Π²Π½ΡΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ
ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΎΡΡ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΊ Vue ΠΎΡΠ΅Π½Ρ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½ (~31 ΠΠ), ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ vue-i18n ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΡΠ΅ΡΡΡΠ΅ Ρ Π»ΠΈΡΠ½ΠΈΠΌ ΡΠ°Π·Π°.
Π£ΡΠ΅ΡΠΊΠ° Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠ°ΡΡΡΡΡΡ:
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 90% ΡΠ΅ΠΊΡΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ, ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ°Π·Π΄Π΅Π»Π°ΠΌ ΡΠ°ΠΉΡΠ°. Intlayer ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅, ΡΠ½ΠΈΠΆΠ°Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄ΠΎ 0.0%.
ΠΠ΅Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²:
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ 196 ΠΠ Π² vue-i18n ΠΈΠ·-Π·Π° Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΏΡΠΎΡΠΈΠ² 6.5 ΠΠ Π² Intlayer.
ΠΠ°ΠΊ ΡΠ°ΡΡΡΡ ΡΡΠ΅ΡΠΊΠ°:
ΠΡΠ°ΡΠΈΠΊ Π½ΠΈΠΆΠ΅ ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΡΠΌ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡ 1 Π΄ΠΎ 10 ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΎΡ 1 Π΄ΠΎ 10 ΡΠ·ΡΠΊΠΎΠ², ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎ 30 ΠΠ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΏΠΎ Π»ΠΎΠΊΠ°Π»ΠΈ ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΡΡ ΡΠ·ΡΠΊΠΎΠ², ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΡΡΡΠΎΠΌ ΡΠ±ΠΈΡΠ°Π΅Ρ ΠΎΡΡ ΡΡΡΠ°Π½ΠΈΡ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡ ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΠΎΠ±ΡΡΠΌ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΌ.

ΠΠΎΡΠ΅ΠΌΡ vue-i18n ΡΡΠΆΠ΅Π»ΡΠΉ?
ΠΠ°ΡΡΠ΅Ρ AST Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅
vue-i18n ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ°Π²ΠΈΠ»Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΡΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² Π΄Π΅ΡΠ΅Π²ΡΡ AST ΠΏΡΡΠΌΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΏΠΈΡΡΠ²Π°ΡΡ Π°Π»ΠΈΠ°ΡΡ Π½Π° vue-i18n/dist/vue-i18n.runtime.esm-bundler.js ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΡΠ΅ΡΠ΅Π· @intlify/unplugin-vue-i18n. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΏΡΡΠΊΠ°ΡΡ ΡΡΠΎΡ ΡΠ°Π³.
ΠΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ
vue-i18n Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π» ΠΈ Π΄Π°Ρ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΌΠΎΡΡΡ Π΄Π»Ρ Options API ($t, v-t) ΠΈ ΡΠ΅Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΠΊΡΠΈ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² <script setup>, Π±ΡΠ°ΡΠ·Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΡΡ tree-shaking
Π’Π°ΠΊ ΠΊΠ°ΠΊ "home.hero.title" Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π² ΡΠ°Π½ΡΠ°ΠΉΠΌΠ΅, Π±Π°Π½Π΄Π»Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ. ΠΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΎΡΡΠ°ΡΡΡΡ Π² ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Intlayer ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΡΠΎΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠΎΠ»ΡΠΌ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π»ΠΈΡΠ½Π΅Π΅ Π΄ΠΎ ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π½Π΄Π»Π°.
ΠΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ½Π΅ΡΠ½ΠΈΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ ΠΏΡΠΎΡΠΈΠ² ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ
Π vue-i18n ΡΠ΅ΠΊΡΡΡ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ locales/. Intlayer ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΠ°ΠΉΠ»Ρ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ΄ΠΎΠΌ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ Hero.vue ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.
ΠΠ²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ² ΡΡΡΠΎΠ³ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ
DefineLocaleMessage Π΄Π°Π΅Ρ Π°Π²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΡ
Π΅ΠΌΠ΅. ΠΠΎ ΠΎΠ½ΠΎ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡ Π²ΡΠ΅Ρ
ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ². ΠΡΠΎΠΏΡΡΠΊ ΠΊΠ»ΡΡΠ° Π² ru.json Π½Π΅ Π²ΡΠ·ΠΎΠ²Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ ΡΠ±ΠΎΡΠΊΠΈ TypeScript.
Π Intlayer ΡΠ»ΠΎΠ²Π°ΡΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡΡΡΡΡΡ ΡΡΡΠΎΠ³ΠΎ. ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ strictMode ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π² Π»ΡΠ±ΠΎΠΌ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ IDE ΠΈ ΠΠ
ΠΡΠΊΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π΄Π»Ρ ΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ
| ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ | vue-i18n | Intlayer |
|---|---|---|
| Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ VS Code | Π‘ΡΠΎΡΠΎΠ½Π½Π΅Π΅ (i18n Ally) | β ΠΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ |
| Language Server (LSP) | β ΠΠ΅Ρ | β ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ LSP |
| MCP Server Π΄Π»Ρ ΠΠ | β ΠΠ΅Ρ | β ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ MCP-ΡΠ΅ΡΠ²Π΅Ρ |
| ΠΠ°Π²ΡΠΊΠΈ Π°Π³Π΅Π½ΡΠΎΠ² (Skills) | β ΠΠ΅Ρ | β ΠΠΎΡΠΎΠ²ΡΠ΅ Π½Π°Π²ΡΠΊΠΈ |
| ΠΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ CMS | β ΠΠ΅Ρ | β ΠΠ΅ΡΠΏΠ»Π°ΡΠ½Π°Ρ Open Source CMS |
ΠΡΠΎΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°
vue-i18n Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠ². Π€Π°ΠΉΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΡΠ³ΡΡΠΆΠ°ΡΡ Π½Π° Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π²ΡΠΎΠ΄Π΅ Crowdin ΠΈΠ»ΠΈ Phrase.
Intlayer ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ:
ΠΠ²ΡΠΎΠ΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ΅Π· Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΠ (intlayer fill):
ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π°ΡΠΈΡ API-ΠΊΠ»ΡΡΠ΅ΠΉ OpenAI, Anthropic, Mistral ΠΈΠ»ΠΈ Gemini.
ΠΠ²ΡΠΎΠ½ΠΎΠΌΠ½Π°Ρ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ CMS:
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Intlayer CMS, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ½ΡΠ΅Π½Ρ-ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΠΊΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ Ρ ΡΠΈΠΊΡΠ°ΡΠΈΠ΅ΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΡΠΌΠΎ Π² Git.
Π‘Π²ΠΎΠ±ΠΎΠ΄Π½Π°Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ:
ΠΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0.
ΠΠΎΠ³Π΄Π° vue-i18n ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΎΠΏΡΠ°Π²Π΄Π°Π½?
ΠΡΠ»ΠΈ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π²ΡΠ·Π°Π½Π° Π½Π° @nuxtjs/i18n, ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½Π°.
ΠΡΠΈ ΡΠΈΡΠΎΠΊΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΡΠ°Π²ΠΈΠ» ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ Π±Π°Π½Π΄Π»Π° Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠΈΠΌΡΠΌ ΡΠ°ΠΊΡΠΎΡΠΎΠΌ.
ΠΠ°ΠΊ ΡΠ»ΡΡΡΠΈΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ vue-i18n?
Intlayer ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ vue-i18n ΠΈ @nuxtjs/i18n (useI18n, $t, <i18n-t>). ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΠ»ΠΈ composables, ΡΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°ΠΌΠΈ Π»Π΅Π³ΠΊΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π° Π±Π°Π·Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π² Π±ΡΡΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½Π°
ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ:
- Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ
@intlayer/vue-i18nΠΈΠ»ΠΈ@intlayer/nuxt-i18n. - ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ Π°Π»ΠΈΠ°ΡΡ ΡΠ±ΠΎΡΡΠΈΠΊΠ° (Vite ΠΈΠ»ΠΈ Nuxt), ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΡ ΠΈ ΡΠ΅Π³ΠΈ Π² ΡΠ°Π±Π»ΠΎΠ½Π°Ρ
ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π²Π΅Π»ΠΈ Π½Π° Intlayer, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΡΠ΄Π°Π»ΠΈΡΡ
vue-i18nΠΈΠ·package.json. - ΠΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΡ ΡΠ·ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ° (LSP), ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ 24-ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ½ΡΠΉ AST-ΠΏΠ°ΡΡΠ΅Ρ ΠΈΠ· ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ Π±Π°Π½Π΄Π»Π° ΠΈ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΠΠ-ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π±Π΅Π· Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°.
ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² Π½Π°ΡΠΈΡ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°Ρ :
- ΠΡΠΎΡΡΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ: Π‘ΠΎΡ
ΡΠ°Π½ΡΠΉΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°Π±Π»ΠΎΠ½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π°Π΄Π°ΠΏΡΠ΅ΡΠ° Π΄Π»Ρ
vue-i18nΠΈΠ»ΠΈ@nuxtjs/i18n. - Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ: ΠΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠΉΡΠ΅ JSON-ΡΠ°ΠΉΠ»Ρ Π² ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ»ΠΎΠ²Π°ΡΠΈ ΠΏΠΎ Π½Π°ΡΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ: Ρ vue-i18n ΠΈΠ»ΠΈ Ρ @nuxtjs/i18n.
- ΠΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄: ΠΡΡΠ°Π²ΡΡΠ΅
vue-i18nΠ² ΡΠ°Π±ΠΎΡΠ΅, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ² Intlayer ΠΊ vue-i18n Π΄Π»Ρ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΠ-ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π°.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠ°ΠΉΡ Π½Π° ΡΡΠ΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ SEO-ΡΠΊΠ°Π½Π΅ΡΠ° i18n:
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ
ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΠΎΠΊΠ° Π½Π΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π². ΠΡΠ΄ΡΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌ, ΠΊΡΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡΡΡ ΡΠ²ΠΎΠΈΠΌΠΈ ΠΌΡΡΠ»ΡΠΌΠΈ.
