Middleware

createNextMiddleware()

createNextMiddleware() 方法的 API 参考。

概述

createNextMiddleware() 是一个用于为 Next.js 创建中间件函数的实用工具函数。 它允许你在 Next.js 应用中为每种语言添加不同的路由。

例如,法语用户会被重定向到 /fr/landing,而英语用户会被重定向到 /en/landing

有关如何使用此中间件的更多信息,请参阅 i18n 路由指南

参考

属性

PropTypeDefault
prefixDefaultLocale?
string | number
-
localeRouting?
string
pathConfig?
any
{}

描述

属性描述
pathConfig一个用于指定应用本地化路径的嵌套对象。
localeRouting用于启用或禁用 i18n 路由的标志。
prefixDefaultLocale用于启用或禁用从默认语言中移除语言前缀的标志。(例如 /en/about -> /about

示例

基本用法

只需在你的 middleware 文件中调用此函数并添加路径匹配器,即可启用多语言路由。

middleware.js
import { createNextMiddleware } from 'gt-next/middleware'

export default createNextMiddleware();

export const config = {
  matcher: [
    /*
      * 匹配所有请求路径,除了以下开头的路径:
      * - api(API 路由)
      * - _next(内部文件)
      * - 静态文件
      */
    "/((?!api|static|.*\\..*|_next).*)",
  ],
}

本地化路径

你可以通过在 middleware 文件中使用 pathConfig 选项来指定本地化路径。

middleware.js
export default createNextMiddleware({
  pathConfig: {
    "/about": "/about",
    "/airplanes": {
      "zh": "/飞机",
    }
  },
});

参见 i18n 路由指南 以获取该功能的详细说明。

移除默认语言前缀

你可以通过将 prefixDefaultLocale 选项设置为 false 来移除默认语言前缀。

middleware.js
export default createNextMiddleware({
  prefixDefaultLocale: true,
});

当此选项为 true 时,每个路径都必须带有语言前缀。 如果你将其设置为 false(默认值),则只有默认语言的前缀会从路径中移除。


注意事项

  • createNextMiddleware() 函数是一个用于为 Next.js 创建中间件函数的实用工具函数。

后续步骤

  • 查看说明,了解如何为你的 Next.js 应用添加 i18n 路由。

这份指南怎么样?