생성:2026-01-30마지막 업데이트:2026-01-30

    문서: adonis-intlayert 함수

    adonis-intlayer 패키지의 t 함수는 AdonisJS 애플리케이션에서 현지화된 응답을 제공하기 위한 핵심 유틸리티입니다. 사용자의 선호 언어에 따라 콘텐츠를 동적으로 선택하여 국제화(i18n)를 단순화합니다.


    개요

    t 함수는 주어진 언어 집합에 대한 번역을 정의하고 검색하는 데 사용됩니다. Accept-Language 헤더와 같은 클라이언트의 요청 설정을 기반으로 반환할 적절한 언어를 자동으로 결정합니다. 선호하는 언어를 사용할 수 없는 경우 구성에 지정된 기본 로케일로 적절하게 대체됩니다.


    주요 특징

    • 동적 현지화: 클라이언트에 가장 적합한 번역을 자동으로 선택합니다.
    • 기본 로케일로의 폴백: 클라이언트의 선호 언어를 사용할 수 없는 경우 기본 로케일로 대체되어 사용자 경험의 연속성을 보장합니다.
    • 비동기 컨텍스트: Async Local Storage를 사용하여 AdonisJS 요청 수명 주기 내에서 원활하게 작동합니다.
    • TypeScript 지원: 번역에 대한 유형 안전성을 강제합니다.

    함수 시그니처

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

    매개변수

    • translations: 키가 로케일 코드(예: en, fr, es)이고 값이 해당 번역된 콘텐츠인 객체입니다.

    반환값

    • 클라이언트의 선호 언어를 나타내는 콘텐츠입니다.

    미들웨어 로드

    t 함수가 올바르게 작동하려면 AdonisJS 애플리케이션에 intlayer 미들웨어를 등록해야 합니다.

    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 depuis le contrôleur",
          })
        );
      }
    }

    고급 주제

    폴백 메커니즘

    선호하는 로케일을 사용할 수 없는 경우 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 문서를 참조하세요.