Author:
    Creation:2026-01-30Last update:2026-01-30

    рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг: adonis-intlayer рдореЗрдВ t рдлрд╝рдВрдХреНрд╢рди

    adonis-intlayer рдкреИрдХреЗрдЬ рдореЗрдВ t рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЗ AdonisJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг (i18n) рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИред


    рдЕрд╡рд▓реЛрдХрди

    t рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рджрд┐рдП рдЧрдП рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдЕрдиреБрд░реЛрдз рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЬреИрд╕реЗ рдХрд┐ Accept-Language рд╣реЗрдбрд░, рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рднрд╛рд╖рд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред


    рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ

    • рдЧрддрд┐рд╢реАрд▓ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг: рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рдЕрдиреБрд╡рд╛рдж рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред
    • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ рдкрд░ рдлреЙрд▓рдмреИрдХ: рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИред
    • рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрджрд░реНрдн: Async Local Storage рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ AdonisJS рдЕрдиреБрд░реЛрдз рдЬреАрд╡рдирдЪрдХреНрд░ рдХреЗ рднреАрддрд░ рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
    • TypeScript рд╕рдорд░реНрдерди: рдЖрдкрдХреЗ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ рд╕реБрд░рдХреНрд╖рд╛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред

    рдлрд╝рдВрдХреНрд╢рди рд╕рд┐рдЧреНрдиреЗрдЪрд░

    typescript
    t(translations: Record<string, any>): any;
    

    рдкреИрд░рд╛рдореАрдЯрд░

    • translations: рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд╣рд╛рдБ рдХреБрдВрдЬрд┐рдпрд╛рдБ рд▓реЛрдХреЗрд▓ рдХреЛрдб (рдЬреИрд╕реЗ, en, fr, es) рд╣реИрдВ рдФрд░ рдорд╛рди рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрд╡рд╛рджрд┐рдд рд╕рд╛рдордЧреНрд░реА рд╣реИрдВред

    рд░рд┐рдЯрд░реНрди

    • рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдкрд╕рдВрджреАрджрд╛ рднрд╛рд╖рд╛ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдордЧреНрд░реАред

    рдорд┐рдбрд▓рд╡реЗрдпрд░ рд▓реЛрдб рдХрд░рдирд╛

    рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ t рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ AdonisJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ intlayer рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

    start/kernel.ts
    router.use([() => import("adonis-intlayer/middleware")]);
    

    рдЙрдкрдпреЛрдЧ рдХреЗ рдЙрджрд╛рд╣рд░рдг

    рдмреБрдирд┐рдпрд╛рджреА рдЙрджрд╛рд╣рд░рдг

    start/routes.ts
    import router from "@adonisjs/core/services/router";
    import { t } from "adonis-intlayer";
    
    router.get("/", async () => {
      return t({
        en: "Welcome!",
        fr: "Bienvenue!",
        es: "┬бBienvenido!",
      });
    });
    

    рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ

    app/controllers/example_controller.ts
    import type { HttpContext } from "@adonisjs/core/http";
    import { t } from "adonis-intlayer";
    
    export default class ExampleController {
      async index({ response }: HttpContext) {
        return response.send(
          t({
            en: "Hello from controller",
            fr: "Bonjour depuis le contr├┤leur",
          })
        );
      }
    }
    

    рдЙрдиреНрдирдд рд╡рд┐рд╖рдп

    рдлреЙрд▓рдмреИрдХ рдореИрдХреЗрдирд┐рдЬреНрдо

    рдпрджрд┐ рдкрд╕рдВрджреАрджрд╛ рд▓реЛрдХреЗрд▓ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ, рддреЛ t рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЗ intlayer.config.ts рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЛрдХреЗрд▓ рдкрд░ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред

    typescript
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      internationalization: {
        locales: [
          Locales.ENGLISH,
          Locales.RUSSIAN,
          Locales.JAPANESE,
          Locales.FRENCH,
          Locales.KOREAN,
          Locales.CHINESE,
          Locales.SPANISH,
          Locales.GERMAN,
          Locales.ARABIC,
          Locales.ITALIAN,
          Locales.ENGLISH_UNITED_KINGDOM,
          Locales.PORTUGUESE,
          Locales.HINDI,
          Locales.TURKISH,
          Locales.POLISH,
          Locales.INDONESIAN,
          Locales.VIETNAMESE,
          Locales.UKRAINIAN,
        ],
        defaultLocale: Locales.ENGLISH,
      },
    };
    
    export default config;
    

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

    t рдлрд╝рдВрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░ рдкреНрд░рдХрд╛рд░-рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, TypeScript рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рджреЗрдЦреЗрдВред