홈샌드박스쇼케이스앱문서블로그
    • English영어
      EN
    • русский러시아어
      RU
    • 日本語일본어
      JA
    • français프랑스어
      FR
    • 한국어한국어
      KO
    • 中文중국어
      ZH
    • español스페인어
      ES
    • Deutsch독일어
      DE
    • العربية아랍어
      AR
    • italiano이탈리아어
      IT
    • British English영어(영국)
      EN-GB
    • português포르투갈어
      PT
    • हिन्दी힌디어
      HI
    • Türkçe튀르키예어
      TR
    • polski폴란드어
      PL
    • Indonesia인도네시아어
      ID
    • Tiếng Việt베트남어
      VI
    • українська우크라이나어
      UK
    /
    프레임워크로 문서 필터링
    Alt+←
    Intlayer의 이점
    시작하기
    개념
    • Intlayer 작동 방식
    • 구성
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • 비주얼 편집기
    • CMS
    • CI/CD 통합
    • 번역복수형열거조건성별삽입파일중첩MarkdownHTML함수 가져오기
    • 로케일별 파일
    • 컴파일러
    • 자동 채우기
    • 테스트
    • 번들 최적화
    환경
    • Next.js 14 및 앱 라우터
      Next.js 15
      Next.js 로케일 없는 URL
      Next.js 및 페이지 라우터
      컴파일러
    • Tanstack Start Solid
    • Astro 및 React
      Astro 및 Svelte
      Astro 및 Vue
      Astro 및 Solid
      Astro 및 Preact
      Astro 및 Lit
      Astro 및 Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt 및 Vue
    • Vite 및 Solid
    • SvelteKit
    • Vite 및 Preact
    • Vite 및 Vanilla JS
    • Vite 및 Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native 및 Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx 및 React
    Plugins
    • JSON
    • gettext (.po)
    VS Code 확장 기능
    에이전트
    • MCP 서버
    • 에이전트 기술
    릴리스
    • v8
    • v7
    • v6
    벤치마크
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    블로그
    질문 발표
    1. Documentation
    2. 환경
    3. Adonisjs
    생성:2025-08-23마지막 업데이트:2026-05-06
    GitHub에서 애플리케이션 템플릿 보기

    이 페이지에는 애플리케이션 템플릿이 제공됩니다.

    이 문서를 원하는 AI 어시스턴트에 참조하세요
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    이 페이지와 원하는 AI 어시스턴트를 사용하여 문서를 요약합니다

    버전 기록

    1. "Solid useIntlayer API 사용법을 직접 속성 액세스로 업데이트"
      v8.9.02026. 5. 4.
    2. "히스토리 초기화"
      v8.0.02025. 12. 30.

    이 페이지의 콘텐츠는 AI를 사용하여 번역되었습니다.

    영어 원본 내용의 최신 버전을 보기
    문서 수정

    이 문서를 개선할 아이디어가 있으시면 GitHub에 풀 리퀘스트를 제출하여 자유롭게 기여해 주세요.

    문서에 대한 GitHub 링크
    복사

    문서의 Markdown을 클립보드에 복사

    Intlayer를 사용하여 AdonisJS 백엔드 웹사이트 번역하기 | 국제화 (i18n)

    adonis-intlayer는 AdonisJS 애플리케이션을 위한 강력한 국제화(i18n) 패키지로, 클라이언트의 선호도에 따라 현지화된 응답을 제공하여 백엔드 서비스를 전 세계에서 액세스할 수 있도록 설계되었습니다.

    실용적인 사용 사례

    • 사용자 언어로 백엔드 오류 표시: 오류가 발생했을 때 사용자의 모국어로 메시지를 표시하면 이해도가 높아지고 불만이 줄어듭니다. 이는 토스트나 모달과 같은 프런트엔드 구성 요소에 표시될 수 있는 동적 오류 메시지에 특히 유용합니다.

    • 다국어 콘텐츠 검색: 데이터베이스에서 콘텐츠를 가져오는 애플리케이션의 경우, 국제화를 통해 이 콘텐츠를 여러 언어로 제공할 수 있습니다. 이는 제품 설명, 기사 및 기타 콘텐츠를 사용자가 선호하는 언어로 표시해야 하는 이커머스 사이트나 콘텐츠 관리 시스템과 같은 플랫폼에 필수적입니다.

    • 다국어 이메일 발송: 트랜잭션 이메일, 마케팅 캠페인 또는 알림 등 수신자의 언어로 이메일을 보내면 참여도와 효과를 크게 높일 수 있습니다.

    • 다국어 푸시 알림: 모바일 애플리케이션의 경우 사용자가 선호하는 언어로 푸시 알림을 보내면 상호 작용과 유지율을 높일 수 있습니다. 이러한 개인화된 터치는 알림을 더 관련성 있고 실행 가능하게 느끼게 합니다.

    • 기타 커뮤니케이션: SMS 메시지, 시스템 경고 또는 사용자 인터페이스 업데이트와 같은 백엔드의 모든 형태의 커뮤니케이션은 사용자의 언어로 제공될 때 명확성을 보장하고 전반적인 사용자 경험을 향상시키는 이점을 누릴 수 있습니다.

    백엔드를 국제화함으로써 애플리케이션은 문화적 차이를 존중할 뿐만 아니라 글로벌 시장의 요구 사항에 더 잘 부합하게 되며, 이는 서비스를 전 세계적으로 확장하는 데 있어 중요한 단계가 됩니다.

    시작하기

    ide.intlayer.org

    See Application Template on GitHub.

    설치

    adonis-intlayer를 사용하려면 npm을 사용하여 패키지를 설치하십시오.

    bash
    코드 복사

    코드를 클립보드에 복사

    npm install intlayer adonis-intlayernpx intlayer init

    설정

    프로젝트 루트에 intlayer.config.ts를 생성하여 국제화 설정을 구성합니다.

    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;

    콘텐츠 선언

    번역을 저장하기 위해 콘텐츠 선언을 생성하고 관리합니다.

    app/index.content.ts
    코드 복사

    코드를 클립보드에 복사

    import { t, type Dictionary } from "intlayer";
    
    const indexContent = {
      key: "index",
      content: {
        exampleOfContent: t({
          en: "Example of returned content in English",
          fr: "Exemple de contenu renvoyé en français",
          ko: "한국어로 반환된 콘텐츠 예시",
          "es-ES": "Ejemplo de contenido devuelto en español (España)",
          "es-MX": "Ejemplo de contenido devuelto en español (México)",
        }),
      },
    } satisfies Dictionary;
    
    export default indexContent;
    콘텐츠 선언은 contentDir 디렉터리(기본적으로 ./src 또는 ./app)에 포함되고 콘텐츠 선언 파일 확장자(기본적으로 .content.{json,ts,tsx,js,jsx,mjs,cjs})와 일치하는 한 애플리케이션의 어디에서나 정의할 수 있습니다.
    자세한 내용은 콘텐츠 선언 문서를 참조하세요.

    AdonisJS 애플리케이션 설정

    adonis-intlayer를 사용하도록 AdonisJS 애플리케이션을 설정합니다.

    미들웨어 등록

    먼저 애플리케이션에 intlayer 미들웨어를 등록해야 합니다.

    start/kernel.ts
    코드 복사

    코드를 클립보드에 복사

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

    라우트 정의

    start/routes.ts
    코드 복사

    코드를 클립보드에 복사

    import router from "@adonisjs/core/services/router";import { t, getIntlayer, getDictionary } from "adonis-intlayer";import indexContent from "../app/index.content";router.get("/t_example", async () => {  return t({    en: "Example of returned content in English",    fr: "Exemple de contenu renvoyé en français",    ko: "한국어로 반환된 콘텐츠 예시",    "es-ES": "Ejemplo de contenido devuelto en español (España)",    "es-MX": "Ejemplo de contenido devuelto en español (México)",  });});router.get("/getIntlayer_example", async () => {  return getIntlayer("index").exampleOfContent;});router.get("/getDictionary_example", async () => {  return getDictionary(indexContent).exampleOfContent;});

    함수

    adonis-intlayer는 애플리케이션에서 국제화를 처리하기 위해 여러 함수를 내보냅니다.

    • t(content, locale?): 기본 번역 함수.
    • getIntlayer(key, locale?): 딕셔너리에서 키로 콘텐츠를 검색합니다.
    • getDictionary(dictionary, locale?): 특정 딕셔너리 개체에서 콘텐츠를 검색합니다.
    • getLocale(): 요청 컨텍스트에서 현재 로케일을 검색합니다.

    컨트롤러에서 사용

    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",        ko: "컨트롤러에서 보내는 인사",      })    );  }}

    호환성

    adonis-intlayer는 다음과 완벽하게 호환됩니다.

    • React 애플리케이션을 위한 react-intlayer
    • Next.js 애플리케이션을 위한 next-intlayer
    • Vite 애플리케이션을 위한 vite-intlayer

    또한 브라우저 및 API 요청을 포함한 다양한 환경의 모든 국제화 솔루션과 원활하게 작동합니다. 헤더나 쿠키를 통해 로케일을 감지하도록 미들웨어를 사용자 정의할 수 있습니다.

    intlayer.config.ts
    코드 복사

    코드를 클립보드에 복사

    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  // ... 기타 구성 옵션  middleware: {    headerName: "my-locale-header",    cookieName: "my-locale-cookie",  },};export default config;

    기본적으로 adonis-intlayer는 Accept-Language 헤더를 해석하여 클라이언트가 선호하는 언어를 결정합니다.

    구성 및 고급 주제에 대한 자세한 내용은 문서를 참조하세요.

    TypeScript 구성

    adonis-intlayer는 TypeScript의 강력한 기능을 활용하여 국제화 프로세스를 향상시킵니다. TypeScript의 정적 타이핑은 모든 번역 키가 고려되도록 하여 번역 누락의 위험을 줄이고 유지 관리성을 향상시킵니다.

    자동 완성

    번역 오류

    자동 생성된 유형(기본적으로 ./types/intlayer.d.ts)이 tsconfig.json 파일에 포함되어 있는지 확인하십시오.

    tsconfig.json
    코드 복사

    코드를 클립보드에 복사

    {  // ... 기존 TypeScript 구성  "include": [    // ... 기존 TypeScript 구성    ".intlayer/**/*.ts", // 자동 생성된 유형 포함  ],}

    VS Code 확장 프로그램

    Intlayer 개발 경험을 개선하기 위해 공식 Intlayer VS Code 확장 프로그램을 설치할 수 있습니다.

    VS Code Marketplace에서 설치

    이 확장 프로그램은 다음을 제공합니다.

    • 번역 키에 대한 자동 완성.
    • 누락된 번역에 대한 실시간 오류 감지.
    • 번역된 콘텐츠의 인라인 미리보기.
    • 번역을 쉽게 생성하고 업데이트할 수 있는 빠른 작업.

    확장 프로그램 사용 방법에 대한 자세한 내용은 Intlayer VS Code 확장 프로그램 문서를 참조하세요.

    Git 구성

    Intlayer에서 생성된 파일을 무시하는 것이 좋습니다. 이를 통해 Git 저장소에 커밋되는 것을 방지할 수 있습니다.

    이렇게 하려면 .gitignore 파일에 다음 지침을 추가할 수 있습니다.

    .gitignore
    코드 복사

    코드를 클립보드에 복사

    # Intlayer에서 생성된 파일 무시.intlayer
    Hono
    Lynx 및 React
    Alt+→

    이 페이지에서

      토론은 익명이며 일반적인 문제를 해결하기 위해 정기적으로 검토됩니다. 기능 아이디어, 문서에 대한 피드백 또는 Intlayer와 관련된 모든 것을 자유롭게 공유하세요, 이 의견을 로드맵 구성과 제품 개선에 활용합니다.

      npm install intlayer adonis-intlayernpx intlayer init
      router.use([() => import("adonis-intlayer/middleware")]);
      import router from "@adonisjs/core/services/router";import { t, getIntlayer, getDictionary } from "adonis-intlayer";import indexContent from "../app/index.content";router.get("/t_example", async () => {  return t({    en: "Example of returned content in English",    fr: "Exemple de contenu renvoyé en français",    ko: "한국어로 반환된 콘텐츠 예시",    "es-ES": "Ejemplo de contenido devuelto en español (España)",    "es-MX": "Ejemplo de contenido devuelto en español (México)",  });});router.get("/getIntlayer_example", async () => {  return getIntlayer("index").exampleOfContent;});router.get("/getDictionary_example", async () => {  return getDictionary(indexContent).exampleOfContent;});
      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",        ko: "컨트롤러에서 보내는 인사",      })    );  }}
      import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  // ... 기타 구성 옵션  middleware: {    headerName: "my-locale-header",    cookieName: "my-locale-cookie",  },};export default config;
      {  // ... 기존 TypeScript 구성  "include": [    // ... 기존 TypeScript 구성    ".intlayer/**/*.ts", // 자동 생성된 유형 포함  ],}
      # Intlayer에서 생성된 파일 무시.intlayer