gt-node@0.2.0
Panoramica
IMPORTANTE Questa libreria è ancora in fase sperimentale e potrebbe subire modifiche che introducono incompatibilità.
gt-node porta General Translation nel JavaScript lato server. Funziona in Node.js, Bun e Deno.
Configurando un contesto per ogni richiesta tramite AsyncLocalStorage, gt-node ti permette di importare direttamente dalla libreria le funzioni di traduzione:
const gt = await getGT();Questo rispecchia l'API delle nostre altre librerie, come gt-next, quando si lavora con funzioni asincrone.
Cosa include
initializeGT()— Configura il singleton i18n. Chiamalo una volta all'avvio del server.withGT(locale, fn)— Incapsula un request handler per impostare il locale. Tutte le chiamate di traduzione all'interno della callback usano il locale fornito. Tutte le route devono essere incapsulate inwithGT.getGT()— Restituisce una funzione di traduzione per stringhe inline. Supporta l'interpolazione di variabili e il formato di messaggi ICU.
Guida rapida (Express)
Installazione
npm install gt-nodeInizializza
import express from 'express';
import { initializeGT, withGT, getGT } from 'gt-node';
initializeGT({
defaultLocale: 'en-US',
locales: ['en-US', 'es', 'fr'],
projectId: process.env.GT_PROJECT_ID,
});
const app = express();Aggiungi il middleware della locale
Estrai la locale dagli header della richiesta (o dai cookie, dai parametri di query — indipendentemente da come la tua app determina la locale) e incapsula ogni richiesta con withGT:
app.use((req, res, next) => {
const locale = req.headers['accept-language']?.split(',')[0] || 'en-US';
withGT(locale, () => next());
});Tradurre
app.get('/api/greeting', async (req, res) => {
const gt = await getGT();
res.json({ message: gt('Hello, world!') });
});
app.listen(3000);Traduci e distribuisci
npx gtx-cli translate --publishÈ tutto. Le stringhe vengono individuate dal compilatore GT in fase di build, tradotte in fase di CD e risolte per ogni richiesta a runtime.
Guardando al futuro
gt-node e gt-tanstack-start sono le prime due librerie basate sull'architettura singleton di gt-i18n. Sono previsti altri adapter per framework che seguiranno lo stesso modello.