接收有关即将发布的Intlayer的通知

    从 URL 获取的语言环境不正确

    问题描述

    当尝试从 URL 访问语言环境参数时,可能会遇到语言环境值不正确的问题:

    const { locale } = await params;console.log(locale); // 返回 "about" 而不是预期的语言环境

    解决方案

    1. 验证文件结构

    确保你的 Next.js 应用路由路径遵循以下结构:

    src/app/[locale]/about/page.tsx

    2. 检查中间件配置

    该问题通常发生在中间件不存在或未被触发时。中间件文件应位于:

    src/middleware.ts

    prefixDefault 设置为 false 时,该中间件负责重写路由。例如,它会将 /en/about 重写为 /about

    3. 基于配置的 URL 模式

    默认配置(prefixDefault: falsenoPrefix: false

    • 英文: /about
    • 法文: /fr/about
    • 西班牙文: /es/about

    使用 prefixDefault: true

    • 英文: /en/about
    • 法文: /fr/about
    • 西班牙文: /es/about

    使用 noPrefix: true

    • 英文: /about
    • 法文: /about
    • 西班牙文: /about

    有关这些配置选项的更多详细信息,请参阅配置文档