You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 13 App路由国际化问题:页面导航时Locale未被保留

Next.js 13 App Router 国际化导航保持Locale的官方解决方案

你遇到的问题是App Router默认不会自动继承当前Locale到导航链接里,官方其实有集成化的处理方式,不用手动写工具函数加前缀,具体如下:

1. 使用router.push时指定Locale

在App Router的useRouter钩子中,直接通过配置项指定当前Locale:

'use client';
import { useRouter } from 'next/navigation';

const SomeComponent = () => {
  const router = useRouter();

  const handleNavigate = () => {
    // 方式1:直接传入当前locale
    router.push('/some/link', { locale: router.locale });
    // 方式2:Next.js 13.4+ 支持 'current' 关键字,自动使用当前locale
    router.push('/some/link', { locale: 'current' });
  };

  return <button onClick={handleNavigate}>跳转</button>;
};

App Router的<Link>组件支持locale属性,同样可以指定为当前Locale或者'current'关键字:

// 客户端组件中使用
'use client';
import Link from 'next/link';
import { useRouter } from 'next/navigation';

const NavLink = () => {
  const router = useRouter();
  return <Link href="/some/link" locale={router.locale}>跳转页面</Link>;
};

// 服务器组件中使用(从params获取locale)
import Link from 'next/link';

const ServerNavLink = ({ params }) => {
  return <Link href="/some/link" locale={params.locale}>跳转页面</Link>;
};

注意:如果你的服务器组件是在[locale]路由下,params会包含当前的locale参数,直接传入即可。

3. 全局封装LocaleLink组件(推荐)

为了避免每个Link都手动加locale属性,可以封装一个全局的LocaleLink组件,自动继承当前Locale:

// app/components/LocaleLink.jsx
'use client';
import Link from 'next/link';
import { useRouter } from 'next/navigation';

const LocaleLink = ({ href, children, ...props }) => {
  const router = useRouter();
  return <Link href={href} locale={router.locale} {...props}>{children}</Link>;
};

export default LocaleLink;

之后在项目中直接用LocaleLink替代原生Link,不用再手动处理Locale。

4. 检查Next.js配置

确保next.config.js中的国际化配置正确,比如:

/** @type {import('next').NextConfig} */
const nextConfig = {
  i18n: {
    locales: ['en', 'zh-CN'],
    defaultLocale: 'en',
    // 如果希望默认Locale也显示前缀(比如/en/home),开启下面配置
    // prefixDefaultLocale: true,
  },
};

module.exports = nextConfig;

这些都是官方支持的集成化方案,比手动拼接URL前缀更可靠,也能避免因路由结构变化导致的错误。

内容的提问来源于stack exchange,提问作者N. Doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:15:16