Přejít na obsah
Server-Side i18n

Serverové i18n pro Hono, Express a edge

Internacionalizujte své API a aplikace vykreslované na serveru. Better I18N poskytuje middleware pro Hono, Express, Fastify a edge runtimy s automatickou detekcí jazyka.

Setup

Set up in 3 steps

Install the package

Nainstalujte @better-i18n/server. Podle svého frameworku volitelně nainstalujte Hono nebo Express.

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

Create a singleton

Vytvořte createServerI18n() jen jednou v rozsahu modulu. TtlCache je společná pro všechny požadavky, takže se na CDN nedotazuje u každého požadavku.

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

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

Register middleware

Zapojte middleware pro svůj framework. Middleware přečte Accept-Language, určí jazyk a vloží t() do kontextu požadavku.

Example

Framework middleware

Vyberte si serverový framework — API middleware je stejné v Hono i v adaptérech pro 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

Proč používat Better I18N na serveru?

Middleware podle webových standardů — Hono, Cloudflare Workers, Deno Deploy
Adaptér pro Node.js — Express, Fastify a Koa přes fromNodeHeaders()
Automatický Accept-Language — detekce jazyka podle RFC 5646
TtlCache jako singleton — po zahřátí nulové dotazy na CDN u každého požadavku
Typově bezpečná t() — plná inference typů TypeScriptu pro klíče překladů
Připraveno pro edge — nativní podpora Cloudflare Workers

Other frameworks

Get started

Lokalizujte odpovědi svého API ještě dnes

Odesílejte přeložené chybové zprávy, notifikace a obsah z backendu, bez režie.