рдЗрд╕ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рдкреВрдЫреЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдЖрдкрдХреЗ рдЪреБрдиреЗ рд╣реБрдП AI рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рд╕рдВрд╕реНрдХрд░рдг рдЗрддрд┐рд╣рд╛рд╕
- "GitHub рд╕реНрдЯрд╛рд░ рддреБрд▓рдирд╛ рдЬреЛрдбрд╝реЗрдВ"v8.9.818/5/2026
- "рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреНрд░рд╛рд░рдВрдн"v8.7.126/1/2026
рдЗрд╕ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ AI рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреА рдЧрдИ рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВрдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ GitHub рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП GitHub рд▓рд┐рдВрдХрджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ Markdown рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Svelte i18n рдкреБрд╕реНрддрдХрд╛рд▓рдп - 2026 рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд░рд┐рдкреЛрд░реНрдЯ
рдпрд╣ рдкреГрд╖реНрда Svelte рдкрд░ i18n рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИред
рд╡рд┐рд╖рдп рд╕реВрдЪреА
рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдмреЗрдВрдЪрдорд╛рд░реНрдХ
рдбрд╛рдпрдирд╛рдорд┐рдХ JSON рд▓реЛрдбрд┐рдВрдЧ
рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЖрд▓рд╕реНрдп рд╕реЗ рдЕрдиреБрд╡рд╛рдж рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ
рд╕реНрдХреЛрдкреНрдб JSON (рдиреЗрдорд╕реНрдкреЗрд╕рд┐рдВрдЧ)
рдкреНрд░рддрд┐-рдкреГрд╖реНрда рдЕрдиреБрд╡рд╛рдж рдиреЗрдорд╕реНрдкреЗрд╕
I18n рдкреНрд░рджрд░реНрд╢рди рдмреЗрдВрдЪрдорд╛рд░реНрдХ
рдпрд╣ рдореАрдЯреНрд░рд┐рдХ рдХреНрдпрд╛ рд╣реИ?
рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдВрдбрд▓ рдХрд╛ рдХреБрд▓ gzip-рд╕рдВрдкреАрдбрд╝рд┐рдд рдЖрдХрд╛рд░ред рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдЯреНрд░реА-рд╢реЗрдХрд┐рдВрдЧ рдФрд░ рдорд┐рдирд┐рдлрд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рдж рдкреНрд░рджрд╛рддрд╛ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреНрдпреЛрдВ рд╣реИ?
рдПрдХ рдЫреЛрдЯрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдХрд╛рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреЗрд▓реЛрдб рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рддреЗрдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рд╣реЛрддрд╛ рд╣реИред
рджреЗрдЦрдиреЗ рдХрд╛ рддрд░реАрдХрд╛
рдкрд░рд┐рдгрд╛рдо рд╕рдВрджрд░реНрдн:
рдкреВрд░реНрдг рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдбреЗрдЯрд╛ рджреЗрдЦреЗрдВ
рд╕рдВрдкреВрд░реНрдг рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВред
рдкрд░рд┐рдЪрдп
Svelte рдРрдк рдореЗрдВ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг (Internationalisation) рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рднрд╛рд░реА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рд╣реИрдВред рдореБрдЦреНрдп рдЬреЛрдЦрд┐рдо рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╕рд╛рдордЧреНрд░реА рднреЗрдЬрдиреЗ рдХрд╛ рд╣реИ: рдПрдХ рд╣реА рд░реВрдЯ рдХреЗ рдмрдВрдбрд▓ рдореЗрдВ рдЕрдиреНрдп рдкреГрд╖реНрдареЛрдВ рдФрд░ рдЕрдиреНрдп рд▓реЛрдХреЗрд▓реНрд╕ рдХреЗ рдЕрдиреБрд╡рд╛рдж рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ред
рдЬреИрд╕реЗ-рдЬреИрд╕реЗ рдЖрдкрдХрд╛ рдРрдк рдмрдврд╝рддрд╛ рд╣реИ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ JavaScript рдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рдмрдврд╝рд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдзреАрдорд╛ рдХрд░ рд╕рдХрддреА рд╣реИред
рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдХрдо рд╕реЗ рдХрдо рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХреГрдд рдкреГрд╖реНрда рдмрд┐рдирд╛ i18n рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рднрд╛рд░реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рджреВрд╕рд░рд╛ рдкреНрд░рднрд╛рд╡ рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ (DX) рдкрд░ рдкрдбрд╝рддрд╛ рд╣реИ: рдЖрдк рд╕рд╛рдордЧреНрд░реА, рдкреНрд░рдХрд╛рд░ (types), рдиреЗрдорд╕реНрдкреЗрд╕ рд╕рдВрдЧрдарди, рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдФрд░ рд▓реЛрдХреЗрд▓ рдмрджрд▓рдиреЗ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЛ рдХреИрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
TL;DR
- Intlayer: рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдкрджрдЪрд┐рд╣реНрди (footprint) рдХреЗ рд╕рд╛рде рд╕рдмрд╕реЗ рдкреНрд░рджрд░реНрд╢рди-рдХреБрд╢рд▓ рд╡рд┐рдХрд▓реНрдк (v8.7.12)ред
- Paraglide: рдЯреНрд░реА-рд╢реЗрдХрд┐рдВрдЧ (tree-shaking) рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рджрд╛рд╡реЗрджрд╛рд░ рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдУрд╡рд░рд╣реЗрдб рд╣реИред
- svelte-i18n: Svelte рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рдФрд░ рдорд╛рдирдХ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдмрдбрд╝реЗ рдмрдВрдбрд▓ рд╡рдЬрди (~7x Intlayer) рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред
рдЕрдкрдиреЗ рдРрдк рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ
i18n рд▓реАрдХреЗрдЬ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рддреБрд░рдВрдд рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рдирд┐рдГрд╢реБрд▓реНрдХ рд╕реНрдХреИрдирд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИред
рд╕рдорд╕реНрдпрд╛
рдмрд╣реБрднрд╛рд╖реА рдРрдк рдХреА рд▓рд╛рдЧрдд рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд▓реАрд╡рд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ:
- рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреГрд╖реНрда / рдиреЗрдорд╕реНрдкреЗрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЬрд░реВрд░рдд рди рд╣реЛрдиреЗ рдкрд░ рдЖрдк рд╕рдВрдкреВрд░реНрдг рд╢рдмреНрджрдХреЛрд╢ рд▓реЛрдб рди рдХрд░реЗрдВред
- рд╕рд╣реА рд▓реЛрдХреЗрд▓ рдХреЛ рдбрд╛рдпрдиреЗрдорд┐рдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░реЗрдВ, рдХреЗрд╡рд▓ рддрднреА рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛред
рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреА рддрдХрдиреАрдХреА рд╕реАрдорд╛рдУрдВ рдХреЛ рд╕рдордЭрдирд╛:
рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓реЛрдбрд┐рдВрдЧ
рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛, рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╛рдзрд╛рди рдкрд╣рд▓реЗ рд░реЗрдВрдбрд░ рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдЬреЛ рдХрдИ рд░реВрдЯреНрд╕ рдФрд░ рд▓реЛрдХреЗрд▓реНрд╕ рд╡рд╛рд▓реЗ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдУрд╡рд░рд╣реЗрдб рдЬреЛрдбрд╝рддрд╛ рд╣реИред
рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдЖрдк рдПрдХ рд╕рдордЭреМрддрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ: рдХрдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ JS, рд▓реЗрдХрд┐рди рднрд╛рд╖рд╛ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп рдХрднреА-рдХрднреА рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрд░реЛрдзред
рд╕рд╛рдордЧреНрд░реА рд╡рд┐рднрд╛рдЬрди (Splitting)
t('a.b.c') рдХреЗ рдЗрд░реНрдж-рдЧрд┐рд░реНрдж рдирд┐рд░реНрдорд┐рдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдмрдбрд╝реА JSON рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ рдореЙрдбрд▓ рдЯреНрд░реА-рд╢реЗрдХрд┐рдВрдЧ (tree-shaking) рдХреЛ рдХрдард┐рди рдмрдирд╛рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐-рдкреГрд╖реНрда рд╡рд┐рднрд╛рдЬрди рд░рдгрдиреАрддрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ред
рдЕрдиреБрд╕рдВрдзрд╛рди рдкрджреНрдзрддрд┐
рдЗрд╕ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА:
Base App(рдХреЛрдИ i18n рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ)svelte-intlayer(v8.7.12)svelte-i18n(v4.0.1)@inlang/paraglide-js(v2.17.0)
рдлреНрд░реЗрдорд╡рд░реНрдХ Svelte рд╣реИ рдЬрд┐рд╕рдореЗрдВ 10 рдкреГрд╖реНрдареЛрдВ рдФрд░ 10 рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдПрдХ рдмрд╣реБрднрд╛рд╖реА рдРрдк рд╣реИред
рд╣рдордиреЗ рдЪрд╛рд░ рд▓реЛрдбрд┐рдВрдЧ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреА:
рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдореЛрдбрд▓ рдореЗрдВ рдЦреЛрд▓реЗрдВ
| рд░рдгрдиреАрддрд┐ | рдХреЛрдИ рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╣реАрдВ (рд╡реИрд╢реНрд╡рд┐рдХ) | рдиреЗрдорд╕реНрдкреЗрд╕ рдХреЗ рд╕рд╛рде (рд╕реНрдХреЛрдкрдпреБрдХреНрдд/scoped) |
|---|---|---|
| рд╕реНрдЯреЗрдЯрд┐рдХ рд▓реЛрдбрд┐рдВрдЧ | Static: рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдм рдХреБрдЫред | Scoped static: рдиреЗрдорд╕реНрдкреЗрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд; рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╕рдм рдХреБрдЫ рд▓реЛрдбред |
| рдбрд╛рдпрдиреЗрдорд┐рдХ рд▓реЛрдбрд┐рдВрдЧ | Dynamic: рд▓реЛрдХреЗрд▓ рдкреНрд░рддрд┐ рдорд╛рдВрдЧ рдкрд░ рд▓реЛрдбрд┐рдВрдЧред | Scoped dynamic: рдиреЗрдорд╕реНрдкреЗрд╕ рдФрд░ рд▓реЛрдХреЗрд▓ рдкреНрд░рддрд┐ рд╕реВрдХреНрд╖реНрдо рд▓реЛрдбрд┐рдВрдЧред |
рд░рдгрдиреАрддрд┐ рд╕рд╛рд░рд╛рдВрд╢
- Static: рд╕рд░рд▓; рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдб рдХреЗ рдмрд╛рдж рдХреЛрдИ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рд▓рдВрдмрддрд╛ рдирд╣реАрдВред рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖: рдмрдбрд╝рд╛ рдмрдВрдбрд▓ рдЖрдХрд╛рд░ред
- Dynamic: рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рдЬрди рдХрдо рдХрд░рддрд╛ рд╣реИ (рд▓реЗрдЬрд╝реА-рд▓реЛрдбрд┐рдВрдЧ)ред рдЖрджрд░реНрд╢ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рд▓реЛрдХреЗрд▓реНрд╕ рд╣реЛрдВред
- Scoped static: рдЬрдЯрд┐рд▓ рдЕрддрд┐рд░рд┐рдХреНрдд рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд░рдЦрддрд╛ рд╣реИ (рддрд╛рд░реНрдХрд┐рдХ рдкреГрдердХреНрдХрд░рдг)ред
- Scoped dynamic: рдХреЛрдб рд╕реНрдкреНрд▓рд┐рдЯрд┐рдВрдЧ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рджреГрд╖реНрдЯрд┐рдХреЛрдгред рдХреЗрд╡рд▓ рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп рдФрд░ рд╕рдХреНрд░рд┐рдп рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рд╛рдордЧреНрд░реА рд▓реЛрдб рдХрд░рдХреЗ рдореЗрдореЛрд░реА рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдХреНрдпрд╛ рдорд╛рдкрд╛:
рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ stack рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдмрд╣реБрднрд╛рд╖реА рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рд╛рдпрд╛, рдлрд┐рд░ рдиреЛрдЯ рдХрд┐рдпрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрд╛рд░ рдкрд░ рдХреНрдпрд╛ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рдФрд░ рдЪреАрдЬреЗрдВ рдХрд┐рддрдиреА рджреЗрд░ рд▓реАрдВред рдЖрдХрд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдм рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдмрд╛рдж рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдЪреНрдЪреЗ рд╕реНрд░реЛрдд рдЧрдгрдирд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕реЗ рдХрд░реАрдм рд╣реИред
Internationalization library size: bundling, tree-shaking рдФрд░ minification рдХреЗ рдмрд╛рдж, i18n library рдХрд╛ рдЖрдХрд╛рд░ providers + stores code рдХрд╛ рдЖрдХрд╛рд░ рдПрдХ рдЦрд╛рд▓реА component рдореЗрдВ рд╣реИред рдЗрд╕рдореЗрдВ translation files рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЙрддреНрддрд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА content рд╕реЗ рдкрд╣рд▓реЗ library рдХрд┐рддрдиреА рдорд╣рдВрдЧреА рд╣реИред
JavaScript per page: рдкреНрд░рддреНрдпреЗрдХ benchmark route рдХреЗ рд▓рд┐рдП, browser рдЙрд╕ visit рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреА script рдЦреАрдВрдЪрддрд╛ рд╣реИ, suite рдореЗрдВ pages рдХреЗ рдФрд╕рдд рдкрд░ (рдФрд░ locales рдХреЗ рдкрд╛рд░ рдЬрд╣рд╛рдВ report рдЙрдиреНрд╣реЗрдВ roll рдХрд░рддрд╛ рд╣реИ)ред Heavy pages slow pages рд╣реИрдВред
Leakage from other locales: рдпрд╣ рдПрдХ рд╣реА page рдХреА content рд╣реИ рд▓реЗрдХрд┐рди рджреВрд╕рд░реА language рдореЗрдВ рдЬреЛ audited page рдореЗрдВ рдЧрд▓рддреА рд╕реЗ load рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрд╣ content рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдмрдЪрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
/fr/aboutpage content/en/aboutpage bundle рдореЗрдВ)Leakage from other routes: рдЕрдиреНрдп screens рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╡рд┐рдЪрд╛рд░: рдХреНрдпрд╛ рдЙрдирдХреА copy рддрдм рднреА рд╕рд╛рде рдЖрддреА рд╣реИ рдЬрдм рдЖрдкрдиреЗ рдХреЗрд╡рд▓ рдПрдХ page рдЦреЛрд▓рд╛ рд╣реЛред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
/en/aboutpage content/en/contactpage bundle рдореЗрдВ)ред рдПрдХ high score weak splitting рдпрд╛ over-broad bundles рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддрд╛ рд╣реИредAverage component bundle size: Common UI pieces рдХреЛ рдПрдХ рдмрд╛рд░ рдореЗрдВ measure рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдмрдЬрд╛рдп рдПрдХ giant app number рдХреЗ рдЕрдВрджрд░ рдЫрд┐рдкрдиреЗ рдХреЗред рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ internationalization рдЖрдо components рдХреЛ quietly inflate рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ component rerender рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ memory рд╕реЗ рд╕рднреА рдЙрд╕ data рдХреЛ load рдХрд░реЗрдЧрд╛ред рдХрд┐рд╕реА рднреА component рдХреЗ рд╕рд╛рде рдПрдХ giant JSON рдХреЛ attach рдХрд░рдирд╛ рдПрдХ рдмрдбрд╝реЗ unused data store рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдЬреИрд╕рд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ components рдХреЗ performance рдХреЛ slow down рдХрд░реЗрдЧрд╛ред
Language switch responsiveness: рдореИрдВ рдРрдк рдХреЗ рдЕрдкрдиреЗ control рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ language рдХреЛ flip рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ time рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ page clearly switch рд╣реЛрдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдЬреЛ рдПрдХ visitor рдХреЛ notice рд╣реЛрдЧрд╛, рди рдХрд┐ рдПрдХ lab micro-stepред
Rendering work after a language change: рдПрдХ narrower follow-up: interface рдХреЛ рдирдИ language рдХреЗ рд▓рд┐рдП repaint рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдиреА effort рд▓рдЧреА рдПрдХ рдмрд╛рд░ switch in flight рд╣реЛред рдЙрдкрдпреЛрдЧреА рдЬрдм "felt" рд╕рдордп рдФрд░ framework cost рдореЗрдВ divergence рд╣реЛред
Initial page load time: navigation рд╕реЗ browser рддрдХ рдЬрдм page рдХреЛ рдЙрди scenarios рдХреЗ рд▓рд┐рдП fully loaded рдорд╛рдирд╛ рдЬрд╛рдП рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВрдиреЗ test рдХрд┐рдпрд╛ред Cold starts рдХреА рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ред
Hydration time: рдЬрдм app рдЗрд╕реЗ expose рдХрд░рддрд╛ рд╣реИ, рддреЛ client рдХрд┐рддрдирд╛ рд╕рдордп server HTML рдХреЛ рдХреБрдЫ рдРрд╕реЗ рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рдЦрд░реНрдЪ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк actually click рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Tables рдореЗрдВ рдПрдХ dash рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ implementation рдиреЗ рдЗрд╕ benchmark рдореЗрдВ рдПрдХ reliable hydration figure provide рдирд╣реАрдВ рдХрд┐рдпрд╛ред
GitHub рд╕рд┐рддрд╛рд░реЗ
GitHub рд╕рд┐рддрд╛рд░реЗ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛, рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдФрд░ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХрд╛ рдПрдХ рдордЬрдмреВрдд рд╕рдВрдХреЗрддрдХ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рддрдХрдиреАрдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдорд╛рдк рдирд╣реАрдВ рд╣реИ, рд╡реЗ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рддрдиреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЙрдкрдпреЛрдЧреА рдкрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рдкреНрд░рдЧрддрд┐ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕реЗ рдЕрдкрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд░рдЦрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдореВрд▓реНрдп рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд┐рддрд╛рд░реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмреАрдЪ рдХрд░реНрд╖рдг рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рд╡рд┐рд╡рд░рдг рдореЗрдВ рдкрд░рд┐рдгрд╛рдо
1 - рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди
Svelte рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред
2 - рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕рдорд╛рдзрд╛рди
(Paraglide) (@inlang/paraglide-js@2.17.0):
Paraglide рдПрдХ рдЕрднрд┐рдирд╡, рд╕реБрд╡рд┐рдЪрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Vite + Svelte рдРрдк рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЙрдирдХреА рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдЬреНрдЮрд╛рдкрд┐рдд рдЯреНрд░реА-рд╢реЗрдХрд┐рдВрдЧ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред
рд▓реЗрдХрд┐рди React + TanStack Start рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреНрд░реА-рд╢реЗрдХрд┐рдВрдЧ рдиреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, Next.js рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд░рд╣реАред рдЙрд╕ рдиреЗ рдХрд╣рд╛, Svelte рдФрд░ TanStack Start рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Paraglide рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рджреЛрдмрд╛рд░рд╛ рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╕рд╛рд░реНрдердХ рд╣реЛрдЧрд╛ред
рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдФрд░ DX рднреА рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ рд╣рд░ рдкреБрд╢ рд╕реЗ рдкрд╣рд▓реЗ JS рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ, рдЬреЛ PR рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░рдВрддрд░ рдорд░реНрдЬ рд╕рдВрдШрд░реНрд╖ рдЬреЛрдЦрд┐рдо рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЯреВрд▓ Next.js рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Vite рдкрд░ рдЕрдзрд┐рдХ рдХреЗрдВрджреНрд░рд┐рдд рд▓рдЧрддрд╛ рд╣реИред
рдЕрдВрдд рдореЗрдВ, рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, Paraglide рд╕рд╛рдордЧреНрд░реА рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░ (рдЙрджрд╛. Svelte store) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдкрд╛рд░реНрд╕ рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП, рдпрд╣ localStorage / cookie рдЖрджрд┐ рд╕реЗ рд▓реЛрдХреЗрд▓ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛ред рдпрд╣ рдЕрдирд╛рд╡рд╢реНрдпрдХ рддрд░реНрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдШрдЯрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
Paraglide рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ: рд╕рдорд╛рдзрд╛рди рдЖрдпрд╛рдд рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдХреЛрдб рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ; рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ 'lib size' рдореАрдЯреНрд░рд┐рдХ рд▓рдЧрднрдЧ 0 рд╣реИред рдХреЛрдб рдЬреЗрдирд░реЗрд╢рди рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗ (рд╣рд░ рдЬрдЧрд╣ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рдмрдирд╛рдо рдХреЛрдИ рдкреНрд░реАрдлрд╝рд┐рдХреНрд╕ рдирд╣реАрдВ, рдХреБрдХреА рдмрдирд╛рдо рд╕реНрдЯреЛрд░реЗрдЬ рдЖрджрд┐)ред рддреБрд▓рдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ, Intlayer рддрд░реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЯреНрд░реА-рд╢реЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдбрд▓рд░ рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдореЗрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╣ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдХрд╛рд░рдг, paraglide рдФрд░ intlayer i18next рдпрд╛ next-intl рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 6 рд╕реЗ 10 рдЧреБрдирд╛ рд╣рд▓реНрдХреЗ рд╕рдорд╛рдзрд╛рди рд╕рд╛рдмрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
(svelte-i18n) (svelte-i18n@3.4.0):
рдпрд╣ рд╕рдорд╛рдзрд╛рди Svelte рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рднреА i18n рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ i18next рдпрд╛ рдЕрдиреНрдп рдкреНрд░рдореБрдЦ i18n рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╣ рдереЛрдбрд╝рд╛ рднрд╛рд░реА рд╣реИ (~15.9kb, рдЬреЛ svelte-intlayer рд╕реЗ рд▓рдЧрднрдЧ 7 рдЧреБрдирд╛ рд╣реИ)ред
3 - рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ
(Intlayer) (svelte-intlayer@8.7.12):
рдореИрдВ рдирд┐рд╖реНрдкрдХреНрд╖рддрд╛ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ svelte-intlayer рдХрд╛ рдиреНрдпрд╛рдп рдирд╣реАрдВ рдХрд░реВрдБрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореЗрд░рд╛ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рдиреЛрдЯ
рдпрд╣ рдиреЛрдЯ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╣реИ рдФрд░ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рднреА, i18n рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЖрдк рдЕрдХреНрд╕рд░ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП const t = useTranslation('xx') + <>{t('xx.xx')}</> рдЬреИрд╕реЗ рдкреИрдЯрд░реНрди рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЖрдо рд╕рд╣рдорддрд┐ рджреЗрдЦрддреЗ рд╣реИрдВред
Svelte рдРрдкреНрд╕ рдореЗрдВ, рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ Slot рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛, рдореЗрд░реА рдирдЬрд╝рд░ рдореЗрдВ, рдПрдХ рдПрдВрдЯреА-рдкреИрдЯрд░реНрди рд╣реИред рдпрд╣ рдкрд░рд┐рд╣рд╛рд░реНрдп рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ JavaScript рдирд┐рд╖реНрдкрд╛рджрди рдУрд╡рд░рд╣реЗрдб рднреА рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ)ред
