gt-node@0.2.0
Resumen
IMPORTANTE Esta biblioteca sigue siendo experimental y puede estar sujeta a cambios importantes.
gt-node lleva General Translation al JavaScript del lado del servidor. Funciona en Node.js, Bun y Deno.
Al establecer un contexto por solicitud mediante AsyncLocalStorage, gt-node te permite importar funciones de traducción directamente desde la biblioteca:
const gt = await getGT();Esto sigue la misma API que nuestras otras bibliotecas, como gt-next, cuando se trabaja con funciones asíncronas.
Qué se incluye
initializeGT()— Configura el singleton de i18n. Llámalo una sola vez al iniciar el servidor.withGT(locale, fn)— Envuelve un controlador de solicitudes para definir el ámbito de la configuración regional. Todas las llamadas de traducción dentro del callback usan la configuración regional proporcionada. Todas las rutas deben envolverse enwithGT.getGT()— Devuelve una función de traducción para cadenas inline. Admite interpolación de variables y el formato de mensajes ICU.
Guía rápida (Express)
Instalar
npm install gt-nodeInicializa
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();Añade el middleware de configuración regional
Extrae la configuración regional de los encabezados de la solicitud (o de las cookies, los parámetros de consulta; según cómo tu app determine la configuración regional) y envuelve cada solicitud con withGT:
app.use((req, res, next) => {
const locale = req.headers['accept-language']?.split(',')[0] || 'en-US';
withGT(locale, () => next());
});Traduce
app.get('/api/greeting', async (req, res) => {
const gt = await getGT();
res.json({ message: gt('Hello, world!') });
});
app.listen(3000);Traduce y despliega
npx gtx-cli translate --publishEso es todo. El compilador de GT detecta las cadenas en tiempo de compilación, las traduce durante el CD y las resuelve en cada solicitud en tiempo de ejecución.
De cara al futuro
gt-node y gt-tanstack-start son las dos primeras bibliotecas creadas sobre la arquitectura singleton de gt-i18n. Se espera que más adaptadores para frameworks sigan el mismo patrón.