Add reviews and support tutorial management
This commit is contained in:
+37
-2
@@ -1,13 +1,48 @@
|
||||
import createMiddleware from 'next-intl/middleware'
|
||||
import type { NextRequest } from 'next/server'
|
||||
import { NextResponse } from 'next/server'
|
||||
import { defaultLocale, locales } from './i18n/config'
|
||||
|
||||
export default createMiddleware({
|
||||
const intlMiddleware = createMiddleware({
|
||||
locales: [...locales],
|
||||
defaultLocale,
|
||||
localePrefix: 'always',
|
||||
localeDetection: true,
|
||||
localeDetection: false,
|
||||
})
|
||||
|
||||
function shouldUseSimplifiedChinese(request: NextRequest) {
|
||||
const acceptLanguage = request.headers.get('accept-language') || ''
|
||||
const firstLanguage = acceptLanguage
|
||||
.split(',')
|
||||
.map((part) => part.trim().split(';')[0]?.toLowerCase())
|
||||
.find(Boolean)
|
||||
|
||||
return Boolean(
|
||||
firstLanguage &&
|
||||
(firstLanguage === 'zh-cn' ||
|
||||
firstLanguage === 'zh-hans' ||
|
||||
firstLanguage === 'zh-sg' ||
|
||||
firstLanguage.startsWith('zh-hans-')),
|
||||
)
|
||||
}
|
||||
|
||||
export default function middleware(request: NextRequest) {
|
||||
const { pathname, search } = request.nextUrl
|
||||
const hasLocalePrefix = locales.some(
|
||||
(locale) => pathname === `/${locale}` || pathname.startsWith(`/${locale}/`),
|
||||
)
|
||||
|
||||
if (!hasLocalePrefix) {
|
||||
const locale = shouldUseSimplifiedChinese(request) ? 'zh' : 'en'
|
||||
const url = request.nextUrl.clone()
|
||||
url.pathname = `/${locale}${pathname === '/' ? '' : pathname}`
|
||||
url.search = search
|
||||
return NextResponse.redirect(url)
|
||||
}
|
||||
|
||||
return intlMiddleware(request)
|
||||
}
|
||||
|
||||
export const config = {
|
||||
matcher: [
|
||||
// Skip all internal paths (_next, _vercel, api, admin, payload assets, static files)
|
||||
|
||||
Reference in New Issue
Block a user