我将 next-intl 与 nextjs 应用程序目录一起使用,如其文档中所示https://next-intl-docs.vercel.app/docs/routing/middleware#disable-automatic-locale-detection
import createMiddleware from 'next-intl/middleware';
export default createMiddleware({
// ... other config
localeDetection: false
});
它禁用来自
accept-language
标头和 cookie 的区域设置检测。我想要的是仅从 accept-language
标头禁用区域设置检测,但使用 cookie 值(如果存在)。
我在
next-intl
库中也遇到了类似的问题。
这是我的要求:
accept-language
标头。请在
middleware.ts
中尝试以下代码:
export default async function middleware(request: NextRequest) {
const defaultLocale = 'de';
const handleI18nRouting = createIntlMiddleware({
locales: ['en', 'de'],
defaultLocale
});
// accept-lanuage will override the defaultLocale, so remove it.
request.headers.set('accept-language', "");
const response = handleI18nRouting(request);
return response;
}
我的
next-intl
版本:“^3.4.5”,