рдЕрдкрдиреЗ рдкреНрд░рд╢реНрди рдХреЛ рдкреВрдЫреЗрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдЖрдкрдХреЗ рдЪреБрдиреЗ рд╣реБрдП AI рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
рдЗрд╕ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдПрдХ AI рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХреА рдЧрдИ рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг рджреЗрдЦреЗрдВрдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ GitHub рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдХреЗ рдпреЛрдЧрджрд╛рди рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП GitHub рд▓рд┐рдВрдХрджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ Markdown рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рд╕рд╣реА Svelte i18n рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреИрд╕реЗ рдЪреБрдиреЗрдВ
Svelte i18n рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдЗрди-рдмрд┐рд▓реНрдЯ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ $t рдирд╣реАрдВ, рдХреЛрдИ locale primitive рдирд╣реАрдВ, рдХреЛрдИ message format рдирд╣реАрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдПрдХ third-party рдЪрдпрди рд╣реИ, рдФрд░ Svelte ecosystem рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдБ compile-time i18n рд╕рдмрд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрдореНрдореАрджрд╡рд╛рд░ React рдпрд╛ Vue рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдЕрдзрд┐рдХ рднрд┐рдиреНрди рд╣реИрдВред
рдпрд╣ рдЧрд╛рдЗрдб рдЙрди рд╕рд╡рд╛рд▓реЛрдВ рдХреА рд╕реВрдЪреА рджреЗрддреА рд╣реИ рдЬрд┐рдирдХрд╛ рдЙрддреНрддрд░ рдкрд╣рд▓реЗ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рдЙрди рдЙрддреНрддрд░реЛрдВ рдХреЛ svelte-i18n, Paraglide, typesafe-i18n, wuchale рдФрд░ Intlayer рд╕реЗ рдореИрдк рдХрд░рддреА рд╣реИ, Vite + Svelte рдФрд░ SvelteKit рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдПред
рд╡рд┐рд╖рдп рд╕реВрдЪреА
рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЫрд╣ рдкреНрд░рд╢реНрди
- Vite SPA рдпрд╛ SvelteKit? рдПрдХ SPA рдореЗрдВ module-level store рд╕рд╣реА рд╣реИ: рдПрдХ рдЯреИрдм, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдПрдХ localeред SvelteKit рдкрд░ рд╡рд╣реА singleton рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдорд╡рд░реНрддреА рдЕрдиреБрд░реЛрдзреЛрдВ (concurrent requests) рдореЗрдВ рд╕рд╛рдЭрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдиреБрд░реЛрдз B, рдЕрдиреБрд░реЛрдз A рдХреА рднрд╛рд╖рд╛ рдореЗрдВ рд░реЗрдВрдбрд░ рд╣реЛрддрд╛ рд╣реИред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рддреЛ рдЖрдкрдХреЛ per-request shape (context,
locals) рджреЗрддреА рд╣реИ рдпрд╛ рдЗрд╕реЗ рдЖрдк рдкрд░ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИред - рдЕрдиреБрд╡рд╛рдж рдХреМрди рд▓рд┐рдЦрддрд╛ рд╣реИ? рдбреЗрд╡рд▓рдкрд░реНрд╕, рдПрдХ TMS, ICU рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдбрд┐рд▓реАрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдЬреЗрдВрд╕реА, рдпрд╛ рдПрдХ AI pipelineред
svelte-i18nICU рдмреЛрд▓рддрд╛ рд╣реИред Paraglide рдФрд░typesafe-i18nрдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдкрдиреЗ рд╡реЗрдВрдбрд░ рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░реЗрдВред - рдХрд┐рддрдиреЗ locales рдФрд░ рдкреЗрдЬ рд╣реИрдВ? рджреЛ locales рдФрд░ рдкрд╛рдБрдЪ рдкреЗрдЬ рд╕рдм рдХреБрдЫ рд╢рд┐рдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджрд╕ locales рдФрд░ рдЪрд╛рд▓реАрд╕ routes рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рдФрд░ runtime catalogs рддрдерд╛ compiled messages рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдореБрдЦреНрдп рд▓рд╛рдЧрдд рдмрди рдЬрд╛рддрд╛ рд╣реИред
- рдХреНрдпрд╛ рдЖрдкрдХреЛ keys рдкрд░ types рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?
$_("cart.totl")svelte-i18nрдореЗрдВ рдПрдХ runtime рд╡рд┐рдлрд▓рддрд╛ рд╣реИред Compile-time рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдЗрд╕реЗ рдмрдирд╛рд╡рдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣реА рдПрдХ type error рдмрдирд╛ рджреЗрддреА рд╣реИрдВред - Svelte 4 stores рдпрд╛ Svelte 5 runes? Runes locale state рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирд╣реАрдВред рд▓реЗрдХрд┐рди рдПрдХ
.tsрдлрд╝рд╛рдЗрд▓ рдореЗрдВ$stateрдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЪрд░ (plain variable) рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк Svelte 5 рдкрд░ рд╣реИрдВ рддреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ runtime рдХреЛ rune-aware рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред - рдХреНрдпрд╛ рдЖрдк repo рдореЗрдВ generated files рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? Paraglide рдФрд░
typesafe-i18nрджреЛрдиреЛрдВ рдЖрдкрдХреЗ source tree рдореЗрдВ JavaScript рдпрд╛ TypeScript рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдХреБрдЫ рдЯреАрдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рд╣реИрдВ, рджреВрд╕рд░реЛрдВ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рд╢рд╛рдЦрд╛ (parallel branch) рдкрд░ merge conflicts рдорд┐рд▓рддреЗ рд╣реИрдВред
рдЙрддреНрддрд░реЛрдВ рдХреЛ рд▓рд┐рдЦ рд▓реЗрдВред рдиреАрдЪреЗ рджреА рдЧрдИ рд╣рд░ рдмрд╛рдд рдЙрди рдкрд░ рд╡рд╛рдкрд╕ рд╕рдВрджрд░реНрднрд┐рдд рд╣реЛрддреА рд╣реИред
рдПрдХ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдкрд░рд┐рджреГрд╢реНрдп
Svelte i18n, React рдпрд╛ Vue рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдЖрдпрд╛, рдФрд░ рд╕реАрдзреЗ compile-time рддрд░рдВрдЧреЛрдВ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ред

JSON рдХреИрдЯрд▓реЙрдЧ, intl-messageformat рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ ICU, module-level stores ($locale, $_) рдореЗрдВ localeред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд, SSR рд╡рд╛рдпрд░рд┐рдВрдЧ рдЖрдкрдХреА рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░реА рд╣реИред
рдПрдХ рдЬрдирд░реЗрдЯрд░ рдЖрдкрдХреЗ рдХреИрдЯрд▓реЙрдЧ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ typed accessors ($LL.cart.total()) рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред рдордЬрдмреВрдд рдореЙрдбрд▓, repo рдореЗрдВ generated files, рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд░рд╣реА рд╣реИред
Paraglide рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдХреЛ рдПрдХ exported function рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ bundler рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ tree-shake рдХрд░ рд╕рдХреЗ рдЬрд┐рд╕реЗ рдХреЛрдИ route рдХрднреА рдХреЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред wuchale рдмрд┐рд▓реНрдб рдХреЗ рд╕рдордп рдорд╛рд░реНрдХрдЕрдк рд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред Intlayer рдкреНрд░рддрд┐ рдШрдЯрдХ рд╕рд╛рдордЧреНрд░реА рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ types рддрдерд╛ рдкреНрд░рддрд┐-рдШрдЯрдХ рдбрд┐рдХреНрд╢рдирд░реА рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
JavaScript i18n рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рддрд░рдВрдЧ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред
рд╡рд╣ рдирд┐рд░реНрдгрдп рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ: рд╕рд╛рдордЧреНрд░реА рдХрд╣рд╛рдБ рд░рд╣рддреА рд╣реИ рдФрд░ рдХрдм рд▓реЛрдб рд╣реЛрддреА рд╣реИ
рджреЛ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯрдЕрдк рдХреЗ рдмреАрдЪ рдмрдВрдбрд▓ рдХреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдВрддрд░ рдХреЛ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ:
- рдХреЗрдВрджреНрд░реАрдХреГрдд рдпрд╛ рд╕реНрдХреЛрдкреНрдб рд╕рд╛рдордЧреНрд░реАред рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ
locales/en.json, рдпрд╛ рдкреНрд░рддрд┐ рдШрдЯрдХ рдПрдХ рдШреЛрд╖рдгрд╛ред - Static рдпрд╛ dynamic importред рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рд╕рдм рдХреБрдЫ, рдпрд╛ рд╕рдХреНрд░рд┐рдп locale (рдФрд░ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╕рдХреНрд░рд┐рдп route) рдорд╛рдВрдЧ рдкрд░ рдкреНрд░рд╛рдкреНрдд (fetch) рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдЧреНрд░рд╛рдлрд╝ 1 рд╕реЗ 10 рдкреЗрдЬреЛрдВ рдХреЗ рдПрдХ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдРрдк рдХреЗ рд▓рд┐рдП рдкреЗрд▓реЛрдб рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ 1 рд╕реЗ 10 locales рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдкреНрд░рддрд┐ рдкреЗрдЬ рд▓рдЧрднрдЧ 30 KB рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рдеред

svelte-i18n рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдКрдкрд░-рдмрд╛рдПрдБ рдореЗрдВ рдмреИрдарддрд╛ рд╣реИ: register("fr", () => import("./fr.json")) рдЖрдкрдХреЛ рдкреНрд░рддрд┐ locale dynamic loading рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ locale catalog рдПрдХ рд╕рд┐рдВрдЧрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рд╣рд░ рдкреЗрдЬ рдХреА рдХреЙрдкреА рд▓реЛрдб рд╣реЛ рдЬрд╛рддреА рд╣реИред Paraglide рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓рд╛ рд╣реИ: рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рд╕рдВрджреЗрд╢ рдХрд╛ рдЕрдкрдирд╛ export рд╣реЛрддрд╛ рд╣реИ, tree-shaking рдЖрдкрдХреЛ рдкреЗрдЬ рдХрд╛ рдЕрдХреНрд╖ рдореБрдлрд╝реНрдд рдореЗрдВ рджреЗ рджреЗрддрд╛ рд╣реИ, рдФрд░ Svelte benchmark рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ Vite + Svelte рдкрд░ рд╡рд┐рдЬреНрдЮрд╛рдкрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдпрд╣ React рдФрд░ Next.js рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛)ред Intlayer рдкреНрд░рддрд┐-рдШрдЯрдХ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрд╕реА рдХреЛрдиреЗ рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИред
рдпрджрд┐ рдкреНрд░рд╢реНрди 3 рдХрд╛ рдЖрдкрдХрд╛ рдЙрддреНрддрд░ "рдХрдИ рдкреЗрдЬ" рдерд╛, рддреЛ рдХрд┐рд╕реА рднреА API рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕ рдЦрдВрдб рдХреЛ рдорд╣рддреНрд╡ рджреЗрдВред Per-component рдмрдирд╛рдо centralized i18n рдкреЛрд╕реНрдЯ рдЗрд╕реА рдЯреНрд░реЗрдб-рдСрдл рдХреЗ рд░рдЦрд░рдЦрд╛рд╡ рдкрдХреНрд╖ рдХреЛ рдХрд╡рд░ рдХрд░рддреА рд╣реИред
рдЙрдореНрдореАрджрд╡рд╛рд░
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЖрдХрд╛рд░ Svelte benchmark рд╕реЗ рд╣реИрдВ: 10-рдкреЗрдЬ, 10-locale рдРрдк рдкрд░ рдмрдВрдбрд▓рд┐рдВрдЧ, tree-shaking рдФрд░ minification рдХреЗ рдмрд╛рдж рдПрдХ рдЦрд╛рд▓реА рдШрдЯрдХ рдореЗрдВ store рдкреНрд▓рд╕ accessorред рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рднреА рдбреЗрдЯрд╛ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдореЛрдбрд▓ рдореЗрдВ рдЦреЛрд▓реЗрдВ
| рд▓рд╛рдЗрдмреНрд░реЗрд░реА | рд╕рдВрджреЗрд╢ рдХрд╣рд╛рдБ рд░рд╣рддреЗ рд╣реИрдВ | Locale state | рдЯрд╛рдЗрдк рд╕реБрд░рдХреНрд╖рд╛ | Message format | Per-route splitting | рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЖрдХрд╛рд░ |
|---|---|---|---|---|---|---|
svelte-i18n | рдкреНрд░рддрд┐ locale JSON рдХреИрдЯрд▓реЙрдЧ | Module-level Svelte store | 2/5 тАФ Manual union | ICU | No | ~16.6 kB |
typesafe-i18n | Generated TS modules | Store adapter | 4/5 тАФ Generated | Own | Partial | Small |
| Paraglide | inlang рдкреНрд░реЛрдЬреЗрдХреНрдЯ, functions рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд | Cookie, URL рдпрд╛ storage рд╕реЗ рдкреНрд░рддрд┐ рдХреЙрд▓ рдкрдврд╝рд╛ рдЧрдпрд╛ | 3.5/5 тАФ Generated | Own | Yes, tree-shaking рджреНрд╡рд╛рд░рд╛ | Near zero (рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдЬрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рдХрд╛рд░рдг) |
wuchale | рдмрд┐рд▓реНрдб рдкрд░ рдорд╛рд░реНрдХрдЕрдк рд╕реЗ рдирд┐рдХрд╛рд▓рд╛ рдЧрдпрд╛ | Store | N/A (keys рдирд╣реАрдВ) | Own | Yes | ~30.7 kB |
| Intlayer | рдШрдЯрдХ рдХреЗ рдмрдЧрд▓ рдореЗрдВ .content.ts | Context plus store, rune-aware | 5/5 тАФ Generated, default | Intlayer (+ ICU, i18next, PO) | Yes, рдкреНрд░рддрд┐ рдШрдЯрдХ | ~3.6 kB |
рд╕рдВрдЦреНрдпрд╛рдПрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╣реИрдВред рдЕрдХреЗрд▓реЗ рдЖрдХрд╛рд░ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдРрдк рдкрд░ рдЪрд▓рд╛рдПрдВред рдЯрд╛рдЗрдк рд╕реБрд░рдХреНрд╖рд╛: 5/5 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ URL рдлреЙрд░реНрдореЗрдЯрд░ рдФрд░ рд╣реЗрд▓реНрдкрд░реНрд╕ рд╕рд╣рд┐рдд рдХреБрдВрдЬрд┐рдпрд╛рдБ, рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╣рд░ рд▓реЛрдХреЗрд▓ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдореИрдиреНрдпреБрдЕрд▓ рд╕реЗрдЯрдЕрдк рдХреЗ рдЬрд╛рдБрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВред
Paraglide рдХрд╛ рд╢реВрдиреНрдп рдХреЗ рдХрд░реАрдм рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдХрд╛рд░ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдХрд╛рд░рдг рд╣реИ: runtime рдЖрдкрдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред Intlayer рдХреЛ vite-intlayer рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдмрд┐рд▓реНрдб рдЪрд░рдг рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред
рдХрдорд┐рдЯ рдЧрддрд┐рд╡рд┐рдзрд┐
рдХрдорд┐рдЯреНрд╕ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд╣рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд┐рддрдирд╛ рдХрд╛рдо рд╣реЛ рд░рд╣рд╛ рд╣реИред рдПрдХ рдореЛрдиреЛрд░реЗрдкреЛ рдЕрдкрдиреЗ рд╣рд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдкреИрдХреЗрдЬ рдХреЛ рдЧрд┐рдирддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЧреБрдгрд╡рддреНрддрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рд╕рдВрдХреЗрдд рдорд╛рдиреЗрдВред
- kaisermann/svelte-i18n
- codingcommons/typesafe-i18n
- opral/paraglide-js
- wuchalejs/wuchale
- aymericzip/intlayer
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмреНрд░рд╛рдВрдЪ рдкрд░ рдХрдорд┐рдЯ, рд╕реНрд░реЛрдд: GitHub APIред
npm рдбрд╛рдЙрдирд▓реЛрдб
- svelte-i18n
- typesafe-i18n
- @inlang/paraglide-js
- wuchale
- svelte-intlayer
рд╕реНрд░реЛрдд: npm рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдбрд╛рдЙрдирд▓реЛрдб APIред
рдбрд╛рдЙрдирд▓реЛрдб рд╕рдмрд╕реЗ рдкреБрд░рд╛рдиреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдкреБрд░рд╕реНрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдХреЛ рдирд╣реАрдВред рд╡рд░реНрд╖реЛрдВ рдкрд╣рд▓реЗ рдЬрд╛рд░реА рд╣реБрдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдЬ рднреА рд╣рд░ рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдиреЗ рдЙрд╕реЗ рддрдм рдЪреБрдирд╛ рдерд╛, рд╣рд░ CI рд░рди рдореЗрдВ рдФрд░ рд╣рд░ рдЙрд╕ рдкреИрдХреЗрдЬ рдореЗрдВ рдЬреЛ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдирдП рдЪреБрдирд╛рд╡ рд╕реЗ рдЬрд╝реНрдпрд╛рджрд╛ рдЬрдбрд╝рддрд╛ рдХреЛ рдорд╛рдкрддреА рд╣реИред
AI рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЛ рдФрд░ рдмрдврд╝рд╛рддреЗ рд╣реИрдВред next-intl, i18next рдФрд░ vue-i18n рдЙрд╕ рдХреЛрдб рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рд╡реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд╣реБрдП, рдЗрд╕рд▓рд┐рдП рд╡реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрдиреНрд╣реЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реБрдЭрд╛рддреЗ рд╣реИрдВред рд╣рд░ рд╕реБрдЭрд╛рд╡ рдбрд╛рдЙрдирд▓реЛрдб рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдЧрд▓реЗ рд╕реБрдЭрд╛рд╡ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИред рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдирд╣реАрдВ, рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддреБрд▓рдирд╛ рдХрд░реЗрдВред
рдЕрдкрдиреЗ рдЙрддреНрддрд░реЛрдВ рдХрд╛ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдорд┐рд▓рд╛рди рдХрд░реЗрдВ
svelte-i18nред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ, $_ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИ, рдФрд░ register рдкреНрд▓рд╕ waitLocale() рдкреНрд░рддрд┐ locale lazy loading рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдкреЗрдВрдЯ рдХреЛ isLoading рдкрд░ рд░реЛрдХреЗрдВ рдирд╣реАрдВ рддреЛ рдЖрдк raw keys рдлреНрд▓реИрд╢ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ рдРрдк рдореЗрдВ рдмрд╛рдж рдореЗрдВ рд╕рд░реНрд╡рд░ рдЬреБрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рддреЛ module store рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкрд╣рд▓реЗ рджрд┐рди рд╕реЗ рд╣реА locale рдХреЛ Svelte context рдореЗрдВ рд░рдЦреЗрдВ; рдЗрд╕рдореЗрдВ рдЕрднреА рдХреБрдЫ рднреА рдЦрд░реНрдЪ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдмрдЧ рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред
рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдЗрд╕реЗ рддрдп рдХрд░рддреА рд╣реИред svelte-i18n SvelteKit рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐-рдЕрдиреБрд░реЛрдз рд╡рд╛рдпрд░рд┐рдВрдЧ (hooks.server.ts, locals, load, рдлрд┐рд░ setContext) рдЖрдкрдХреЛ рд▓рд┐рдЦрдиреА рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реВрдХреНрд╖реНрдорддрд╛ рд╕реЗ рдЧрд▓рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред Paraglide рдПрдХ SvelteKit рдПрдХреАрдХрд░рдг рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд░реВрдЯрд┐рдВрдЧ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐ рдХреЙрд▓ locale рдкрдврд╝рддрд╛ рд╣реИ, рдЬреЛ singleton рд╕реЗ рдмрдЪрддрд╛ рд╣реИред Intlayer load рдбреЗрдЯрд╛ рд╕реЗ locale рдХреЛ context рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред SvelteKit i18n рдкреЛрд╕реНрдЯ [[lang]] рдмрдирд╛рдо reroute рд╡рд┐рдХрд▓реНрдк рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЪреБрдирдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪреБрдирдирд╛ рдЪрд╛рд╣рд┐рдПред
svelte-i18n intl-messageformat рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ICU-native рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕реАрдзреЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡реЗрдВрдбрд░реЛрдВ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИред Paraglide рдФрд░ typesafe-i18n рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд░реВрдкрд╛рдВрддрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред Intlayer рдХрд╛ ICU рд╕рдорд░реНрдерди рдЖрдВрд╢рд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЖрдЬ ICU рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдПрдХ рдмреНрд▓реЙрдХрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдиреЗрдВред
Compile-timeред Paraglide рдХреА tree-shaking Vite + Svelte рдкрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд▓рд╛рдЧрдд рд╢реВрдиреНрдп рдХреЗ рдХрд░реАрдм рд╣реИред Intlayer рдХреА рдкреНрд░рддрд┐-рдШрдЯрдХ рдбрд┐рдХреНрд╢рдирд░реА repo рдореЗрдВ generated files рдХреЗ рдмрд┐рдирд╛ рд╕рдорд╛рди рдкрд░рд┐рдгрд╛рдо рджреЗрддреА рд╣реИрдВред svelte-i18n ICU рдкрд╛рд░реНрд╕рд░ рдФрд░ рд╕рдВрдкреВрд░реНрдг рдХреИрдЯрд▓реЙрдЧ рдХреЛ рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдкрд╣рд▓реЗ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ svelte-intlayer рд╕реЗ рд▓рдЧрднрдЧ 4.5├Ч рдмрдбрд╝рд╛ рдмреИрдарддрд╛ рд╣реИред
рдПрдХ рд╕рд╛рдзрд╛рд░рдг svelte-i18n рд╕реЗрдЯрдЕрдк рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА, рдЬрд╣рд╛рдБ рдПрдХрдорд╛рддреНрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдПрдХ рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдпреВрдирд┐рдпрди рд╣реИ рдЬреЛ рддреБрд░рдВрдд JSON рд╕реЗ рднрдЯрдХ рдЬрд╛рддрд╛ рд╣реИред typesafe-i18n, Paraglide рдФрд░ Intlayer рд╕рднреА рд╕рд╛рдордЧреНрд░реА рд╕реЗ types рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рдХреЛрдбрдмреЗрд╕ рдХреЛ рд╕реМрдВрдкрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ typesafe-i18n рдХреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рд▓рд╛рдкрддрд╛ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдкреЛрд╕реНрдЯ рддреБрд▓рдирд╛ рдХрд░рддреА рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ рдХреНрдпрд╛ рдкрдХрдбрд╝рддрд╛ рд╣реИред
рдпрд╣ Paraglide рдФрд░ typesafe-i18n рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред svelte-i18n рдФрд░ Intlayer рдЕрдкрдиреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ node_modules рдпрд╛ рдмрд┐рд▓реНрдб рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ; Intlayer рдХреЗ рд╕рд╛рде .content.ts рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╕реНрд░реЛрдд рд╣реИрдВ, рд╕рдВрдХрд▓рд┐рдд рдбрд┐рдХреНрд╢рдирд░реА рдФрд░ types .intlayer/ рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЕрдирджреЗрдЦрд╛ (ignored) рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рддрдм рдХреЗрдВрджреНрд░реАрдХреГрдд JSON рдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╕рд╣реА рдард╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрднреЛрдХреНрддрд╛ рдирд╣реАрдВ рдмрдЪрддрд╛ рд╣реИред Colocated рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ CLI рдЬреЛ рдЫреВрдЯреЗ рд╣реБрдП locales рдХреЛ рднрд░рддрд╛ рд╣реИ, рдЫреЛрдЯрд╛ рд░рд╛рд╕реНрддрд╛ рд╣реИред Intlayer рдХрд╛ fill рдХрдорд╛рдВрдб рдЖрдкрдХреА рдЕрдкрдиреА API key (OpenAI, Anthropic, Mistral, Gemini) рдХреЗ рд╡рд┐рд░реБрджреНрдз рдЪрд▓рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЙрд╕реА рдХрд╛ рдкреБрди: рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓рд╛ рд╣реИред Paraglide рдХрд╛ inlang рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдЕрдкрдиреА рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╕рдордХрдХреНрд╖ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╣рд╛рдБ рдХрдо рдкрдбрд╝рддреА рд╣реИ
svelte-i18n: рд╕реЗрдЯ рдХрд╛ рд╕рдмрд╕реЗ рднрд╛рд░реА, рдХреЛрдИ key types рдирд╣реАрдВ, рдХреЛрдИ per-route splitting рдирд╣реАрдВ, module-level store рдЬреЛ SvelteKit рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдкрд╛рд░ рд▓реАрдХ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ context рд╡рд╛рдпрд░ рди рдХрд░реЗрдВредtypesafe-i18n: рдПрдХ watcher рдкреНрд░рдХреНрд░рд┐рдпрд╛, repo рдореЗрдВ generated files, рдФрд░ рдПрдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЬреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд░рд╣реА рд╣реИред- Paraglide: generated files рдХреЛ repo рдореЗрдВ рдХрдорд┐рдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рд░ рдкреБрд╢ рд╕реЗ рдкрд╣рд▓реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдорд╛рдирд╛рдВрддрд░ рд╢рд╛рдЦрд╛рдУрдВ рдкрд░ merge conflicts, рдФрд░ locale рдХреЛ store рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдХреЙрд▓ рдкрд░ cookie рдпрд╛ storage рд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ locale рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдХрд╛рдо рдмрдврд╝рддрд╛ рд╣реИред
wuchale: рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рд╖реНрдХрд░реНрд╖рдг рд╡рд┐рдЪрд╛рд░, рдЕрднреА рднреА рд╢реБрд░реБрдЖрддреАред React рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рд╕рдВрдмрдВрдзреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рддрд╛ рд░реА-рд░реЗрдВрдбрд░ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдкрддрд▓рд╛ рд╣реИред- Intlayer: рдЕрдирд┐рд╡рд╛рд░реНрдп build plugin, рдЫреЛрдЯрд╛ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо, рдЖрдВрд╢рд┐рдХ ICU рд╕рдорд░реНрдерди, рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдкреВрд░реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдлреИрд▓реА рд╣реБрдИ рд╕рд╛рдордЧреНрд░реА, рдЗрд╕рд▓рд┐рдП рдЕрдиреБрд╡рд╛рджрдХ рдХреЗ рд▓рд┐рдП рдПрдХ JSON рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреВрд▓рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд▓реНрдк рдХреЛрдб рдореЗрдВ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ
рд╡рд╣реА рдШрдЯрдХ, рдПрдХ рд╢реАрд░реНрд╖рдХ рдФрд░ рдПрдХ рдмрд╣реБрд╡рдЪрди рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рд░реНрдЯ рд╕рд╛рд░рд╛рдВрд╢, рдкреНрд░рддреНрдпреЗрдХ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛ рдорд╛рд░реНрдХрдЕрдк рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╣реИ рдХрд┐ рд╕рд╛рдордЧреНрд░реА рдХрд╣рд╛рдБ рд░рд╣рддреА рд╣реИ, locale рдХреИрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдк рдЪреЗрдХрд░ рдХреНрдпрд╛ рдЬрд╛рдирддрд╛ рд╣реИред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
intl-messageformat рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ ICU, module-level store рдореЗрдВ localeред $_ рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ; рдПрдХрдорд╛рддреНрд░ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдПрдХ рдпреВрдирд┐рдпрди рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдПрдХ рдЙрддреНрдкрдиреНрди, typed рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕реЗ рдХрднреА рдХреЙрд▓ рди рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ tree-shake рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред paraglide/ рдлрд╝реЛрд▓реНрдбрд░ рдЖрдкрдХреЗ repo рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ locale рдХреЛ store рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддрд┐ рдХреЙрд▓ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
Watcher рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди Typed accessorsред рдореЙрдбрд▓ рдордЬрдмреВрдд рд╣реИ; generated files repo рдореЗрдВ рд░рд╣рддреА рд╣реИрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╢рд╛рдВрдд рд░рд╣реА рд╣реИред
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВ
рдШрдЯрдХ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА localesред useIntlayer рдПрдХ readable store рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП $content рд╡рд╣ рдСрдЯреЛ-рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ locale рдХреЛ module singleton рдХреЗ рдмрдЬрд╛рдп context (SSR-рд╕реБрд░рдХреНрд╖рд┐рдд) рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА svelte-i18n рдкрд░ рд╣реИрдВ? @intlayer/svelte-i18n compat adapter рдкреИрдХреЗрдЬ рдХреЛ рдмрдВрдбрд▓рд░ рд╕реНрддрд░ рдкрд░ рдЙрдкрдирд╛рдо (alias) рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ $_, $date, $number рдФрд░ рдЖрдкрдХреА рдлреНрд▓реИрдЯ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдХрд╛рдо рдХрд░рддреА рд░рд╣реЗрдВ рдЬрдмрдХрд┐ Intlayer рд╕рд╛рдордЧреНрд░реА рдкрд░реЛрд╕рддрд╛ рд╣реИред
рдкреНрд░рддрд┐рдмрджреНрдз рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рддрд╛рд▓рд┐рдХрд╛ рдЖрдкрдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЖрдЬ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреНрдпрд╛ рдХрд░рддреА рд╣реИред рдпреЗ рдмрд┐рдВрджреБ рдЖрдкрдХреЛ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣рдирд╛ рдХреИрд╕рд╛ рд╣реЛрдЧрд╛ред
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдХрдорд┐рдЯреНрд╕, рд╕рдорд╕реНрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп, рдФрд░ рдХреНрдпрд╛ рдЕрдВрддрд┐рдо рд▓рдШреБ рд░рд┐рд▓реАрдЬрд╝ рдЗрд╕ рд╡рд░реНрд╖ рдереАред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрдиреБрд░рдХреНрд╖рдХ (maintainer) рдХреЗ рдПрдХ рдордЬрдмреВрдд рдбрд┐рдЬрд╝рд╛рдЗрди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╣реИред
npm рдбрд╛рдЙрдирд▓реЛрдб рджреНрд╡рд╛рд░рд╛ рдЪрдпрди рди рдХрд░реЗрдВред
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕реНрдерд╛рдкрд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡рд╣ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╢рд┐рдк рдХреА рдЧрдИ рдереА, рд╡рд╣ рдирд╣реАрдВ рдЬреЛ 2026 Svelte рдХреЛрдбрдмреЗрд╕ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛред рдбрд╛рдЙрдирд▓реЛрдб рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдорд╛рдкрддреЗ рд╣реИрдВ, рдЙрдкрдпреБрдХреНрддрддрд╛ рдХреЛ рдирд╣реАрдВред

рдкреВрдЫреЗрдВ рдХрд┐ рдЕрдиреБрд░рдХреНрд╖рдХ рдХреЛ рдХреМрди рднреБрдЧрддрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╡реЗ рдХреНрдпрд╛ рдмреЗрдЪрддреЗ рд╣реИрдВред
svelte-i18n рдХреЛ Crowdin рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕реЗ next-intl рдФрд░ vue-i18nред i18next рдХреЛ Locize рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред Tolgee, Paraglide (inlang) рдФрд░ Intlayer рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдирд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдПрдХ рд╡реЗрдВрдбрд░ рдЬрд┐рд╕рдХрд╛ рд░рд╛рдЬрд╕реНрд╡ рд╣реЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЕрдиреБрд╡рд╛рдж рд╕реЗ рдЖрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЖрдкрдХреЗ рдЯреВрд▓рдЪреЗрди рдХреЗ рдЕрдВрджрд░ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдореБрдлрд╝реНрдд рдмрдирд╛рдиреЗ рдХрд╛ рдмрд╣реБрдд рдХрдо рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИред Intlayer рдЗрд╕ рд╕реЗрдЯ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреА рдЕрдкрдиреА API key рдХреЗ рд╕рд╛рде CLI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ AI рдЕрдиреБрд╡рд╛рдж рдФрд░ рдПрдХ CMS рд╢рд┐рдк рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕реНрд╡рдпрдВ рд╣реЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрдпрд╛ рдпрд╣ AI-agent рддреИрдпрд╛рд░ рд╣реИ?
рдПрдЬреЗрдВрдЯ рдЕрднреА рднреА i18n рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддреЗ рд╣реИрдВ: рд╡реЗ locales рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, keys рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрджреЗрд╢ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА Agent Skills рдпрд╛ рдПрдХ MCP server рд╢рд┐рдк рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рдПрдЬреЗрдВрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реВрдЪреАрдмрджреНрдз, рднрд░ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХреЗ? рдФрд░ рдХреНрдпрд╛ рд╕рд╛рдордЧреНрд░реА рд▓реЛрдбрд┐рдВрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рдХреЛ рд╣рд░ рддрд┐рдорд╛рд╣реА рдореЗрдВ рдиреЗрдорд╕реНрдкреЗрд╕ рдФрд░ рд▓реЗрдЬрд╝реА рдЖрдпрд╛рдд рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреА рд╣реЛрдЧреА?
рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЯрд╛рдЗрдк рд╕реБрд░рдХреНрд╖рд╛ред
"рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд╛рдпрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ" рдирд╣реАрдВ рдмрд▓реНрдХрд┐ "рдПрдХ рдЧрд▓рдд рдХреБрдВрдЬреА рдПрдХ рдирдП рдЗрдВрд╕реНрдЯреЙрд▓ рдкрд░ tsc рдХреЛ рд╡рд┐рдлрд▓ рдХрд░рддреА рд╣реИ"ред рдЬрд╛рдБрдЪреЗрдВ рдХрд┐ рдЙрд╕ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЙрд╕ locale рдХреЗ рд╕рд╛рде рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрдиреБрд╡рд╛рдж рдЧрд╛рдпрдм рд╣реИред
рдЕрдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ред
рдХреИрдЯрд▓реЙрдЧ рдХреЗрд╡рд▓ рдмрдврд╝рддреЗ рд╣реИрдВред Intlayer рдХрд╛ рдмрд┐рд▓реНрдб рдЕрдкреНрд░рдпреБрдХреНрдд рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ (build.purge)ред Paraglide рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рджреНрд╡рд╛рд░рд╛ рд╡рд╣рд╛рдБ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЕрдирдХреЙрд▓реНрдб рд╕рдВрджреЗрд╢ рдлрд╝рдВрдХреНрд╢рди tree-shaken рд╣реЛрддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рд╕рдлрд╛рдИ рдХреЛ рдЖрдк рдкрд░ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ред
рдкрд╣рд▓реА рдЕрдиреБрд╡рд╛рджрд┐рдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрдХ рд╕реЗрдЯрдЕрдк рд╕рдордп, рдПрдХ LSP рдпрд╛ VS Code extension рдЬреЛ рд╣реЛрд╡рд░ рдкрд░ рдЕрдиреБрд╡рд╛рдж рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдШреЛрд╖рдгрд╛ рдкрд░ рдХреВрджрддрд╛ рд╣реИ, рднрд░рдиреЗ, рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдФрд░ рдкреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ CLI, рдЖрдкрдХреЗ рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рд╕реЗ рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдирд┐рдХрд╛рд▓рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдпрд╛ рдПрдХреНрд╕рдЯреНрд░реИрдХреНрдЯрд░ рддрд╛рдХрд┐ рд╣рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдХреБрдВрдЬреА-рджрд░-рдХреБрдВрдЬреА рдкреНрд░рдмрдВрдзрд┐рдд рди рдХрд░рдирд╛ рдкрдбрд╝реЗ, рдФрд░ рдЧреИрд░-рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдмрд┐рдирд╛ рдкреБрд▓ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдХреЗ рд╕рд╛рдордЧреНрд░реА рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ (visual editor рдпрд╛ CMS)ред
рдЕрдХреНрд╕рд░ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╢реНрди
рдПрдХ рдЫреЛрдЯреЗ рдХреИрдЯрд▓реЙрдЧ рд╡рд╛рд▓реЗ Vite SPA рдХреЗ рд▓рд┐рдП, рд╣рд╛рдБред рдпрд╣ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╣реИ рдФрд░ ICU рдЕрдиреБрдХреВрд▓рддрд╛ рдХрдИ рдЯреАрдореЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдпрдиреЗ рд░рдЦрддреА рд╣реИред SvelteKit рдкрд░ рдпрд╛ рдХреБрдЫ рджрд░реНрдЬрди рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмрд╛рдж, рдЗрд╕рдХреА рд▓рд╛рдЧрдд (рдХреЛрдИ types рдирд╣реАрдВ, рдХреЛрдИ scoping рдирд╣реАрдВ, рд╕рд╛рдЭрд╛ store) рдЬреБрдбрд╝рдиреЗ рд▓рдЧрддреА рд╣реИред
Vite + Svelte рдкрд░, рд╣рд╛рдБ, рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред TanStack Start рдпрд╛ Next.js рдХреЗ рд╕рд╛рде React рдкрд░ рдпрд╣ рдЙрд╕реА рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реБрдЖред рдХрд┐рд╕реА рднреА рдкрд░рд┐рдгрд╛рдо рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдЯреИрдХ рдореЗрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВред
рд╡реЗ рдЖрдкрдХреА рдЕрдкрдиреА locale state рдХреЗ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ, рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдирд╣реАрдВред рдЬреЛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ runtime Svelte 5 рдкрд░ rune-aware рд╣реИ рдФрд░ рдХреНрдпрд╛ рдпрд╣ module store рдХреЗ рдмрдЬрд╛рдп context рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
рдЕрдкреНрд░рддреНрдпрдХреНрд╖ рд░реВрдк рд╕реЗред рдХреНрд░реЙрд▓рд░реНрд╕ рд░реВрдЯрд┐рдВрдЧ, hreflang, <html lang> рдФрд░ рд╕рд░реНрд╡рд░-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП HTML рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВред hreflang рдЧрд╛рдЗрдб рджреЗрдЦреЗрдВред
рдЖрдЧреЗ рдкрдврд╝рдирд╛
рдпрд╣реА рдЧрд╛рдЗрдб
рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ
рдЕрднреА рддрдХ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВред рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ рд╡реНрдпрдХреНрддрд┐ рдмрдиреЗрдВред
