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

    Документація: Функція t в adonis-intlayer

    Функція t у пакеті adonis-intlayer є основною утилітою для надання локалізованих відповідей у вашому додатку AdonisJS. Вона спрощує інтернаціоналізацію (i18n) на основі бажаної мови користувача.


    Огляд

    Функція t використовується для визначення та отримання перекладів для заданого набору мов. Вона автоматично визначає відповідну мову для повернення на основі налаштувань запиту клієнта, таких як заголовок Accept-Language. Якщо бажана мова недоступна, вона плавно переключається на локаль за замовчуванням, зазначену у вашій конфігурації.


    Ключові особливості

    • Динамічна локалізація: Автоматично вибирає найбільш підходящий переклад для клієнта.
    • Резервна локаль (Fallback): Повертається до локалі за замовчуванням, якщо бажана мова клієнта недоступна, забезпечуючи безперервність користувацького досвіду.
    • Асинхронний контекст: Безперешкодно працює в рамках життєвого циклу запиту AdonisJS з використанням Async Local Storage.
    • Підтримка TypeScript: Забезпечує типізацію для ваших перекладів.

    Сигнатура функції

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

    Параметри

    • translations: Об'єкт, де ключами є коди локалей (наприклад, en, fr, es), а значеннями, відповідний перекладений контент.

    Повертає

    • Контент, що відповідає бажаній мові клієнта.

    Завантаження проміжного ПЗ (Middleware)

    Щоб функція t працювала правильно, ви повинні зареєструвати проміжне ПЗ intlayer у вашому додатку AdonisJS.

    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 з контролера",      })    );  }}

    Просунуті теми

    Механізм Fallback

    Якщо бажана локаль недоступна, функція 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.