gt-node@0.2.0
Übersicht
WICHTIG Diese Bibliothek ist noch experimentell und unterliegt noch möglichen Breaking Changes.
gt-node bringt General Translation zu serverseitigem JavaScript. Es funktioniert in Node.js, Bun und Deno.
Durch das Einrichten eines request-spezifischen Kontexts über AsyncLocalStorage ermöglicht gt-node den direkten Import von Übersetzungsfunktionen aus der Bibliothek:
const gt = await getGT();Dies entspricht der API in unseren anderen Bibliotheken wie gt-next, wenn Sie mit asynchronen Funktionen arbeiten.
Was ist enthalten
initializeGT()— Konfiguriert das i18n-Singleton. Sollte einmal beim Serverstart aufgerufen werden.withGT(locale, fn)— Wrappt einen Request-Handler, um die Locale zu setzen. Alle Übersetzungsaufrufe innerhalb des Callbacks verwenden die angegebene Locale. Alle Routen müssen mitwithGTumschlossen werden.getGT()— Gibt eine Übersetzungsfunktion für Inline-Strings zurück. Unterstützt Variableninterpolation und das ICU-Message-Format.
Schnellstart (Express)
Installation
npm install gt-nodeInitialisieren
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();Locale-Middleware hinzufügen
Extrahieren Sie die Locale aus den Request-Headern (oder Cookies, Query-Parametern – je nachdem, wie Ihre App die Locale ermittelt) und versehen Sie jede Anfrage mit withGT:
app.use((req, res, next) => {
const locale = req.headers['accept-language']?.split(',')[0] || 'en-US';
withGT(locale, () => next());
});Übersetzen
app.get('/api/greeting', async (req, res) => {
const gt = await getGT();
res.json({ message: gt('Hallo, Welt!') });
});
app.listen(3000);Übersetzen und Deployen
npx gtx-cli translate --publishDas ist alles. Strings werden zur Build-Zeit vom GT-Compiler erfasst, während des CD-Prozesses übersetzt und zur Laufzeit für jede Anfrage aufgelöst.
Ausblick
gt-node und gt-tanstack-start sind die ersten beiden Bibliotheken, die auf der gt-i18n-Singleton-Architektur basieren. Rechnen Sie mit weiteren Framework-Adaptern, die demselben Muster folgen.