跳转至主要内容
Server-Side i18n

面向 Hono、Express 和 edge 的服务端 i18n

为你的 API 和服务端渲染应用做国际化。Better I18N 为 Hono、Express、Fastify 和 edge 运行时提供中间件,并自动检测语言。

Setup

Set up in 3 steps

Install the package

安装 @better-i18n/server。可根据所用框架选择性安装 Hono 或 Express。

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

Create a singleton

在模块作用域中只实例化 createServerI18n() 一次。TtlCache 在所有请求之间共享,不会每个请求都访问 CDN。

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

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

Register middleware

为你的框架接入中间件。中间件会读取 Accept-Language、解析语言,并把 t() 注入请求上下文。

Example

Framework middleware

选择你的服务端框架 — 中间件 API 在 Hono 和 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

为什么在服务端使用 Better I18N?

遵循 Web 标准的中间件 — Hono、Cloudflare Workers、Deno Deploy
Node.js 适配器 — 通过 fromNodeHeaders() 支持 Express、Fastify 和 Koa
自动 Accept-Language — 符合 RFC 5646 的语言检测
单例 TtlCache — 预热之后每个请求都无需再访问 CDN
类型安全的 t() — 对翻译键提供完整的 TypeScript 推断
面向 edge — 原生支持 Cloudflare Workers

Other frameworks

Get started

立即本地化你的 API 响应

从后端提供翻译后的错误信息、通知和内容,且没有额外开销。