fastify-i18n-plugin è un plugin per Fastify che aggiunge funzionalità di internazionalizzazione (i18n) dinamica al tuo progetto. Consente di caricare traduzioni da file JSON e di servire contenuti tradotti in base alla lingua dell'utente.
Se desideri scaricarlo o testarlo,puoi farlo qui 👇
Per installare il plugin, utilizza npm:
npm install fastify-i18n-plugin
Ecco un esempio di come registrare il plugin nel tuo progetto Fastify:
import Fastify from 'fastify';
import i18nPlugin from 'fastify-i18n-plugin';
const fastify = Fastify({
logger: true,
});
// Registra il plugin i18n
fastify.register(i18nPlugin, {
defaultLocale: 'en',
directory: './translations',
});
// Definisci alcune rotte
fastify.get('/:lang/greet', async (request, reply) => {
const lang = request.params.lang;
const greeting = request.i18n(lang).greeting;
reply.send({ greeting });
});
// Avvia il server
fastify.listen({ port: 3000 }, (err, address) => {
if (err) {
fastify.log.error(err);
process.exit(1);
}
fastify.log.info(`Server in ascolto su ${address}`);
});
- Traduzioni Dinamiche: Carica traduzioni da file JSON in una directory specificata.
- Cambio Lingua Basato sulle Rotte: La lingua è determinata in base al parametro della rotta (
:lang
). - Caching per le Prestazioni: Cache dei file di traduzione per migliorare le prestazioni.
- Supporto Multilingue: Aggiungi facilmente supporto per più lingue aggiungendo file di traduzione JSON.
Puoi aggiungere file di traduzione nella cartella translations
come segue:
// translations/en.json
{
"greeting": "Hello",
"farewell": "Goodbye"
}
// translations/it.json
{
"greeting": "Ciao",
"farewell": "Arrivederci"
}
Per aggiungere il supporto a una nuova lingua, crea un nuovo file JSON nella directory translations
e includi le traduzioni necessarie. Ad esempio, per aggiungere il francese:
// translations/fr.json
{
"greeting": "Bonjour",
"farewell": "Au revoir"
}
Se desideri contribuire o suggerire nuove funzionalità, sentiti libero di aprire una pull request o creare una issue sul repository GitHub del progetto.
Questo progetto è distribuito sotto la licenza MIT. Consulta il file LICENSE per maggiori informazioni.