Naar inhoud gaan
Server-Side i18n

Server-side i18n voor Hono, Express en edge

Internationaliseer uw API en uw servergerenderde apps. Better I18N biedt middleware voor Hono, Express, Fastify en edge-runtimes, met automatische taaldetectie.

Setup

Set up in 3 steps

Install the package

Installeer @better-i18n/server. Installeer optioneel Hono of Express, afhankelijk van uw framework.

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

Create a singleton

Maak createServerI18n() één keer aan in de module-scope. De TtlCache wordt door alle requests gedeeld, dus geen CDN-aanvraag per request.

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

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

Register middleware

Sluit de middleware voor uw framework aan. De middleware leest Accept-Language, bepaalt de taal en injecteert t() in de requestcontext.

Example

Framework middleware

Kies uw serverframework — de middleware-API is hetzelfde voor Hono en de Node.js-adapters.

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

Waarom Better I18N op de server gebruiken?

Middleware volgens webstandaarden — Hono, Cloudflare Workers, Deno Deploy
Node.js-adapter — Express, Fastify en Koa via fromNodeHeaders()
Automatische Accept-Language — taaldetectie conform RFC 5646
Singleton TtlCache — na het opwarmen geen CDN-aanvragen per request
Typeveilige t() — volledige TypeScript-inferentie voor vertaalsleutels
Klaar voor de edge — native ondersteuning voor Cloudflare Workers

Other frameworks

Get started

Localiseer vandaag nog uw API-responses

Lever vertaalde foutmeldingen, notificaties en content vanuit uw backend, zonder overhead.