Дата створення:2026-01-30Останнє оновлення:2026-01-30

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

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


    Огляд

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


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

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

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

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

    Параметри

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

    Повертає

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

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

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

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

    Приклади використання

    Базовий приклад

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

    Використання в контролерах

    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.

    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.