Traduction

    Définir les Traductions

    La fonction t dans intlayer vous permet de déclarer du contenu dans plusieurs langues. Cette fonction garantit la sécurité des types, en levant une erreur si des traductions sont manquantes, ce qui est particulièrement utile dans les environnements TypeScript.

    Utilisation de TypeScript

    Voici un exemple de la façon de déclarer du contenu avec des traductions.

    **/*.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>;

    Configuration pour les Locales

    Pour assurer un bon traitement des traductions, vous pouvez configurer les locales acceptées dans intlayer.config.ts. Cette configuration vous permet de définir les langues que votre application prend en charge :

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

    Utiliser les Traductions dans les Composants React

    Avec react-intlayer, vous pouvez utiliser des traductions dans les composants React. Voici un exemple :

    **/*.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;

    Ce composant récupère la traduction correspondante en fonction de la locale actuelle définie dans votre application.

    Objets de Contenu Personnalisés

    intlayer prend en charge des objets de contenu personnalisés pour la traduction, vous permettant de définir des structures plus complexes tout en garantissant la sécurité des types. Voici un exemple avec un objet personnalisé :

    **/*.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;

    Si vous avez une idée d’amélioration pour améliorer cette documentation, n’hésitez pas à contribuer en submitant une pull request sur GitHub.

    Lien GitHub de la documentation