Author:
    Creation:2026-01-21Last update:2026-09-19

    astro-intlayer рдкреИрдХреЗрдЬ

    astro-intlayer рдкреИрдХреЗрдЬ Astro рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдореЗрдВ Intlayer рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд▓реЛрдХреЗрд▓-рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ, рд╢рдмреНрджрдХреЛрд╢ рдкреНрд░рдмрдВрдзрди, рдмрд┐рд▓реНрдб-рдЯрд╛рдЗрдо рдкреЗрдЬ рд░реАрд░рд╛рдЗрдЯрд┐рдВрдЧ, рдЕрдиреБрд░реЛрдз рдорд┐рдбрд▓рд╡реЗрдпрд░, рдФрд░ рд╕рд░реНрд╡рд░-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП .astro рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рджреЛрдиреЛрдВ рдореЗрдВ рдмрд╣реБрднрд╛рд╖реА рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдХреНрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред

    рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди

    bash
    npm install astro-intlayer
    

    рдПрдХреНрд╕рдкреЛрд░реНрдЯреНрд╕

    рдПрдХреАрдХрд░рдг

    astro-intlayer рдкреИрдХреЗрдЬ рдПрдХ Astro рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Intlayer рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import { intlayer } from "astro-intlayer";
    

    рдпрд╛ astro.config.mjs рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдореНрдкреЛрд░реНрдЯ:

    ts
    import { defineConfig } from "astro/config";
    import intlayer from "astro-intlayer";
    
    export default defineConfig({
      integrations: [intlayer()],
    });
    
    рдлрд╝рдВрдХреНрд╢рдирд╡рд┐рд╡рд░рдгрд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
    intlayerAstro рдПрдХреАрдХрд░рдг рдЬреЛ рд╢рдмреНрджрдХреЛрд╢ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, Vite рдкреНрд▓рдЧрдЗрдиреНрд╕ (рдЙрдкрдирд╛рдо, рд░реВрдЯрд┐рдВрдЧ рдкреНрд░реЙрдХреНрд╕реА, рдкреНрд░реВрди) рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЕрдиреБрд░реЛрдз рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд░реАрд░рд╛рдЗрдЯреЗрдб URL рдкрд░ рдкреНрд░реА-рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП рдкреЗрдЬ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддрд╛ рд╣реИредintlayer

    рд╣реБрдХреНрд╕ (рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ)

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import { useIntlayer, useDictionary, useLocale } from "astro-intlayer";
    
    рд╣реБрдХрд╡рд┐рд╡рд░рдгрд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
    useIntlayerрдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдЪреБрдирддрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреА рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рд╛рдордЧреНрд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред .astro рдлреНрд░рдВрдЯрдореИрдЯрд░ рдореЗрдВ, рдпрд╣ Astro.locals рд╕реЗ рдЕрдиреБрд░реЛрдз рд▓реЛрдХреЗрд▓ рдкрдврд╝рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ <script> рдореЗрдВ, рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдЯреЛрд░ рд╕реЗ рдкрдврд╝рддрд╛ рд╣реИредuseIntlayer
    useDictionaryрд╢рдмреНрджрдХреЛрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╣рд▓ рдХрд┐рдП рдЧрдП рд▓реЛрдХреЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордЧреНрд░реА рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдлреНрд░рдВрдЯрдореИрдЯрд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИредuseDictionary
    useLocaleрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓, рдЙрдкрд▓рдмреНрдз рд▓реЛрдХреЗрд▓реНрд╕, рдФрд░ рд▓реЛрдХреЗрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИредuseLocale

    рдорд┐рдбрд▓рд╡реЗрдпрд░ (astro-intlayer/middleware)

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import { onRequest } from "astro-intlayer/middleware";
    
    рдПрдХреНрд╕рдкреЛрд░реНрдЯрдкреНрд░рдХрд╛рд░рд╡рд┐рд╡рд░рдгрд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
    onRequestMiddlewareHandlerAstro рдорд┐рдбрд▓рд╡реЗрдпрд░ рдЬреЛ рдЕрдиреБрд░реЛрдз рд▓реЛрдХреЗрд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ Astro.locals.intlayer рдЬреЛрдбрд╝рддрд╛ рд╣реИред intlayer() рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредonRequest

    рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import { getIntlayerLocals } from "astro-intlayer";
    
    рдлрд╝рдВрдХреНрд╢рдирд╡рд┐рд╡рд░рдгрд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝
    getIntlayerLocalsAstro.locals рдХреЗ рдмрд╛рд╣рд░ рдЕрдиреБрд░реЛрдз рд╕реНрдЯреЛрд░реЗрдЬ рд╕реНрдХреЛрдк рд╕реЗ рд╡рд░реНрддрдорд╛рди IntlayerLocals рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рдиред-

    рдХреНрд▓рд╛рдЗрдВрдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ (astro-intlayer/client)

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import {
      useIntlayer,
      useDictionary,
      useDictionaryDynamic,
      useLocale,
      useLocaleStorage,
      useLocaleCookie,
      getIntlayer,
      getDictionary,
      installIntlayer,
      setLocaleInStorage,
      setLocaleCookie,
      localeInStorage,
      localeCookie,
    } from "astro-intlayer/client";
    

    рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ <script> рдЯреИрдЧ рдХреЗ рдЕрдВрджрд░ рдЗрдореНрдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ astro-intlayer рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ astro-intlayer/client (vanilla-intlayer рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд) рдкрд░ рдореИрдк рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рд╢рдмреНрджрдХреЛрд╢ рдЧреЗрдЯрд░реНрд╕, рд╕реНрдЯреЛрд░ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░реНрд╕ рдФрд░ рд▓реЛрдХреЗрд▓ рджреГрдврд╝рддрд╛ рдЙрдкрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

    рдлреЙрд░реНрдореИрдЯрд░реНрд╕ (astro-intlayer/format)

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import {
      useIntl,
      useDate,
      useNumber,
      useCurrency,
      usePercentage,
      useRelativeTime,
      useList,
      useUnit,
      useCompact,
    } from "astro-intlayer/format";
    
    рд╣реБрдХрд╡рд┐рд╡рд░рдг
    useIntlрдЕрдиреБрд░реЛрдз рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓реЛрдХреЗрд▓ рд╕реЗ рдмрдВрдзрд╛ рдПрдХ Intl рдЙрджрд╛рд╣рд░рдг рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рдФрд░ рд╕рджрд╕реНрдпрддрд╛ рдХреНрд╖рдорддрд╛рдПрдБ рд╣реЛрддреА рд╣реИрдВред
    useDateрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд╕реЗ рдкреВрд░реНрд╡-рдмрджреНрдз рджрд┐рдирд╛рдВрдХ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ (Intl.DateTimeFormat)ред
    useNumberрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд╕реЗ рдкреВрд░реНрд╡-рдмрджреНрдз рд╕рдВрдЦреНрдпрд╛ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ (Intl.NumberFormat)ред
    useCurrencyрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд╕реЗ рдкреВрд░реНрд╡-рдмрджреНрдз рдореБрджреНрд░рд╛ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
    usePercentageрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд╕реЗ рдкреВрд░реНрд╡-рдмрджреНрдз рдкреНрд░рддрд┐рд╢рдд рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
    useRelativeTimeрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд╕реЗ рдкреВрд░реНрд╡-рдмрджреНрдз рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдордп рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ (Intl.RelativeTimeFormat)ред
    useListрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд╕реЗ рдкреВрд░реНрд╡-рдмрджреНрдз рд╕реВрдЪреА рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ (Intl.ListFormat).
    useUnitрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд╕реЗ рдкреВрд░реНрд╡-рдмрджреНрдз рдЗрдХрд╛рдИ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред
    useCompactрд╡рд░реНрддрдорд╛рди рд▓реЛрдХреЗрд▓ рд╕реЗ рдкреВрд░реНрд╡-рдмрджреНрдз рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рдВрдЦреНрдпрд╛ рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдЙрджрд╛. 1.5K)ред

    HTML рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ (astro-intlayer/html)

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import { renderHTML, useHTML, useHTMLRenderer } from "astro-intlayer/html";
    
    рдПрдХреНрд╕рдкреЛрд░реНрдЯрдкреНрд░рдХрд╛рд░рд╡рд┐рд╡рд░рдг
    renderHTMLFunctionHTML рдиреЛрдбреНрд╕ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлрд╝рдВрдХреНрд╢рдиред
    useHTMLHookHTML рдкреНрд░рджрд╛рддрд╛ рд╕рдВрджрд░реНрдн рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдХред
    useHTMLRendererHookрдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП HTML рд░реЗрдВрдбрд░рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдХред

    Markdown рдЙрдкрдпреЛрдЧрд┐рддрд╛рдПрдБ (astro-intlayer/markdown)

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import {
      compileMarkdown,
      renderMarkdown,
      parseMarkdown,
      useMarkdown,
      useMarkdownRenderer,
    } from "astro-intlayer/markdown";
    
    рдПрдХреНрд╕рдкреЛрд░реНрдЯрдкреНрд░рдХрд╛рд░рд╡рд┐рд╡рд░рдг
    compileMarkdownFunctionрдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрд░рдЪрд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред
    renderMarkdownFunctionрдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдиреЛрдбреНрд╕ рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рддрд╛ рд╣реИред
    parseMarkdownFunctionрдХрдЪреНрдЪреЗ рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕рд╛рдордЧреНрд░реА рдХреЛ AST рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИред
    useMarkdownHookрдорд╛рд░реНрдХрдбрд╛рдЙрди рдкреНрд░рджрд╛рддрд╛ рд╕рдВрджрд░реНрдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдХред
    useMarkdownRendererHookрдкреВрд░реНрд╡-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП Markdown рд░реЗрдВрдбрд░рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдХред

    рдкреНрд░рдХрд╛рд░

    рдЗрдореНрдкреЛрд░реНрдЯ:

    tsx
    import type {
      IntlayerLocals,
      UseLocaleProps,
      UseLocaleResult,
    } from "astro-intlayer";
    
    рдкреНрд░рдХрд╛рд░рд╡рд┐рд╡рд░рдг
    IntlayerLocalsAstro.locals.intlayer рд╕реЗ рдЬреБрдбрд╝рд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ locale, defaultLocale, рдФрд░ availableLocales рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
    UseLocalePropsuseLocale() рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡реАрдХреГрдд рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЧреБрдгред
    UseLocaleResultuseLocale() рдХрд╛ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░, рдЬреЛ рд▓реЛрдХреЗрд▓ рдЧреБрдг рдФрд░ рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред