gt-node@0.2.0
Panoramica
IMPORTANTE Questa libreria è ancora sperimentale e potrebbe introdurre modifiche non retrocompatibili.
gt-node porta General Translation in JavaScript lato server. Funziona in Node.js, Bun e Deno.
Impostando un contesto per richiesta tramite AsyncLocalStorage, gt-node ti consente di importare le funzioni di traduzione direttamente dalla libreria:
const gt = await getGT();Questo riflette l'API delle nostre altre librerie, come gt-next, quando si lavora con funzioni asincrone.
Cosa include
initializeGT()— Configura il singleton i18n. Chiamalo una sola volta all'avvio del server.withGT(locale, fn)— Avvolge un gestore di richieste per applicare l'impostazione regionale al relativo contesto. Tutte le chiamate di traduzione all'interno del callback usano l'impostazione regionale fornita. Tutte le route devono essere avvolte inwithGT.getGT()— Restituisce una funzione di traduzione per stringhe inline. Supporta l'interpolazione di variabili e il formato dei messaggi ICU.
Guida rapida (Express)
Installa
npm install gt-nodeInizializzazione
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 dell'impostazione regionale
Estrai l'impostazione regionale dalle intestazioni della richiesta (oppure dai cookie o dai parametri di query, in base a come la tua app determina l'impostazione regionale) e applica withGT a ogni richiesta:
app.use((req, res, next) => {
const locale = req.headers['accept-language']?.split(',')[0] || 'en-US';
withGT(locale, () => next());
});Traduci
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 --publishEcco fatto. Le stringhe vengono rilevate dal compilatore di GT in fase di build, tradotte durante il CD e risolte a ogni richiesta in fase di runtime.
In prospettiva
gt-node e gt-tanstack-start sono le prime due librerie basate sull'architettura singleton gt-i18n. Prevedi che altri adattatori per framework seguiranno lo stesso schema.