@better-i18n/next

中文文档
0.10.0发布于 2026/10/26MITTypeScriptES Module近 30 天下载 2450

更好的i18n Next.js 整合

中文使用文档
文档目录14 节
  1. 特征
  2. 安装
  3. 快速启动
  4. 1. 创建i18n配置
  5. 2. 设置请求配置
  6. 3. 添加中间软件
  7. 4. 使用翻译
  8. 高级中件
  9. 客户钩
  10. 服务器公用事业
  11. 配置选项
  12. 除错日志
  13. 文档
  14. 许可证

@ better-i18n/ 下一个

下一个.js 整合 更好的i18n (英语)。提供无缝 next-intl 与 CDN 驱动的翻译获取集成 .

特征

  • 零配置同步 - 通过下列方式连接您的项目: i18n.config.ts
  • 边缘准备缓存 - 内设的伊斯兰社支持公开和信息
  • 类型安全 - 全部类型脚本支持
  • 下图 - 设计为 next-intl

安装

npm install @better-i18n/next next-intl
# or
bun add @better-i18n/next next-intl

快速启动

1. 创建i18n配置

// i18n.config.ts
import { createI18n } from "@better-i18n/next";

export const i18n = createI18n({
  project: "your-org/your-project", // Format: "org-slug/project-slug"
  defaultLocale: "en",
});

2. 设置请求配置

// src/i18n/request.ts
import { i18n } from "../i18n.config";

export default i18n.requestConfig;

3. 添加中间软件

// middleware.ts
import { i18n } from "./i18n.config";

export default i18n.middleware;

export const config = {
  matcher: ["/((?!api|_next|.*\\..*).*)"],
};

4. 使用翻译

// app/page.tsx
import { useTranslations } from "next-intl";

export default function Home() {
  const t = useTranslations("common");
  return <h1>{t("welcome")}</h1>;
}

高级中件

为了更多的控制,使用 createBetterI18nMiddleware数字 :

import { createBetterI18nMiddleware, composeMiddleware } from "@better-i18n/next/middleware";

const i18nMiddleware = createBetterI18nMiddleware({
  project: "org/project",
  defaultLocale: "en",
  detection: {
    cookie: true,
    browserLanguage: true,
    cookieName: "locale",
    cookieMaxAge: 31536000, // 1 year
  },
});

// Compose with other middleware
export default composeMiddleware(i18nMiddleware, authMiddleware);

客户钩

"use client";

import { useManifestLanguages } from "@better-i18n/next/client";

export function LanguageSwitcher() {
  const { languages, isLoading, error } = useManifestLanguages({
    project: "your-org/your-project",
    defaultLocale: "en",
  });

  if (isLoading) return <span>Loading...</span>;
  if (error) return <span>Error: {error.message}</span>;

  return (
    <select>
      {languages.map((lang) => (
        <option key={lang.code} value={lang.code}>
          {lang.nativeName || lang.name || lang.code}
        </option>
      ))}
    </select>
  );
}

服务器公用事业

import {
  getMessages,
  getLocales,
  getManifestLanguages,
} from "@better-i18n/next/server";

const config = { project: "org/project", defaultLocale: "en" };

const locales = await getLocales(config);
const messages = await getMessages(config, "tr");
const languages = await getManifestLanguages(config);

配置选项

选项类型默认说明
projectstring所需经费项目标识符( E)org/project 格式)
defaultLocalestring所需经费默认/ 退后地块代码
cdnBaseUrlstring自动CDN 基础 URL (自动检测)
localePrefix"as-needed" | "always" | "never""as-needed"URL 语言前缀行为
cookieNamestring"locale"地方持久性的 Cookie 名
manifestRevalidateSecondsnumber3600下一.js ISR 重新验证显示
messagesRevalidateSecondsnumber30Next.js ISR 对消息的再验证
storageTranslationStorageundefined持续的离线后退缓存(见 @better-i18n/core(中文(简体) )
staticDataRecord | () => Promiseundefined装订的翻译为后退
fetchTimeoutnumber10000CDN 获取超时( ms)
retryCountnumber1重试对 CDN 失败的尝试
debugbooleanfalse启用调试日志
logLevelLogLevel"warn"记录动词

除错日志

启用环境变量 :

  • BETTER_I18N_DEBUG=1
  • BETTER_I18N_LOG_LEVEL=debug|info|warn|error|silent

文档

备有文件全文 docs.better-i18n.com/ next (中文(简体) )

许可证

麻省理工学院 更好的i18n (英语)

版本与发布记录

@better-i18n/next 共发布 39 个版本,首次发布于 2025/12/20;过去 12 个月发布了 39 个版本。

版本发布日期距今
0.10.0latest2026/10/2612 天前
0.9.32026/09/091 个月前
0.9.22026/08/102 个月前
0.9.12026/08/092 个月前
0.9.02026/05/305 个月前
0.8.22026/05/155 个月前

关于 @better-i18n/next 的常见问题

@better-i18n/next 是什么?

更好的i18n Next.js 整合

如何安装 @better-i18n/next?

在项目目录运行 npm install @better-i18n/next,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:next(>=15.0.0)、react(>=18.0.0)、next-intl(>=4.0.0)、react-dom(>=18.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@better-i18n/next 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@better-i18n/next 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@better-i18n/next 可以商用吗?

@better-i18n/next 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@better-i18n/next 的下载量有多少?

根据 npm 官方下载统计,@better-i18n/next 在 2026/10/08 – 2026/11/06 这 30 天内被下载 2,450 次,日均约 82 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@better-i18n/next 还在维护吗?

最新版本 0.10.0 发布于 2026/10/26(12 天前);至今共发布 39 个版本,其中过去 12 个月发布了 39 个;首次发布于 2025/12/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。