Ir al contenido
Server-Side i18n

i18n en el servidor para Hono, Express y edge

Internacionalice su API y sus apps renderizadas en el servidor. Better I18N ofrece middleware para Hono, Express, Fastify y entornos edge con detección automática de idioma.

Setup

Set up in 3 steps

Install the package

Instale @better-i18n/server. Opcionalmente, instale Hono o Express según su framework.

terminal
npm install @better-i18n/server
# Hono: npm install hono
# Express: npm install express

Create a singleton

Instancie createServerI18n() una sola vez en el ámbito del módulo. El TtlCache se comparte entre todas las peticiones, sin llamadas al CDN en cada request.

i18n.ts
import { createServerI18n } from '@better-i18n/server';

export const i18n = createServerI18n({
  projectId: 'your-org/your-api',
  defaultLocale: 'en',
});

Register middleware

Conecte el middleware de su framework. El middleware lee Accept-Language, resuelve el idioma e inyecta t() en el contexto de la petición.

Example

Framework middleware

Elija su framework de servidor — la API del middleware es la misma en Hono y en los adaptadores de Node.js.

app.ts
import { Hono } from 'hono';
import { betterI18n } from '@better-i18n/server/hono';
import { i18n } from './i18n';

type Variables = { locale: string; t: Translator };
const app = new Hono<{ Variables: Variables }>();

app.use('*', betterI18n(i18n));

app.get('/api/users/:id', (c) => {
  const t = c.get('t');
  return c.json({ error: t('errors.notFound') }, 404);
});
Capabilities

¿Por qué usar Better I18N en el servidor?

Middleware con estándares web — Hono, Cloudflare Workers, Deno Deploy
Adaptador para Node.js — Express, Fastify y Koa mediante fromNodeHeaders()
Accept-Language automático — detección de idioma conforme a RFC 5646
TtlCache singleton — cero peticiones al CDN por request tras el calentamiento
t() con tipos seguros — inferencia completa de TypeScript para las claves de traducción
Listo para el edge — soporte nativo de Cloudflare Workers

Other frameworks

Get started

Localice hoy mismo las respuestas de su API

Sirva mensajes de error, notificaciones y contenido traducidos desde su backend sin sobrecarga.