İçeriğe git
Server-Side i18n

Hono, Express ve edge için sunucu tarafı i18n

API'nizi ve sunucuda render edilen uygulamalarınızı uluslararasılaştırın. Better I18N, otomatik dil algılamayla Hono, Express, Fastify ve edge çalışma zamanları için middleware sunar.

Setup

Set up in 3 steps

Install the package

@better-i18n/server paketini kurun. Framework'ünüze göre isteğe bağlı olarak Hono veya Express kurun.

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

Create a singleton

createServerI18n() işlevini modül kapsamında yalnızca bir kez örnekleyin. TtlCache tüm istekler arasında paylaşılır, istek başına CDN çağrısı olmaz.

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

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

Register middleware

Framework'ünüz için middleware'i bağlayın. Middleware Accept-Language başlığını okur, dili çözümler ve t() işlevini istek bağlamına ekler.

Example

Framework middleware

Sunucu framework'ünüzü seçin — middleware API'si Hono ile Node.js adaptörlerinde aynıdır.

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

Better I18N neden sunucuda kullanılır?

Web standartlarına dayalı middleware — Hono, Cloudflare Workers, Deno Deploy
Node.js adaptörü — fromNodeHeaders() ile Express, Fastify ve Koa
Otomatik Accept-Language — RFC 5646 uyumlu dil algılama
Singleton TtlCache — ısınmadan sonra istek başına sıfır CDN çağrısı
Tip güvenli t() — çeviri anahtarları için tam TypeScript çıkarımı
Edge'e hazır — yerel Cloudflare Workers desteği

Other frameworks

Get started

API yanıtlarınızı bugün yerelleştirin

Çevrilmiş hata mesajlarını, bildirimleri ve içeriği ek yük olmadan backend'inizden sunun.