번역

    번역 정의

    intlayert 함수는 여러 언어로 콘텐츠를 선언할 수 있게 해줍니다. 이 함수는 타입 안전성을 보장하며, 번역이 누락된 경우 오류가 발생하여 TypeScript 환경에서 특히 유용합니다.

    TypeScript 사용하기

    다음은 번역이 포함된 콘텐츠를 선언하는 방법의 예입니다.

    **/*.content.ts
    import { t, type DeclarationContent } from "intlayer";interface Content {  welcomeMessage: string;}export default {  key: "multi_lang",  content: {    welcomeMessage: t({      en: "Welcome to our application",      fr: "Bienvenue dans notre application",      es: "Bienvenido a nuestra aplicación",    }),  },} satisfies DeclarationContent<Content>;

    로케일 구성

    정확한 번역 처리를 위해 intlayer.config.ts에서 수용할 로케일을 구성할 수 있습니다. 이 구성은 애플리케이션이 지원하는 언어를 정의할 수 있게 해줍니다:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],  },};export default config;

    React 컴포넌트에서 번역 사용하기

    react-intlayer를 사용하여 React 컴포넌트에서 번역을 사용할 수 있습니다. 다음은 예시입니다:

    **/*.tsx
    import type { FC } from "react";import { useIntlayer } from "react-intlayer";const MyComponent: FC = () => {  const content = useIntlayer("multi_lang");  return (    <div>      <p>{content.welcomeMessage}</p>    </div>  );};export default MyComponent;

    이 컴포넌트는 애플리케이션에서 설정된 현재 로케일에 따라 해당 번역을 가져옵니다.

    사용자 정의 콘텐츠 객체

    intlayer는 번역을 위한 사용자 정의 콘텐츠 객체를 지원하여, 타입 안전성을 보장하며 더 복잡한 구조를 정의할 수 있게 해줍니다. 다음은 사용자 정의 객체의 예입니다:

    **/*.content.ts
    import { t, type DeclarationContent } from "intlayer";interface ICustomContent {  title: string;  content: string;}const customContent = {  key: "custom_content",  content: {    profileText: t<ICustomContent>({      en: {        title: "Page Title",        content: "Page Content",      },      fr: {        title: "Titre de la Page",        content: "Contenu de la Page",      },      es: {        title: "Título de la Página",        content: "Contenido de la Página",      },    }),  },} satisfies DeclarationContent;export default customContent;

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

    문서에 대한 GitHub 링크