Creation:2025-12-30Last update:2026-05-31

    Traduci il sito web del tuo backend Fastify usando Intlayer | Internazionalizzazione (i18n)

    fastify-intlayer è un potente plugin di internazionalizzazione (i18n) per applicazioni Fastify, progettato per rendere i tuoi servizi backend accessibili a livello globale fornendo risposte localizzate in base alle preferenze del client.

    Vedi l'implementazione del pacchetto su GitHub: https://github.com/aymericzip/intlayer/tree/main/packages/fastify-intlayer

    Casi d'uso pratici

    • Visualizzazione degli errori del backend nella lingua dell'utente: Quando si verifica un errore, mostrare i messaggi nella lingua madre dell'utente migliora la comprensione e riduce la frustrazione. Questo è particolarmente utile per messaggi di errore dinamici che potrebbero essere visualizzati in componenti front-end come toast o modali.
    • Recupero di contenuti multilingue: Per le applicazioni che recuperano contenuti da un database, l'internazionalizzazione garantisce che sia possibile servire tali contenuti in più lingue. Questo è fondamentale per piattaforme come siti di e-commerce o sistemi di gestione dei contenuti che devono visualizzare descrizioni di prodotti, articoli e altri contenuti nella lingua preferita dall'utente.
    • Invio di email multilingue: Che si tratti di email transazionali, campagne di marketing o notifiche, l'invio di email nella lingua del destinatario può aumentare significativamente il coinvolgimento e l'efficacia.
    • Notifiche push multilingue: Per le applicazioni mobili, l'invio di notifiche push nella lingua preferita dell'utente può migliorare l'interazione e la fidelizzazione. Questo tocco personale può rendere le notifiche più pertinenti e azionabili.
    • Altre comunicazioni: Qualsiasi forma di comunicazione dal backend, come messaggi SMS, avvisi di sistema o aggiornamenti dell'interfaccia utente, beneficia dell'uso della lingua dell'utente, garantendo chiarezza e migliorando l'esperienza utente complessiva.

    Internazionalizzando il backend, la tua applicazione non solo rispetta le differenze culturali, ma si allinea anche meglio alle esigenze del mercato globale, rendendolo un passaggio chiave per scalare i tuoi servizi in tutto il mondo.

    Per iniziare

    ide.intlayer.org

    Vedi il Template dell'applicazione su GitHub.

    Installazione

    Per iniziare a usare fastify-intlayer, installa il pacchetto usando npm:

    bash
    npm install intlayer fastify-intlayernpx intlayer init

    Configurazione

    Configura le impostazioni di internazionalizzazione creando un file intlayer.config.ts nella root del tuo progetto:

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

    Dichiara i tuoi contenuti

    Crea e gestisci le tue dichiarazioni di contenuto per memorizzare le traduzioni:

    src/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",
          "es-ES": "Ejemplo de contenuto devuelto en español (España)",
          "es-MX": "Ejemplo de contenuto devuelto en español (México)",
        }),
      },
    } satisfies Dictionary;
    
    export default indexContent;
    Le dichiarazioni di contenuto possono essere definite ovunque nella tua applicazione, purché siano incluse nella directory contentDir (per impostazione predefinita, ./src). E devono corrispondere all'estensione del file di dichiarazione del contenuto (per impostazione predefinita, .content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).
    Per maggiori dettagli, consulta la documentazione sulla dichiarazione del contenuto.

    Configurazione dell'applicazione Fastify

    Configura la tua applicazione Fastify per usare fastify-intlayer:

    src/index.ts
    import Fastify from "fastify";
    import { intlayer, t, getDictionary, getIntlayer } from "fastify-intlayer";
    import dictionaryExample from "./index.content";
    
    const fastify = Fastify({ logger: true });
    
    // Carica il plugin di internazionalizzazione
    await fastify.register(intlayer);
    
    // Rotte
    fastify.get("/t_example", async (_req, reply) => {
      return t({
        en: "Example of returned content in English",
        fr: "Exemple de contenuto renvoyé en français",
        "es-ES": "Ejemplo de contenuto devuelto en español (España)",
        "es-MX": "Ejemplo de contenuto devuelto en español (México)",
      });
    });
    
    fastify.get("/getIntlayer_example", async (_req, reply) => {
      return getIntlayer("index").exampleOfContent;
    });
    
    fastify.get("/getDictionary_example", async (_req, reply) => {
      return getDictionary(dictionaryExample).exampleOfContent;
    });
    
    // Avvia il server
    const start = async () => {
      try {
        await fastify.listen({ port: 3000 });
      } catch (err) {
        fastify.log.error(err);
        process.exit(1);
      }
    };
    
    start();

    Compatibilità

    fastify-intlayer è completamente compatibile con:

    Funziona perfettamente anche con qualsiasi soluzione di internazionalizzazione in vari ambienti, inclusi browser e richieste API. Puoi personalizzare il middleware per rilevare la locale tramite header o cookie:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";
    
    const config: IntlayerConfig = {
      // ... Altre opzioni di configurazione
      middleware: {
        headerName: "my-locale-header",
        cookieName: "my-locale-cookie",
      },
    };
    
    export default config;

    Per impostazione predefinita, fastify-intlayer interpreterà l'header Accept-Language per determinare la lingua preferita del client.

    Per ulteriori informazioni sulla configurazione e su argomenti avanzati, visita la nostra documentazione.

    Configura TypeScript

    fastify-intlayer sfrutta le potenti capacità di TypeScript per migliorare il processo di internazionalizzazione. La tipizzazione statica di TypeScript garantisce che ogni chiave di traduzione sia considerata, riducendo il rischio di traduzioni mancanti e migliorando la manutenibilità.

    Assicurati che i tipi autogenerati (per impostazione predefinita in ./types/intlayer.d.ts) siano inclusi nel tuo file tsconfig.json.

    tsconfig.json
    {  // ... Le tue configurazioni TypeScript esistenti  "include": [    // ... Le tue configurazioni TypeScript esistenti    ".intlayer/**/*.ts", // Includi i tipi autogenerati  ],}

    Estensione VS Code

    Per migliorare la tua esperienza di sviluppo con Intlayer, puoi installare l'estensione ufficiale Intlayer VS Code Extension.

    Installa dal VS Code Marketplace

    Questa estensione offre:

    • Autocompletamento per le chiavi di traduzione.
    • Rilevamento degli errori in tempo reale per le traduzioni mancanti.
    • Anteprime inline del contenuto tradotto.
    • Azioni rapide per creare e aggiornare facilmente le traduzioni.

    Per maggiori dettagli sull'uso dell'estensione, consulta la documentazione dell'estensione Intlayer VS Code.

    Configurazione Git

    Si consiglia di ignorare i file generati da Intlayer. Questo ti consente di evitare di inserirli nel tuo repository Git.

    Per farlo, puoi aggiungere le seguenti istruzioni al tuo file .gitignore:

    .gitignore
    # Ignora i file generati da Intlayer.intlayer