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 expressCreate 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 响应
从后端提供翻译后的错误信息、通知和内容,且没有额外开销。